request的生命周期很短,只活动于浏览器向服务器的一次请求中,当请求执行完,当前对象也将被销毁掉。
request经常用来获取浏览器页面上输入的表格信息——用户名、密码诸如此类也可以在servlet中setAttribute("索引名","索引值")来存储一对object类型的键值对,通过forward或include方法实现请求跳转,区别只是前者不将response中的输出流信息输出,后者则进行输出。由于跳转还是在同一个请求中进行的,request对象并未被销毁,所以能从跳转到的页面中得到键值对中的值。
/**
* HelloServlet中的请求处理方法
*/
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.service(req, resp);
resp.setContentType("text/html;charset=gbk");
resp.setCharacterEncoding("gbk");
req.setCharacterEncoding("gbk");
//得到用户发送请求时输入的参数
String username = req.getParameter("username");
req.setAttribute("username", username);
req.getRequestDispatcher("redirect.jsp").forward(req, resp);
//resp.sendRedirect("redirect.jsp");
}
登录界面:当点击登录按钮时,请求被服务器接收,servlet进行处理,将username保存,然后跳转到redirect.jsp中。
跳转界面:跳转到redirect.jsp中,并在页面上显示出了用户名,值得注意的一点,地址栏并没有指向redirect.jsp,间接的证明所有操作都在一个请求中。
firebug:很明显,服务器只收到一个采用post方法的请求。
至于request的生命周期是否只在一个请求中,并没有得到验证。那么如果在两个请求中完成上面的操作,是不是还会得到username呢?
/**
* HelloServlet中的请求处理方法
*/
protected void service(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
super.service(req, resp);
resp.setContentType("text/html;charset=gbk");
resp.setCharacterEncoding("gbk");
req.setCharacterEncoding("gbk");
//得到用户发送请求时输入的参数
String username = req.getParameter("username");
req.setAttribute("username", username);
//req.getRequestDispatcher("redirect.jsp").forward(req, resp);
//重定向
resp.sendRedirect("redirect.jsp");
}
1、用户名显示为"null",说明request的生命周期是一次请求;2、地址栏指向了redirect.jsp;3、firebug中显示出了两次请求,一次是我指定的"post",另一次应该是默认的"get",response将重定向的信息返回给浏览器,浏览器再进行第二次请求,此时第一个request对象被销毁,所以再也得不到它携带的信息了。
- 大小: 10.4 KB
- 大小: 7.5 KB
- 大小: 7.3 KB
- 大小: 10.5 KB
- 大小: 7.1 KB
- 大小: 10.9 KB
分享到:
相关推荐
### STUN协议深入解剖 #### 一、NAT类型及其特性 STUN协议(Simple Traversal of UDP through NATs)是一种用于穿越网络地址转换器(NAT)的技术,其核心在于帮助网络设备识别自身是否位于NAT后,并确定经过NAT...
这个简短的冒险游戏将您对人体的了解以及科学,生物学,生理学,解剖学,医学,生物医学,护理,药学,健康或运动科学的概念用作您的武器! 如果您提出的问题有误,那么没有负面的-因此,去拯救这个王国吧!
1. **框架与布局**:如GBUTtem3所示,麦肯锡的PPT模板通常遵循清晰的结构,如RFC(Request for Comments)格式,用于展示问题、解决方案或决策过程。这种逻辑框架使得信息层次分明,易于理解。 2. **图表类型**:...
《How Tomcat Works 中文版》是为Java开发者量身定做的技术书籍,它详细解剖了Tomcat这一流行的开源servlet容器的工作机制。本书不仅适用于对Tomcat工作原理感兴趣的servlet/jsp程序员,也适合那些希望加入Tomcat...
《How Tomcat Works》这本书是Tomcat源码分析的经典之作,它详细地解剖了Tomcat4.1.12和5.0.18版本的源码,深入解释了这两个版本的servlet容器内部工作原理,是学习Tomcat内部机制的重要资料。Tomcat,代号Catalina...
##### 2.1 解剖一个块设备 **扇区**:设备的最小寻址单元,也称为“硬扇区”或“设备块”,其最常见的大小是512字节。物理磁盘上的数据读取和写入操作都是以扇区为单位进行的。 **块**:文件系统的最小寻址单元,...
ASP(Active Server Pages)是一种由...因此,这个压缩包可能包含了一系列关于ASP编程的学习资料,如教程文档、示例代码或解剖的Web项目,对于初学者来说是一个宝贵的资源,可以帮助他们更好地理解和掌握ASP程序设计。
《HowTomcatWorks》这本书详细解剖了Tomcat的内部运行机制,并以Tomcat4.1.12和5.0.18版本为例,一步步深入其工作原理。它首先提供了为各个组件创建简化版本的蓝图,帮助读者更容易理解每个组件的功能。随后,书中会...
首先,Tomcat的运行机制是基于其架构设计的,而这个架构可以解剖为多个不同的组件。了解Tomcat的架构包括连接器(connector)和容器(container)两部分是学习的关键点之一。连接器的作用是处理外部请求,并将请求传递给...
3. **请求与响应对象**:`Request`对象用于获取来自用户的输入,如表单数据;`Response`对象则用于向客户端发送HTML内容,包括动态生成的页面。 4. **数据库连接与操作**:在QQ320音乐程序中,可能会使用ADO...
You will then learn to interact with a web application using Python, understand the anatomy of an HTTP request, URL, headers and message body, and later create a script to perform a request, and ...
《jsp应用开发详解全书源码》是一份针对JavaServer Pages(JSP)技术的实践教程,包含了丰富的示例和项目代码,对于初学...通过这个资源,你可以构建自己的Web应用,同时也可以通过解剖源码来提升对JSP工作机制的理解。
1.4.4 反射——“解剖” 49 1.5 .NET开发几把小刀 52 1.5.1 using之多变身 52 1.5.2 @符号的妙用 54 1.5.3 预处理指令,有你更轻松 55 1.6 Visual Studio.NET 2008 实战 58 1.6.1 如何创建ASP.NET项目 58 1.6.2 ...
1.4.4 反射——“解剖” 49 1.5 .NET开发几把小刀 52 1.5.1 using之多变身 52 1.5.2 @符号的妙用 54 1.5.3 预处理指令,有你更轻松 55 1.6 Visual Studio.NET 2008 实战 58 1.6.1 如何创建ASP.NET项目 58 1.6.2 ...