【问题标题】:Forward parameters to jsp from servlet将参数从 servlet 转发到 jsp
【发布时间】:2014-06-30 17:36:17
【问题描述】:

有没有办法在不将浏览器重定向到该页面的情况下将参数从 servlet 发送到 jsp?

RequestDispatcher disp = request.getRequestDispatcher("shoppingCart.jsp");
disp.forward(request, response);

【问题讨论】:

  • 将值放在会话范围内并在任何jsp页面中获取该值
  • 你刚刚做到了。在 disp.forward(req,res) 之前将属性设置为请求。使用 req.getAttribute(..) 从请求(在您要转发到的 JSP 中)访问它;仅供参考,请求调度程序不会向网络浏览器发送响应(在您进行调度时查看您的 url,它不会改变);因此没有重定向..干杯!

标签: java jsp servlets


【解决方案1】:

可以有以下一种方式:

RequestDispatcher disp = request.getRequestDispatcher("shoppingCart.jsp"+"?myParam=myValue");
    disp.forward(request, response);    

如果你对“GET”方法没问题,那么你可以通过附加参数来解决这个问题。

【讨论】:

  • 值得一提的是,如果您有任何特殊字符,您需要对参数进行 url 编码:)
【解决方案2】:

您可以将属性(用于与 servlet 或 servlet 与 jsp 进行内部通信的情况下使用,反之亦然)设置为响应对象并转发请求,您可以通过以下方式实现:

      request.setAttribute("someKey","someValue");

您还可以使用会话范围在 servlet 和 jsp 之间共享属性,如下所示:

     Http session = request.getSession();
     session.setAttribute("someKey","someValue");

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 2014-02-25
    • 2013-05-16
    • 1970-01-01
    • 2013-08-13
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多