1. request.getRequestDispatcher()是请求转发,前后页面共享一个request,在客户端运行对浏览器是透明的 网址不会变;
response.sendRedirect()是重新定向,前后页面不是一个request在浏览器端运行的,也就是说网址会变。
2. request.getRequestDispather();返回的是一个RequestDispatcher对象。
3. RequestDispatcher.forward()是在服务器端运行;
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成.
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是
4. ServletContext.getRequestDispatcher(String url)中的url只能使用绝对路径; 而
ServletRequest.getRequestDispatcher(String url)中的url可以使用相对路径。
5. request传递的请求,response是客户端返回的信息。forward要在response到达客户端之前调用
6. void include(ServletRequest request,ServletResponse response)
用来记录保留request和response,以后不能再修改response里表示状态的信息
response.sendRedirect()是重新定向,前后页面不是一个request在浏览器端运行的,也就是说网址会变。
2. request.getRequestDispather();返回的是一个RequestDispatcher对象。
3. RequestDispatcher.forward()是在服务器端运行;
HttpServletResponse.sendRedirect()是通过向客户浏览器发送命令来完成.
所以RequestDispatcher.forward()对于浏览器来说是“透明的”;
而HttpServletResponse.sendRedirect()则不是
4. ServletContext.getRequestDispatcher(String url)中的url只能使用绝对路径; 而
ServletRequest.getRequestDispatcher(String url)中的url可以使用相对路径。
5. request传递的请求,response是客户端返回的信息。forward要在response到达客户端之前调用
6. void include(ServletRequest request,ServletResponse response)
用来记录保留request和response,以后不能再修改response里表示状态的信息