http://hi.baidu.com/veyroner/blog/item/7c3294f54c9b19d0f2d385f4.html
记录
Redirect 的大概原理 在响应中 标志位是3xx 另外在location中要有目标的url
此外 包含了Redirect 和 forward的的基本区别 比较的全面了
此外 这两个方法是哪个类的方法 在面试中也被问到了 当时答的太二了 赶紧记一下
RequestDispatcher 接口中 包含了 void include(ServletRequest request, ServletResponse response) void forward(ServletRequest request, ServletResponse response) 两个方法
include 方法在目标servlet执行完毕后 原servlet还继续进行
forward方法 在目标servlet执行时 原servlet就终止了
include更像是包含了一个片段
forward则是托付给了另外一个servlet
RequestDispatcher对象由服务器来创建
如何得到RequestDispatcher 对象
1 ServletRequest接口中的getRequestDispatcher (String path)来得到。
2 ServletContext接口中有两个方法
getRequestDispatcher(String path)
getNamedDispatcher(String name)
可以得到。
而HttpServlet的子类中 可以这样的到ServletContext
ServletContext context = getServletContext();
这段内容 位于《java web开发详解 孙鑫232页》
而sendRedirect(String location)方法则是 Response接口中的一个方法
补充 下面这个文章讲的也不错 讲到了forward 方法的原理http://tieba.baidu.com/f?kz=616951622