【问题标题】:Forwarding the request from one jsp to another jsp with all request parameters?使用所有请求参数将请求从一个jsp转发到另一个jsp?
【发布时间】:2012-04-24 16:46:21
【问题描述】:

我有这种情况。用户在浏览器中的 jsp 表单上输入一些内容并提交。在servlet中,我处理请求并将jsp page1显示给刚刚继续的客户端 按钮。现在单击继续,我想将此请求转发到另一个 jsp page2,所有请求参数都出现在 page1 上。基本上我还想获取第2页第一个请求中存在的所有请求参数?我不明白我该怎么走 为了这?根据我的理解,我认为我不能使用 jsp 转发,只有当我们想要从 jsp(在服务器端)而不是在客户端转发时,它才会起作用?

【问题讨论】:

    标签: java jsp web-applications


    【解决方案1】:

    有两种方法可以实现:

    • 输出隐藏字段中的所有参数,并在第二次请求中提交
    • 将所有内容存储在会话中

    【讨论】:

    • 关于第一点的问题,如果我在请求中有客户信息对象,如何将其作为隐藏字段提交。我将在第二个 jsp 中将客户对象作为字符串获取。正确的?关于会话,我的第二个遗留 jsp 也期望来自请求。不好的技巧是在将其转发到第二个 jsp 之前,我从会话对象中获取值并放回请求对象中?
    【解决方案2】:

    以下是实现这一目标的一对方法

    1. 在第一个请求中将信息放入会话对象中,然后在第二个请求中从会话对象中访问它。

    2. 在显示的中间页面上,有隐藏的表单元素,这些元素将携带值并在继续时将其发回。

    【讨论】:

    • 抱歉重复的答案,我好像迟到了几秒钟 :)
    • 关于第二点的问题,如果我在请求中有客户信息对象,如何将其作为隐藏字段提交。我将在第二个 jsp 中将客户对象作为字符串获取。正确的?关于会话,我的第二个遗留 jsp 也期望来自请求的值。不好的技巧是在将其转发到第二个 jsp 之前,我从会话对象中获取值并放回请求对象中?
    • 如果第二个 JSP 不在您的控制范围内,那么第二种方法是有意义的。如果第二个 JSP 期望来自请求的值,那么您需要按照 jsp 的期望在 from 或 URL 中传递它们。
    【解决方案3】:

    您可以使用 Servlet Forward 将所有请求参数传递给另一个 JSP 或 Servlet:

    getServletContext().getRequestDispatcher("/yourJSP.jsp").forward(request, response); 
    

    Servlet forward会将已有的请求转发给另一个JSP或Servlet,所以所有的请求参数和属性都对目标JSP或Servlet可用(可以使用Servlet forward的原因是JSP在翻译后也是一个Servlet )。

    您可能会发现以下资源很有用:

    Pass data from servlet to jsp

    Servlet Redirect vs Forward

    【讨论】:

      猜你喜欢
      • 2014-06-07
      • 1970-01-01
      • 2011-07-14
      • 2014-02-25
      • 2017-02-04
      • 2017-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多