getRequestDispatcher()到另一个上下文

时间:2012-02-29 10:46:27

标签: java servlets

如何使用位于其他上下文中的Request重定向getRequestDispatcher()对象?或者我如何将存储在Request对象中的数据重定向到另一个JSP? HTTP协议的方法必须相同(即如果初始方法 - POST,那么我必须使用POST重定向。所以sendRedirect()不适用)

1 个答案:

答案 0 :(得分:2)

以下是在 Request 对象中设置数据的方法。使用 request.getAttribute()方法在另一页中获取值。示例代码是:

RequestDispatcher rd = request.getRequestDispatcher("newpage.jsp");
  request.setAttribute("msg","Welcome");
 rd.forward(request, response);

它也可以与 ServletContext

一起使用
  ServletContext context= getServletContext();
  RequestDispatcher rd= context.getRequestDispatcher("/LoggedIn");
  rd.forward(request, response);

我不认为方法类型必须相同。它是一个Request类型的对象,它可以在Context中访问。 SendRedirect Forward 之间的区别是

前进()

  1. 我们传递请求和响应对象,因此我们的旧请求对象出现在将要处理我们请求的新资源上。
  2. 2. 在同一服务器中访问,另一个资源可以是任何servlet,jsp页面任何类型的文件。

    sendRedirect()

    1.客户请求到其他位置,新位置可在不同的服务器或不同的上下文中使用。

    2.在浏览器中可以看作新请求。它也可以称为客户端重定向。