sendredirect,forward,include区别
来源:互联网 发布:知其不可为而为之者 编辑:程序博客网 时间:2024/05/22 01:59
首先,sendRedirect与forward,include的最大区别是request,response..
sendRedirect产生新的请求与响应,前后已没有联系.
相当于在页面中重新输入一个URL,只是自动完成而已.
forward,include是共用同一请求.客户端完全不知道(浏览器中的URL不变)
使用方式:
servlet和jsp里面一样
其次,forward与include的区别.
调用forward()方法时必须注意下列两点:
在HTTP回应被“确认”(committed)以前才能调用forward()方法(这里的“确认”是指将HTTP回应的内容主体送回用户端),否则将拋出IllegalStateException异常。[include没有这种情况]
调用forward()方法后,原先存放在HttpResponse对象中的内容将会自动被清除(也就是在forward方法前,使用PrintWriter,ServletOutputStream输出的内容都被忽略)
[include不会]
使用方式
Servlet中
这里面的path必须以"/",相对于当前WEB应用程序根目录
这里面的path可以是以"/"开头,也可以使用相对路径.
在JSP中
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的区别在于输出内容,以及响应头!
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代码
- <jsp:include page=""/>
- <jsp:forward page=""/>
<jsp:include page=""/> <jsp:forward page=""/>
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的区别在于输出内容,以及响应头!
- sendredirect,forward,include区别
- sendRedirect,include,forward的区别
- sendRedirect、forward、include的区别
- 图解sendRedirect,include,forward的区别
- 图解sendRedirect,include,forward的区别
- 转:图解sendRedirect,include,forward的区别
- include与forward与sendRedirect的区别
- jsp/servlet 中sendRedirect,include,forward区别
- 图解sendRedirect,include,forward的区别
- 图解sendRedirect,include,forward的区别
- 图解sendRedirect,include,forward的区别
- sendRedirect与forward,include的区别
- sendRedirect与forward,include的区别
- 图解sendRedirect,include,forward的区别
- Servlet中forward、sendRedirect、include的区别
- jsp,Servlet中的forward、include、sendRedirect的区别
- Serlvet/JSP中forward、include、sendRedirect的区别
- Servlet之forward、sendRedirect、 include区别与使用
- 关于UI控件跨线程调用
- 黑马程序员--.Net学习日记——线程
- 多页面 编辑器
- 简单模拟LinkedList-迭代器设计模式-马士兵设计模式教程 .
- 成为Android高手必须掌握的8项基本要求.路就在,看你走不走le
- sendredirect,forward,include区别
- 多页编辑
- Unity 优化相关
- IBM DB2 Catalog使用及浅析
- Android入门第十四篇之画图
- 完整php省市区三级联动源码
- sql替换通配符
- Android屏幕元素层次结构
- GLSL语法基础