使用Servlets Java重定向页面
我有一个jsp页面,其中包含一个表单,当表单提交时,它将被发送到一个Servlet,该Servlet将表单数据插入到数据库中。使用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页面,并显示一个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,我可以访问内部链接,但警报不会显示,谢谢@埃默森:看看这个