首页  韩国资源  酷站加油  我的展厅  设计名站  古典元素  推荐下载  设计欣赏  每周专访  招募精英  人才专区  网页教程  平面设计  编程开发  设计竞赛
当前位置:首页 > 编程开发 > JSP教程 > 正文
Google
JSP中的三种页面跳转方式
来源:赛迪网 作者:Alizee 2008年02月21日 09:56 网友评论:0条 点击:

使用JSP的三种跳转方式:


1. response.sendRedirect();


2. response.setHeader("Location","");


3. <jsp:forward page="" />


经过试验得到下面的一些规则:


一. response.sendRedirect()


此语句前不允许有out.flush(),如果有out.flush(),会有异常:


java.lang.IllegalStateException: Can't sendRedirect()

after data has committed to the client.

at com.caucho.server.connection.AbstractHttpResponse.sendRedirect

(AbstractHttpResponse.java:558)

...


跳转后浏览器地址栏变化


如果要跳到不同主机下,跳转后,此语句后面的语句会继续执行,如同新开了线程,但是对response的操作已经无意义了;


如果要跳到相同主机下,此语句后面的语句执行完成后才会跳转;


二. response.setHeader("Location","")


此语句前不允许有out.flush(),如果有out.flush(),页面不会跳转。


跳转后浏览器地址栏变化


此语句后面的语句执行完成后才会跳转


三. <jsp:forward page="" />


此语句前不允许有out.flush(),如果有,会有异常:


java.lang.IllegalStateException: forward() not allowed after buffer has committed.

at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:134)

at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:101)

at com.caucho.jsp.PageContextImpl.forward(PageContextImpl.java:836)

...
 

跳转后浏览器地址栏不变,但是只能跳到当前主机下

此语句后面的语句执行完成后才会跳转

上一篇:了解Java中的“异常机制   下一篇:JSP调用SQL Server的存储过程
收藏此页】【打印】【关闭
 相关文章  我要点评
·建立JSP操作用以提高数据库访问效率
·JSP环境中如何配置和使用fckeditor
·实现Thread缓冲池的一个简单方法
·使用浮点数和小数中的技巧与陷阱
·String中三种加法的区别
·JSP调用SQL Server的存储过程
·提升JSP应用程序的七个实用方法
·简单的Thread缓冲池的实现

免责声明:本站刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何建议。对本文有任何异议,请联络:68design#163.com
转载要求:作者及来源信息必需保留。转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印。



关于我们 | 在线反馈 | 广告报价 | 友情链接 | 联系我们 | 免责声明 | 在线投稿 | 网站地图
Copyright © 2003-2007 68design.net, All Rights Reserve 【找网页设计师,当然上网页设计师联盟】