使用Servlets Java重定向页面

使用Servlets Java重定向页面,java,javascript,jsp,servlets,redirect,Java,Javascript,Jsp,Servlets,Redirect,我有一个jsp页面,其中包含一个表单,当表单提交时,它将被发送到一个Servlet,该Servlet将表单数据插入到数据库中。 当数据插入数据库时,我试图让浏览器返回到我的jsp页面,并显示一个javascript警报,表示数据已成功插入,我的代码如下: RequestDispatcher rd; if(dao.insertClient(client)) { rd = getServletContext().getRequestDispatcher("/page

我有一个jsp页面,其中包含一个表单,当表单提交时,它将被发送到一个Servlet,该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>"
        );           
    }
requestDispatcherRD;
if(dao.insertClient(client)){
rd=getServletContext().getRequestDispatcher(“/pages/clients.jsp”);
包括(请求、响应);
打印(
""
+“警报(“客户端已成功插入!”)+
""
);           
}
这段代码正是我想要的,但是这个方法getRequestDispatcher()将页面重定向到servlet本身,URL就像这样,这样我就无法访问页面的任何内部链接,因为指向其他页面的链接显然在servlet上下文之外,glassfish返回404错误。

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

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


谢谢

您可以尝试另一种方法:

按如下方式从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>
<%
  }
%>

警报(“客户端已成功插入!”);

为什么不使用Ajax向servlet发送请求。这样你就不必离开JSP了为什么你不把脚本放到会话中,在你指导之后,你就可以从那里读它了?你能告诉我把脚本放到会话中的基本语法吗?我在谷歌上搜索过,但没有找到它。实际上上面的代码显示了警报,但问题是,如果我使用另一个方法response.sendRedirect(),getRequestDispatcher会将页面重定向到servlet而不是jsp,它会重定向到jsp,我可以访问内部链接,但警报不会显示,谢谢@埃默森:看看这个