Servlet中forword与include的区别
2016-03-05 22:51
661 查看
include方法:
1)RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能。
2 被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略。
forward方法用于将请求转发到RequestDispatcher对象封装的资源。
forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中用forward命令会转到servlet2中,显示22222.而在servlet1中使用include方法会依然在servlet1的页面中,但是在1111后打出22222
forward与redirect区别
forward仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
forword在调用者程序中设置的响应的状态码和响应头不会被忽略在被调用者程序中设置响应状态码和响应头也不会被忽略。
RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。
调用forward()方法时必须注意下列两点:
在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。
调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除(本章稍后的实例演练2-3将探讨此议题)。
RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象
1)RequestDispatcher.include方法用于将RequestDispatcher对象封装的资源内容作为当前响应内容的一部分包含进来,从而实现可编程的服务器端包含功能。
2 被包含的Servlet程序不能改变响应消息的状态码和响应头,如果它里面存在这样的语句,这些语句的执行结果将被忽略。
forward方法用于将请求转发到RequestDispatcher对象封装的资源。
forward方法是把请求的内容转发到另外的一个servlet.而include是把另一个servlet处理过后的内容拿过来.举例来说比如在servlet1打一句out.print("1111"),servlet2打上out.print("22222"),在servlet1中用forward命令会转到servlet2中,显示22222.而在servlet1中使用include方法会依然在servlet1的页面中,但是在1111后打出22222
forward与redirect区别
forward仅是容器中控制权的转向,在客户端浏览器地址栏中不会显示出转向后的地址;redirect则是完全的跳转,浏览器将会得到跳转的地址,并重新发送请求链接。这样,从浏览器的地址栏中可以看到跳转后的链接地址。所以,forward更加高效,在forward可以满足需要时,尽量使用forward()方法,并且,这样也有助于隐藏实际的链接。在有些情况下,比如,需要跳转到一个其它服务器上的资源,则必须使用sendRedirect()方法。
forword在调用者程序中设置的响应的状态码和响应头不会被忽略在被调用者程序中设置响应状态码和响应头也不会被忽略。
RequestDispatcher.forward()方法
RequestDispatcher接口所定义的forward()方法可以将HTTP请求转送给其他Web资源(例如Servlet、JSP或HTML)进行处理,并产生HTTP回应。调用forward()方法时必须注意下列两点:
在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。
调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除(本章稍后的实例演练2-3将探讨此议题)。
RequestDispatcher.include()方法
RequestDispatcher接口的include()方法与forward()方法非常类似,惟一的不同在于:利用include()方法将HTTP请求转送给其他Servlet后,被调用的Servlet虽然可以处理这个HTTP请求,但是最后的主导权仍然是在原来的Servlet。换言之,被调用的Servlet如果产生任何HTTP回应,将会并入原来的HttpResponse对象
相关文章推荐
- lordofpomelo windows下安装问题总结
- 软件过程与项目管理(第二次作业)
- 一个由INode节点爆满引起的业务故障 推荐
- 加密器,对自己的文件加密
- Android 第三天重置版_注意事项
- hdu 5635 LCP Array(BC第一题)
- Ignatius and the Princess IV
- LeetCode 69 Sqrt(x)(Math、Binary Search)(*)
- 【类库】私房干货.Net数据层方法的封装
- 观察者模式与事件驱动模式实例比较
- HDU 1031 Design T-Shirt(结构体2级排序)
- 希尔排序
- 我们不改需求了,给你们立字据!
- [面经]CVTE的两道笔试编程题
- 我们不改需求了,给你们立字据!
- 诗词10首【2】
- 有关c#的几个问题
- POJ 1003
- 静态内部类、匿名内部类、局部内部类
- Linux(一)——文本模式指令