RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。
调用forward()方法时必须注意下列两点:
1. 在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。
2. 调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除.
RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象。
调用forward()方法时必须注意下列两点:
1. 在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。
2. 调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除.
RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象。
本文介绍了RequestDispatcher接口中的forward()和include()方法。forward()方法用于将HTTP请求转送给其他Web资源处理并产生回应,但须在回应未确认前调用且会清除原HttpResponse内容。而include()方法同样实现请求转发,但最终回应由原始Servlet主导。
1393

被折叠的 条评论
为什么被折叠?



