【发布时间】:2013-06-26 10:27:14
【问题描述】:
我有一个 servlet,它可以获取多个 JSP 的请求。
但是当我在servlet中使用RequestDispatcher时,我不知道如何转发到发送请求的JSP。
req.getRequestDispatcher("page.jsp").forward(req, resp);
我知道 html 中有这样的东西:javascript:javascript:history.go(-1)
我只需要这样的东西:
req.setAttribute("originalRequest", req.getRequestPage());
req.getRequestDispatcher(originalRequest).forward(req, resp);
那段代码可能很菜鸟,但它让你知道我需要什么。
所以:我需要转发到发送原始请求的页面(基本上是重新加载页面),但是由于多个jsp使用servlet,我不能简单地转发到“page.jsp”
【问题讨论】:
-
所以你想将请求从
JSP A转发到JSP B,然后在JSP B返回到JSP A? -
另外,您似乎在混合转发和重定向。你知道有什么区别吗?
history.go(...)显示重定向,但您希望在 JSP 中使用转发。你需要什么,真的吗?看起来这个问题更像是设计问题而不是代码问题。 -
我有 JSP A、JSP B、ServletC。当 JSP A 向 ServletC 发送请求时,requestdispatcher 应该“转发/重定向”到 JSP A。当 JSP B 向 ServletC 发送请求时,requestdispatcher 应该“转发/重定向”到 JSP B。我不确定有什么区别转发和重定向之间是,但它应该只是转到请求来自的同一页面。
标签: java jsp servlets forward requestdispatcher