Problemas com servlet

7 respostas
E

GALERA ESTOU COM DIFICULDADE DE RODAR UM JAVASCRIPT EM UM SERVLET…ONDE ESTOU ERRANDO?

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);

response.setContentType(“text/html;charset=UTF-8”);

PrintWriter out = response.getWriter();
out.println("<script language='javascript'>location='../index.jsp';</script>");

        
    }

7 Respostas

kissdemon

O que está tendando fazer??? Um “redirect” com JavaScript?
Tente:

location.href='../index.jsp';
Pedrosa

Qual erro causa?, dica não jogue html ou javascript no Java e vice-versa!

public class TesteResponseServlet extends HttpServlet {
    public void service(HttpServletRequest req, HttpServletResponse res)
    throws IOException, ServletException {
        res.setContentType("text/html");
        PrintWriter out = res.getWriter();
        out.println("<html><head><title>Meu Primeiro  Servlet</title></head>");
        out.println("<body>Teste do HttpServletResponse!</body>");
        out.flush(); //força o envio dos dados do buffer
        out.println("</html>");
   }
}

Coloque seu javascript com location.href no trecho acima e veja se funciona, mas nunca use assim!

E

Pedrosa seguinte,

Estou tentando fazer algo a dias e sem solucao.

Eu tenho um formulario cadastrar com o campo hidden de nome acao, eu trato os dados em um Servlet

Caso a acao seja cadastrar ele tem que cadastrar os dados e redirecionar para a pagina que lista os clientes

so que nao consigo de forma alguma

ja tentei com request.sendRedirect(String url)
ja tentei com dispose.forward

e nada

agora estou tentando novamente com Javascript

kissdemon

Euller20,

existem frameworks que otimizam este trabalho p/ vc, como por exemplo o Struts 2. De uma pesquisada.
Caso deseje ficar no servlet mesmo tente o seguinte:

RequestDispatcher rd = request.getRequestDispatcher("/pagina.jsp");
rd.forward(request,response);
Pedrosa

Tente algo assim para redirecionar pela Servlet:

RequestDispatcher rd;
String target = "/Pagina.jsp";
rd = getServletContext().getRequestDispatcher(target);
rd.forward(request, response);

Caso precise passar alguma informação para o jsp use:

request.setAttribute("variavel","valor");

ou sessao

HttpSession sessao = request.getSession();
sessao.setAttribute("variavel","valor");

Pegando os valores no JSP com expression language assim:

${variavel}
E

Continua o erro

protected void doPost(HttpServletRequest request, HttpServletResponse response)

throws ServletException, IOException {

processRequest(request, response);
String acao = request.getParameter("acao");
    String msg=null;
    Servico servico=new Servico();
    if (acao == null){acao = "";}
    
    if(acao.equals("novo")) {
        
        servico.setNome(request.getParameter("nome"));
        servico.setDescricao(request.getParameter("descricao"));
        float valor=Float.parseFloat(request.getParameter("valor"));
        servico.setValor(valor);
        
        msg=new ControleServico().inserirServico(servico);
       try
       {
        RequestDispatcher rd = request.getRequestDispatcher("../index.jsp");
        rd.forward(request,response);
       }
       catch(Exception e)
       {
           System.out.println(e.getMessage());
       }
        
        
        
    }

Exceção Gerada
Cannot forward after response has been committed

andreiribas

cara só uma dica nunca implemente os métodos doGet e doPost, e sim o método service de Servlets.

Se você tá com dificuldade com servlets, recomendo baixar a apostila do curso de java web da caelum
www.caelum.com.br

Criado 16 de maio de 2007
Ultima resposta 16 de mai. de 2007
Respostas 7
Participantes 4