我有多个JSP页面,并且正在将用户从一个JSP重定向到另一个JSP。假设我具有JSP1,JSP2和JSP3,并且我将用户从JSP1重定向到JSP2。
问题:如果用户当前正在使用JSP2,并且他/她按下浏览器的后退按钮,则会将用户从JSP2重定向到JSP1。

要求:我想要的是,如果用户按下浏览器的后退按钮,则不应重定向到JSP1,而应将用户保持在JSP2上。

最佳答案

RequestDispatcher.forward

此方法(forward())用于将请求传递到另一个资源,以便在同一服务器内进行进一步处理,另一个资源可以是任何servlet,jsp页面或任何类型的文件。当我们调用forward时,此过程将由Web容器处理。方法请求被发送到另一个资源而没有通知客户端,哪个资源将处理requestDispatcher对象上已经提到的请求,我们可以通过两种方式使用ServletContext或Request来获取该请求。这也称为服务器端重定向。

RequestDispatcher rd = request.getRequestDispatcher("pathToResource");
rd.forward(request, response);


要么

RequestDispatcher rd = servletContext.getRequestDispatcher("/pathToResource");
rd.forward(request, response);


SendRedirect():
此方法在HttpServletResponse中声明
此方法用于将客户端请求重定向到其他位置以进行进一步处理,新位置可在不同的服务器或不同的上下文中使用。我们的Web容器会对此进行处理并使用浏览器传输请求,并且该请求在浏览器中可以作为新的请求。有时也称为客户端重定向。

09-26 15:39