网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > JSP技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.javamail在jsp中调用.
.全面解析JSP,servlet的配置.
.Servlet动态产生JPEG图像的例子.
.用jsp实现SQLServe数据库的备份和.
.Servlet及JSP中的多线程同步问题.
.如何使用JSP连接DB2数据库.
.JSP中表单数据存储的一种通用方法.
.用Request对象防止JSP缓存机制.
.JSP中弹出面页刷新.
.用缓冲技术提高JSP应用的性能和稳.
.jsp,html 清除页面缓存.
.JSP之plugin的使用.
.浅析JSP开发中的对象和范围属性.
.JS+JSP+JAVABEAN树型列表的实现.
.输入汉字自动转为拼音(jsp实现方.
.实例讲解JSP调用SQL Server的存储.
.jsp防盗链.
.jdbc连sql server数据库步骤及有.
.jsp中获取客户端的浏览器和操作系.
.在JSP环境中如何配置和使用fcked.

JSP三种页面跳转方式的比较

发表日期:2006-4-8


使用JSP大约有下列三种跳转方式:
1. response.sendRedirect();
2. response.setHeader("Location","");
3. <jsp:forward page="" />

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

一. response.sendRedirect()

此语句前不允许有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(),如果有,页面不会跳转。
跳转后浏览器地址栏变化
此语句后面的语句执行完成后才会跳转
三. <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)
 ...
跳转后浏览器地址栏不变,但是只能跳到当前主机下
此语句后面的语句执行完成后才会跳转

上一篇:J2ME开发中如何从MIDlet中调用JSP页面 人气:10335
下一篇:浅析JSP开发中的对象和范围属性 人气:10678
浏览全部JSP的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐