请求转发的forward , include 的区别

来源:互联网 发布:mysql区分大小写吗 编辑:程序博客网 时间:2024/04/28 18:52

n         RequestDispatcher.forward()方法

RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如ServletJSPHTML)进行处理,并产生HTTP回应。

调用forward()方法时必须注意下列两点:

n           HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。

n           调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除(本章稍后的实例演练2-3将探讨此议题)。

n         RequestDispatcher.include()方法

RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象

简单的说:

forward方法是把请求的内容转发到另外的一个servlet/jsp.
include是把另一个servlet/jsp处理过后的内容拿过来与此时servlet的内容一同输出.

原创粉丝点击