1HttpServletResponse对象的sendRedirect(String location)方法称作重定向。如果location地址前面加上“/”,则表示相对于Servlet容器的根来请求,http://localhost:8080,如果location地址前没有加上“/”,则表示相对于当前请求的URI来寻找地址。
2. RequestDispatcher的forward(request, response)方法称作请求转发。
3)RequestDispatcher 是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
4)sendRedirect() 是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。
2. RequestDispatcher的forward(request, response)方法称作请求转发。
3. 请求转发与重定向的区别。
1)请求转发,整个过程处于同一个请求当中,即将request 转发
2)重定向。实际上客户端会向服务器端发送两个请求。第一次发送请求,执行到sendredirect方法时,向客户端返回一个相应,告诉客户端去执行重定向的请求,随后客户端向服务器发送新的第二次请求,请求重定向的页面。
<form action="/test/RequestDispatcher1">
点一下 <input type="submit" value="submit"/>
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
//response.sendRedirect("index.jsp");
RequestDispatcher rd = request.getRequestDispatcher("index.jsp");
rd.forward(request,response);
}
3)RequestDispatcher 是通过调用HttpServletRequest对象的getRequestDispatcher()方法得到的,是属于请求对象的方法。
4)sendRedirect() 是HttpServletResponse对象的方法,即响应对象的方法,既然调用了响应对象的方法,那就表明整个请求过程已经结束了,服务器开始向客户端返回执行的结果。