DAL 发表于 2017-8-1 08:58:36

RequestDispatcher中关于forward和include方法的疑问

forword方法和include 方法的区别在哪?两个都是跳转到其他的web资源处理后回到原先的servlet中继续处理吗?
include可以多次使用,forward只能用一次是为什么呢? 两个方法都是把request和respond都传过去吗?
其实本质问题是include方法和forward方法在程序中的路径问题,就是启用两个方法的时候程序是传什么过去,跳过去走哪一步?然后再回来是怎么回来?求助 搞不清楚差别

凉生我怕怕 发表于 2017-8-1 16:58:59

RequestDispatcher借口包含两个方法,forward方法和include方法,
forward将将请求转发到RequestDispatcher对象封装的资源,include方法将RequestDispatcher对象封装的资源作为当前响应内容的一部分包含进来。他们都有两个参数,即传递给当前Servlet的service方法的那两个ServletRequest和ServletResponse对象
include方法,要注意的是 被包含的Servlet程序不能改变响应消息的状态码和响应头,它里面设置状态码和响应头的语句将被忽略
在forward方法调用之前,如果Servlet程序中写入的部分内容已被传送到客户端,forward方法将抛出IllegalStateException. forward方法执行以后,写入到缓冲区的内容将被清空,后面的写入操作将被忽略。
forward方法的调用者和被调用者的状态码和响应头都不会被忽略。
页: [1]
查看完整版本: RequestDispatcher中关于forward和include方法的疑问