单击“确定”后重定向到特定页面

vsikbqxv  于 2021-07-06  发布在  Java
关注(0)|答案(1)|浏览(359)

我的servlet-“importfile”:

  1. doPost(){
  2. ...
  3. ...
  4. PrintWriter out = response.getWriter();
  5. response.setContentType("text/html");
  6. if(status.equals("Fail")) {
  7. out.println("<script type=\"text/javascript\">");
  8. out.println("alert('Import Failed !');");
  9. out.println("</script>");
  10. }else {
  11. out.println("<script type=\"text/javascript\">");
  12. out.println("alert('Import Sucessfull !');");
  13. out.println("</script>");
  14. }
  15. //response.sendRedirect(request.getContextPath());
  16. out.flush();
  17. }

成功或失败后,这是登录到不在那里的/importfile页。我该如何将其重定向到contextpath?

vm0i2vca

vm0i2vca1#

sendredirect添加一个http头“location”,由浏览器解释,以便它自动重定向到给定的位置。
因此,如果在发送数据后调用该方法,则头文件已经发送,无法工作。
尝试在任何输出之前调用该方法。
但是重定向响应不应该有任何主体,因为如果指定了重定向,浏览器可能会忽略它。如果您想首先用javascript显示消息,请用javascript执行重定向,如下所示:

  1. out.println("location.href = \"" + request.getContextPath() + "\";");

在您发出警报后:

  1. PrintWriter out = response.getWriter();
  2. response.setContentType("text/html");
  3. out.println("<html><body>");
  4. out.println("<script type=\"text/javascript\">");
  5. if(status.equals("Fail")) {
  6. out.println("alert('Import Failed !');");
  7. }else {
  8. out.println("alert('Import Sucessfull !');");
  9. }
  10. out.println("location.href = \"" + request.getContextPath() + "\";");
  11. out.println("</script>");
  12. out.println("</body></html>");
  13. out.flush();
展开查看全部

相关问题