如何使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返回后通过判定来设置这个隐藏属性为可显示的,这样就能显示出来了,请问具体是怎么回事,如何实现的)还请大牛来指点一二,灰常感谢!(木有财富值了,还请见谅...) 展开
 我来答
千叶育儿
推荐于2017-09-16 · 育儿、诗词分享,每天进步一点点!
千叶育儿
采纳数:1524 获赞数:5379

向TA提问 私信TA
展开全部
  1. 你访问了Progress.java这个servlet然后forward到MyJsp.jsp,地址栏会出现你的servlet url名字,如果你的servlet配置的url名字叫Progress.java,那它就显示Progress.java。

  2. 要防止重复提交,你可以用客户端的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("请不要重复提交!");
    }
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式