request的生命周期
有如下功能:
从index.jsp页面点击超链接进入TestServlet服务器,TestServlet服务器再请求转发到test.jsp。
在index.jsp里设置了request的attribute:requestKey1,在TestServlet服务器里设置了request的attribute:requestKey2,然后在test.jsp页面里获取request的两个属性值。
具体代码如下:



运行结果:只能获取到request的requestKey2,不能获取requestKey1。这说明index.jsp的request和test.jsp不是同一个request,而TestServlet服务器的request和test.jsp是同一个request.

原因分析:
超链接(相当于请求转发)
发送request② 请求转发request②
index.jsp------------------>TestServlet服务器-------------------->test.jsp
(index.jsp里显示自身页面的request①) (test.jsp里显示自身页面的request②)
也就是说,index.jsp页面的request是用来显示自身页面的的,刷新一下index.jsp页面,就发送一次request①从而页面完成请求和响应,request①就会被创建和销毁。
而从index.jsp页面点击超链接进入TestServlet服务器是另一个request②,TestServlet服务器对request②进行请求转发到test.jsp页面,此时test.jsp获取的请求仍然是request②,而且test.jsp页面显示自身的也是request②。如果刷新test.jsp页面,就会再发送一次request②(从index.jsp---->TestServlet服务器)
那么,如果是TestServlet服务器是重定向到test.jsp,将会是如下流程:
超链接(相当于请求转发)
发送request② 请求重定向request③
index.jsp------------------>TestServlet服务器-------------------->test.jsp
(index.jsp里显示自身页面的request①) (test.jsp里显示自身页面的request③)
此时如果刷新一下test.jsp页面,再次发送的request③和前面index.jsp的request①、TestServlet服务器的request②没有半点关系。
request的生命周期的更多相关文章
- Request Session生命周期及struts1 中service的编写
现在接手的项目是一个早期的struts1框架的项目.同时也是刚开始接触web 以及struts1架构. 在处理多个action时,有一个tab子页面需要每5s自动刷新一次. 然后在测试过程中发现,点击 ...
- jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失
jsp当做第二个servlet request的生命周期 请求 响应 不管中间经历多少个servlet 只要最后一个serlvt执行后 则生命周期结束 request的域消失
- request请求生命周期
request请求生命周期 一.request请求分析 1.1. request数据请求 # views.py from rest_framework.views import APIView fro ...
- Erlang cowboy http request生命周期
Erlang cowboy http request生命周期 翻译自: http://ninenines.eu/docs/en/cowboy/1.0/guide/http_req_life/ requ ...
- Request和Session的生命周期
request的生命周期是request请求域,一个请求结束,则request结束 session的生命周期是session会话域,打开一个浏览器请求一个网站的页面后,Session开始,当sessi ...
- @Scope注解设置创建bean的方式和生命周期
1.1.1 Scope注解创建bean的方式和生命周期 作用 Scope设置对象在spring容器(IOC容器)中的生命周期,也可以理解为对象在spring容器中的创建方式. 取 ...
- 值栈ValueStack的原理与生命周期
1.ValueStack贯穿整个 Action 的生命周期,保存在request域中,所以ValueStack和request的生命周期一样.当Struts2接受一个请求时,会迅速创建ActionCo ...
- Servlet学习笔记(一)之Servlet原理、初始化、生命周期、结构体系
Servlet是用java语言编写的应用到Web服务器端的扩展技术,与java对象的区别是,Servlet对象主要封装了对HTTP请求的处理,并且它的运行需要Servlet容器的支持(以下会介绍原因, ...
- javaBean Request生命周期
request: 在request范围内,JavaBean对象的有效范围为: ① 客户请求访问的当前JSP页面② 和当前JSP页面共享同一个请求的页面,包括<%@ include%>指令以 ...
随机推荐
- jni数据传递——会不断的更新,测试没有问题,再整理进来。
工作中遇到了ndk编程,其实核心就是java和本地的数据交互.现把所有数据类型的传递写成demo. 1,ini数组传递 我们实现传递8个数值过去,然后本地将八个数值放到数组,返回. java代码: ...
- cnblogs.com的用户体验
用户体验: 作为博客园的用户,我们觉得博客园的用户体验还是很不错的.但是我们觉得主界面有些混乱,一登录进去太多东西,完全不明白怎么分的类. 评价cnblogs.com的用户体验 1.你是什么样的用户, ...
- JS初学之-选项卡(常见)
思路:鼠标滑过的效果直接用a:hover实现的,比较简便,缺点是在IE下不兼容. 为每一个Li添加点击事件,将每一个li用自定义属性的方法与div相匹配,重点是在点击事件内,要先遍历每一个div, ...
- Codeforces Round #122 (Div. 2)
A. Exams 枚举分数为3.4.5的数量,然后计算出2的数量即可. B. Square 相当于求\(\min{x(n+1)\ \%\ 4n=0}\) 打表发现,对\(n\ \%\ 4\)分类讨论即 ...
- codeforces 725/C
Hidden Word time limit per test 2 seconds memory limit per test 256 megabytes input standard input o ...
- poj1420 拓扑序
题意:给出一个表格,一部分单元格是给定的数字,而另一部分单元格则是一个式子,表示是其他一些单元格的和,让你输出最后计算出的所有格子的数. 因为有些格子需要其他格子先计算出来,所以计算顺序是按照拓扑序的 ...
- apache性能优化
perfork进程数 http://sookk8.blog.51cto.com/455855/275759/ mod_cache 磁盘缓存 http://www.cnblogs.com/fnng/ar ...
- 靠边伸缩菜单的做法(类似QQ,碰到就会伸出来)
这段脚本主要实现一个group的伸缩功能,group里面的内容也就是菜单的内容可以自由添加. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 ...
- Knockout JS 入门示例
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx. ...
- ruby-thread/process
thread a = 1 threads = [] mutex = Mutex.new 5.times do threads << Thread.new do 1000.times do ...