使用Servlets Java重定向页面

时间:2015-05-09 18:07:49

标签: java javascript jsp servlets redirect

我有一个 jsp 页面,其中包含一个表单,当它提交时会转到 Servlet ,将表单数据插入数据库。

当数据插入数据库时​​,我试图让浏览器回到我的jsp页面并显示一条javascript警告,说明数据已成功插入,我的代码如下:

    RequestDispatcher rd;
    if(dao.insertClient(client)) { 
        rd = getServletContext().getRequestDispatcher("/pages/clients.jsp");
        rd.include(request, response);
        out.print(
            "<script type=\"text/javascript\">"
                + "alert("Client inserted successfully!");"+
            "</script>"
        );           
    }

这段代码正是我想要的,但是这个方法 getRequestDispatcher()将页面重定向到servlet本身,而URL就像http://localhost:8080/Servlet,这样我不能访问页面的任何实习链接,因为到其他页面的链接显然不在servlet上下文中,并且glassfish返回404错误。

我没有使用getRequestDispatcher(),而是尝试使用 response.sendRedirect(),这样我就可以将数据插入数据库并访问实习链接,但是javascript警告< b>未显示。

有人建议我如何将网页重定向到 clients.jsp 并显示javascript警告?

谢谢!

1 个答案:

答案 0 :(得分:0)

你可以尝试另一种方法:

从servlet设置参数如下:

RequestDispatcher rd;
if(dao.insertClient(client)) { 
     rd = getServletContext().getRequestDispatcher("/pages/clients.jsp");
     request.setAttribute("isSuccess", "success");
     rd.include(request, response);
}

访问jsp中的参数以检查是否显示警告。

<%
   String result = request.getParameter("isSucess");
   if("success".equals(result)){
%>
   <script type="text/javascript" >
      alert("Client inserted successfully!");
   </script>
<%
  }
%>