如何使JSP页面表单发送至Servlet处理后返回原JSP页面,同时把返回结果显示在表单下面?
JSP页面为MyJsp.jsp,处理其表单请求的Servlet为Progress.java...我在Progress.java用request.getRequestDis...
JSP页面为MyJsp.jsp,处理其表单请求的Servlet为Progress.java...我在Progress.java用request.getRequestDispatcher("/MyJsp.jsp").forward(request, response);返回原页面MyJsp.jsp,此时界面显示MyJsp.jsp的界面,但是浏览器地址栏里的url却是Progress.java,请问这是什么原因额?还有就是可以通过request.setAttribute();返回查询数据到MyJsp.jsp里面,然后MyJsp.jsp可以使用request.getAttribute();接收,但是怎么才能保证跳转回到MyJsp.jsp之后,表单数据不会重复提交?同时,如何把查询返回到MyJsp.jsp的数据显示在表单下面?(听说可以先在MyJsp.jsp理设置一个隐藏属性,Servlet返回后通过判定来设置这个隐藏属性为可显示的,这样就能显示出来了,请问具体是怎么回事,如何实现的)还请大牛来指点一二,灰常感谢!(木有财富值了,还请见谅...)
展开
1个回答
展开全部
你访问了Progress.java这个servlet然后forward到MyJsp.jsp,地址栏会出现你的servlet url名字,如果你的servlet配置的url名字叫Progress.java,那它就显示Progress.java。
要防止重复提交,你可以用客户端的JavaScript来解决或者用服务器端的session来解决。
<%
String token = UUID.randomUUID().toString().replaceAll("-","");
session.setAttribute("token",token);
%><input type="hidden" name="formtoken" value="<%=token%>"]]
HttpSession session = request.getSession();
String token = (String)session.getAttribute("token");
if(formtoken.equals(token)){
// do somthing
session.removeAttribute("token");
}else{
response.getWriter().println("请不要重复提交!");
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询