JSP中response.sendRedirect()后的代码为什么还能执行?
来源:互联网 发布:知其不可为而为之者 编辑:程序博客网 时间:2024/05/21 09:22
test.jsp页面中
1. System.out.println( "before response.sendRedirect ");
2. response.sendRedirect( "/target.jsp ");
3. System.out.println( "after response.sendRedirect ");
为什么无论如何第三行都会执行呢?
我以为sendRedirect执行了,请求就跳转了,后面的代码应该不执行的,但是现在来看是要继续执行的,明白的帮忙解释一下,谢谢。
//===================================================================================================
哪里 说一个方法的结束就是return?
那么按照您的意思,只要我不加上return,那么sendRedirect后面的全部代码都要执行喽?那什么时候页面才跳转啊?
如你所说的话,这样的代码会如何走?
response.sendRedirect( "/a.jsp ");
response.sendRedirect( "/b.jsp ");
response.sendRedirect( "/c.jsp ");
response.sendRedirect( "/d.jsp ");
//===================================================================================================
我同意csdn_pistachio,sendRedirect()也无非只是一个普通的方法调用,
个人认为response.sendRedirect( "/a.jsp ");
response.sendRedirect( "/b.jsp ");
response.sendRedirect( "/c.jsp ");
response.sendRedirect( "/d.jsp ");最后转到了d.jsp,只不过是让客户端浏览器发送了三个重定向的命令而已.对服务器端没有什么影响.所以在后面可以进行数据库存储处理都可以.
//===================================================================================================
回wts(天胜)&xchn(xchn)
虽然在调用了sendRedirect()之后就不能再对reponse做任何输出(包括再次sendRedirect,所以楼上的写法也是错的),但此时浏览器还没有真正接收到该指令,重定向指令是在sendRedirect之后的代码执行完以后才真正发送到客户端的,然后客户端浏览器去请求新的url。这就是重定向的执行过程。
//===================================================================================================
“我以为sendRedirect执行了,请求就跳转了,后面的代码应该不执行的,但是现在来看是要继续执行的,明白的帮忙解释一下,谢谢。”
不要用传统java应用程序的行为特征来看待B/S下的web Application的行为特征。
其实验证很简单,在你的代码第二次System.out前加入一空循环延时一下,看看重定向页面先出来还是控制台的 "after response.sendRedirect "现出来就可以判断了。
加入代码:
response.sendRedirect( "date.jsp ");
response.flushBuffer();//可以证明即使已经提交,但也并没有立即发送到客户端
for (int i=0; i <9999; i++)//数字大小视你的机器性能而定
for (int j=0; j <99999; j++);
System.out.println( "after redirect ");
- JSP中response.sendRedirect()后的代码为什么还能执行?
- JSP中response.sendRedirect()后的代码为什么还能执行
- forward()和sendRedirect()执行后,后面的代码是否还继续执行?
- response.sendRedirect的执行原理
- jsp中response.sendRedirect()的中文参数乱码问题
- jsp中response.sendredirect 的一次小意外
- mvc中用response.redirect跳转后,后续代码还会执行的问题
- 有关jsp中的response.sendRedirect()的问题
- 有关jsp中的response.sendRedirect()的问题???
- jsp:forward与response.sendRedirect的区别
- JSP的response.sendRedirect()中文参数问题
- jsp跳转response.sendRedirect的注意事项
- <jsp:forward>与response.sendRedirect()的区别
- jsp:forward和response.sendRedirect的区别
- <jsp:forward>与response.sendRedirect的区别
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- jsp中<jsp:forward page=""/>和response.sendRedirect("")两种跳转的区别
- 完整php省市区三级联动源码
- sql替换通配符
- Android屏幕元素层次结构
- GLSL语法基础
- 深入Cloud Foundry
- JSP中response.sendRedirect()后的代码为什么还能执行?
- 微软面试题
- 黑马程序员--.Net学习日记——ADO.NET知识复习
- Strut2与Hibernate的一个web分页功能
- 51单片机最小系统
- wifi和GPRS下获取android的IP信息
- Linux中的工作队列
- Linux学习笔记(二十)
- IE浏览器的经典错误