O comando: response.sendRedirect(“index.jsp”); não está funcionando, ou seja, não retorna p a pag index.
Segue codigo do Servlet:
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
try {
PrintWriter out = response.getWriter();
String cmd = request.getParameter("cmd");
if (cmd.equalsIgnoreCase("cadastro")){
contato.setNome(request.getParameter("nome"));
contato.setLogin(request.getParameter("login"));
contato.setSenha(request.getParameter("senha"));
//chamando o metodo salvar, passando o obj
contato2.salvar(contato);
response.sendRedirect("index.jsp");
}
} catch (NumberFormatException e) {
}
}
Persisto os dados com o hibernate mas depois não retorna para a página index. Já tentei diversas soluções.
Já tentou utilizar assim?
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
try {
PrintWriter out = response.getWriter();
String cmd = request.getParameter(“cmd”);
if (cmd.equalsIgnoreCase(“cadastro”)){
contato.setNome(request.getParameter(“nome”));
contato.setLogin(request.getParameter(“login”));
contato.setSenha(request.getParameter(“senha”));
//chamando o metodo salvar, passando o obj
contato2.salvar(contato);
response.sendRedirect("/index.jsp"); //usar /index.jsp
}
} catch (NumberFormatException e) {
}
} [/code]
Outra questão o sistema ela ta persistindo certinho no banco de dados?
Se o problema for o response.redirect tenta usa esse comando
[code]protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
try {
PrintWriter out = response.getWriter();
String cmd = request.getParameter(“cmd”);
if (cmd.equalsIgnoreCase(“cadastro”)){
contato.setNome(request.getParameter(“nome”));
contato.setLogin(request.getParameter(“login”));
contato.setSenha(request.getParameter(“senha”));
//chamando o metodo salvar, passando o obj
contato2.salvar(contato);
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
dispatcher.forward( request, response );
}
} catch (NumberFormatException e) {
}
}[/code]
Após o sendRedirect, não acontece nada?
Tente isso:
response.sendRedirect(request.getContextPath()+"/index.jsp");
Não use forward após salvar o registro.
[quote=rogelgarcia]Tente isso:
response.sendRedirect(request.getContextPath()+"/index.jsp");
Não use forward após salvar o registro.[/quote]
amigo, não sei o pq não funciona, já tentei tudo que vcs falaram e nada. Ta persistindo normal no banco, inclusive estou usando esse comando acima no metodo processRequest e tá funcionando. Segue código:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String cmd = request.getParameter("cmd");
if(cmd.equalsIgnoreCase("apagar")){
contato.setIdusuario(Integer.parseInt(request.getParameter("idusuario")));
contato2.excluir(contato);
response.sendRedirect("index.jsp"); //ESTA FUNCIONANDO
}
} finally {
out.close();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
try {
PrintWriter out = response.getWriter();
String cmd = request.getParameter("cmd");
if (cmd.equalsIgnoreCase("cadastro")){
contato.setNome(request.getParameter("nome"));
contato.setLogin(request.getParameter("login"));
contato.setSenha(request.getParameter("senha"));
//chamando o metodo salvar, passando o obj
contato2.salvar(contato);
//RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
//dispatcher.forward( request, response );
response.sendRedirect(request.getContextPath()+"/index.jsp"); //NAO ESTA FUNCIONANDO
//response.sendRedirect("index.jsp"); //NAO ESTA FUNCIONANDO
}
} catch (NumberFormatException e) {
}
}
Não sei pq não funciona. Obrigado pela ajuda!
Isso, não acontece nada!!!
Não sei pq não funciona, já tentei tudo que vcs falaram e nada. Ta persistindo normal no banco, inclusive estou usando esse comando acima no metodo processRequest e tá funcionando. Segue código:
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
try {
String cmd = request.getParameter("cmd");
if(cmd.equalsIgnoreCase("apagar")){
contato.setIdusuario(Integer.parseInt(request.getParameter("idusuario")));
contato2.excluir(contato);
response.sendRedirect("index.jsp"); //ESTA FUNCIONANDO
}
} finally {
out.close();
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
try {
PrintWriter out = response.getWriter();
String cmd = request.getParameter("cmd");
if (cmd.equalsIgnoreCase("cadastro")){
contato.setNome(request.getParameter("nome"));
contato.setLogin(request.getParameter("login"));
contato.setSenha(request.getParameter("senha"));
//chamando o metodo salvar, passando o obj
contato2.salvar(contato);
//RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
//dispatcher.forward( request, response );
response.sendRedirect(request.getContextPath()+"/index.jsp"); //NAO ESTA FUNCIONANDO
//response.sendRedirect("index.jsp"); //NAO ESTA FUNCIONANDO
}
} catch (NumberFormatException e) {
}
}
Não sei pq não funciona. Obrigado pela ajuda!
Se não vai fazer nada com o objeto out nem mexa nele… nem pegue sua referência pelo response.getWriter
Fiquei um pouco cismado se esse close() não estaria impedindo o envio da resposta de REDIRECT.
E mais uma dica: procure uma boa ferramenta de diagnóstico do browser (por exemplo, Firebug ou Developer Tools do IE9). Elas costumam ter uma aba “Network” onde você monitora as requisições; veja se o POST retornou com o status de redirect (status 302 - MOVED, algo assim…) , e a URL de redirecionamento correta.
[quote=gomesrod]Se não vai fazer nada com o objeto out nem mexa nele… nem pegue sua referência pelo response.getWriter
Fiquei um pouco cismado se esse close() não estaria impedindo o envio da resposta de REDIRECT.
E mais uma dica: procure uma boa ferramenta de diagnóstico do browser (por exemplo, Firebug ou Developer Tools do IE9). Elas costumam ter uma aba “Network” onde você monitora as requisições; veja se o POST retornou com o status de redirect (status 302 - MOVED, algo assim…) , e a URL de redirecionamento correta.[/quote]
Bingo!!! É isso mesmo, o o método close() tá impedindo o Redirect.
Obrigado a todos e em especial ao gomesrod.