Enviar Dados para o servidor

3 respostas
Vinny

E ai pessoal tudo certo?

Eu tenho que estar salvando dados em um servidor, eu não sei muita coisa sobre desenvolvimento web em java, sou programador um tipo de programador de pesquisa de uma empresa, tenho que procurar soluções para alguns problemas, e um deles é esse o que me explicaram é que na aplicação web tem um texto formatado, esse texto tem que ser salvo em um servidor, só que o problema é que essa formatação do texto é feito em classes tem varias classes que cuidam da formatação do texto, entao nao dá pra enviar o texto inteiro o que ta sendo feito é enviar caracter por caracter para o servidor e salvando la o caracter formatado, isso esta sendo feito usando serialização do texto.

Não se deu pra entender o problema, mais o resumindo, quais são as maneiras de se salvar dados em um servidor tomCat.
o que esta sendo usado é Servlet.

3 Respostas

aeciovc

bem… pra ser sincero eu não entendi quase nada disso tudo aí!

enviar caracter por caracter??

mas…

você não vai guardar dados no TomCat, o TomCat é um Servlet Contanier, ou seja, ele serve pra fazer Servlets (classes Java) ficarem disponíveis neste servidor.

se você puder detalhar o real problema ficará mais claro pra todos.

Vinny

Desculpa não conseguir esclarecer as coisas, mais eu tb to meio perdido com isso

Entao o negocio do servidor é o seguinte, nos pagamos um servidor que esta em outra cidade, nele esta rodando o tomCat.

Quanto ao site, é um site de uma ferramenta de autoria, onde o usuario pode criar apresentaçoes contendo audio, video, texto, flash, varios tipo de arquivo, é o possivel o usuario montar um site se quiser so arrastando componentes, sem nada de programação, o que eu não sei fazer, é, como eu salvo essas informações do projeto do usuario no servidor, como eu fasso para enviar dados pra la, eu nao sei como fazer isso usando applet.

O outro programador que esta fazendo isso, me passo o codigo que esta sendo usado por enquanto, é uma solução que se pode dizer que não é das melhores, eu queria saber qual a melhor maneira, ou pelo menos melhor que essa abaixo de salvar dados no servido via Servlet.

public class ServletUpload extends HttpServlet {

  /** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
   * @param request servlet request
   * @param response servlet response
   */
  protected void processRequest(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {

    FileItemFactory factory = new DiskFileItemFactory();
    ServletFileUpload upload = new ServletFileUpload(factory);
    String formulario = "";
    try {
      List items = upload.parseRequest(request);
      Iterator iter = items.iterator();
      while (iter.hasNext()) {
        FileItem item = (FileItem) iter.next();
        if (item.getFieldName().equals("tipoForm")) {
          formulario = item.getString();
        }
        if (!item.isFormField()) {
          if (item.getName().length() > 0) {
            this.inserirImagemDiretorio(item);
          }
        }
      }
    }
    catch (FileUploadException ex) {
    }
    catch (Exception ex) {
    }
    PrintWriter output;
    response.setContentType("text/html;charset=UTF-8");
    output = response.getWriter();
    output.println("<html><head><title>");
    output.println("Envia arquivo");
    output.println("</title></head>");
    output.println("<body>");
    output.println("<form id=\"formImagem\" name=\"formImagem\" method=\"post\" action=\"ServletUpload\" enctype=\"multipart/form-data\">");
    output.println("<input type=\"hidden\" id=\"tipoForm\" name=\"tipoForm\" value=\"imagem\">");
    output.println("<input name=\"imagem\" type=\"file\">");
    output.println("<input type=\"submit\" id=\"upload\" name=\"upload\" value=\"Enviar\">");
    output.println("</form>");
    output.println("<script type='Text/javascript'>");
    output.println("  window.onload=alert('Arquivo enviado')");
    output.println("</script>");
    output.println("</body></html>");
    output.close();

  }

  // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
  /** Handles the HTTP <code>GET</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doGet(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
    processRequest(request, response);
  }

  /** Handles the HTTP <code>POST</code> method.
   * @param request servlet request
   * @param response servlet response
   */
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
  throws ServletException, IOException {
    processRequest(request, response);
  }

  /** Returns a short description of the servlet.
   */
  public String getServletInfo() {
    return "Short description";
  }

   private void inserirImagemDiretorio(FileItem item) throws
                                                         IOException {

      //Pega o diretório /logo dentro do diretório atual de onde a
      //aplicação está rodando
      String caminho = getServletContext().getRealPath("/arquivos") + "/";
       // Cria o diretório caso ele não exista
      File diretorio = new File(caminho);
      if (!diretorio.exists()){
          diretorio.mkdir();
      }
      // Mandar o arquivo para o diretório informado
      String nome = item.getName();
      String arq[] = nome.split("\\\\");
      for (int i = 0; i < arq.length; i++) {
          nome = arq[i];
      }
      //verifica se arquivo existe, acrescentando "_" caso exista
      int n=0;
      boolean lExiste = true;
      File f;
      while (n<500 && lExiste) {
        n = n + 1;
        f = new File(diretorio.getPath() + "/" + nome);
        if (f.exists()==false)
          lExiste = false;
        else
          nome = "_" + nome;
        f = null;
      }

      File file = new File(diretorio, nome);
      FileOutputStream output = new FileOutputStream(file);
      InputStream is = item.getInputStream();
      byte[] buffer = new byte[2048];
      int nLidos;
      while ((nLidos = is.read(buffer)) >= 0) {
          output.write(buffer, 0, nLidos);
      }
      output.flush();
      output.close();
    }
}
Vinny

Complementando, o que eu quero salvar é um arquivo .rtf ou um .html, a questao é como eu posso salvar esse arquivo no servidor sem perder nenhuma propriedade do arquivo?

Criado 27 de maio de 2011
Ultima resposta 27 de mai. de 2011
Respostas 3
Participantes 2