辽宁省小学入学年龄:forward与include转发问题 - yinyanshuan的日志 - 网易博客

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 23:29:33

首先,sendRedirect与forward,include的最大区别是request,response..
sendRedirect产生新的请求与响应,前后已没有联系.
相当于在页面中重新输入一个URL,只是自动完成而已.
forward,include是共用同一请求.客户端完全不知道(浏览器中的URL不变)

使用方式:
servlet和jsp里面一样

Java代码
response.sendRedirect();  

response.sendRedirect();


其次,forward与include的区别.
调用forward()方法时必须注意下列两点:
在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。[include没有这种情况]
调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除(也就是在forward方法前,使用PrintWriter,ServletOutputStream输出的内容都被忽略)
[include不会]

使用方式
Servlet中
Java代码
getServletContext().getRequestDispatcher(path).include(request,response);  
getServletContext().getRequestDispatcher(path).forward(request,response); 

getServletContext().getRequestDispatcher(path).include(request,response);
getServletContext().getRequestDispatcher(path).forward(request,response);

这里面的path必须以"/",相对于当前WEB应用程序根目录
Java代码
request.getRequestDispatcher(path).include(request,response);  
request.getRequestDispatcher(path).forward(request,response); 

request.getRequestDispatcher(path).include(request,response);
request.getRequestDispatcher(path).forward(request,response);

这里面的path可以是以"/"开头,也可以使用相对路径.

在JSP中
Java代码
  
 



forward在SERVLET与JSP中表现不一致:servlet中:运行forward方法,后面的语句会执行完,再去执行forward方法 (符合JAVA程序运行顺序)
在jsp中,运行到forward后,直接跳转,后面的语句不再执行.


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

----------------------------------------------------------
forward与include还有一个重要的区别:
forward在调用者程序中设置的响应状态码和响应头不会被忽略,在被调用者程序中设置的响应状态码和响应头也不会被忽略.
include会被忽略..
这也是乱码的一个原因..
使用include时候,要要调用程序中写上response.setContentType("text/html;charset=utf-8")
不管你是不是用filter统一处理过字符.

===================================================================
总结下:
sendRedirect与include,forward的区别在于是不是同一个request
include与forward的区别在于输出内容,以及响应头!

forward与include转发问题 - yinyanshuan的日志 - 网易博客 forward与include转发问题 forward,include,redirect区别 [转发] 烧肉方 - 熊猫非猫的日志 - 网易博客 本原性问题驱动课堂教学:理念、实践与反思 - 冬的日志 - 网易博客 转发:五僧一居士的佛化家庭 - jiangoy的日志 - 网易博客 【转发】【我想和你做一生的网友】 - 浪花的日志 - 网易博客 【转发】【10种生活方式让女人更美丽】 - 浪花的日志 - 网易博客 【引用】转发:美国为何不侵略加拿大 - qingfeng2010yue的日志 - 网易博客 [转发] 烧肉方==== - 熊猫非猫的日志 - 网易博客 怎样解决虚拟内存不足问题 - 至死不渝的日志 - 网易博客 浅谈洗衣水位问题 - 洗涤技术交流的日志 - 网易博客 净资产出资问题 - 行者无疆的日志 - 网易博客1 教你怎样补救电脑用久后速度变慢问题 - 与我同行的日志 - 网易博客 【引用】祈望善良的朋友们转发 帮助找到这个孩子 - 蓝色的天空的日志 - 网易博客 转发中国旅挪专家学者联合会留言:你的梦,我们来实现! - 于娟的日志 - 网易博客 Contain 与include 辨析 “活法”与“寻道” - 悠远的天空的日志 - 网易博客 老子与孔子的临别赠言 - 鸟语花香的日志 - 网易博客 书法的疾与涩 - 墨墨无语的日志 - 网易博客 摄影构图与黄金分割 - 阿帆人的日志 - 网易博客 自由与责任--韩德强 - 刘姥姥的日志 - 网易博客 施瓦辛格与官员工资 - 刘仰的日志 - 网易博客 敬重与惜别 - 潘采夫的日志 - 网易博客