`
草帽当家的
  • 浏览: 24971 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
文章分类
社区版块
存档分类
最新评论

解剖request

 
阅读更多
        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
0
2
分享到:
评论

相关推荐

    stun协议深入解剖

    ### STUN协议深入解剖 #### 一、NAT类型及其特性 STUN协议(Simple Traversal of UDP through NATs)是一种用于穿越网络地址转换器(NAT)的技术,其核心在于帮助网络设备识别自身是否位于NAT后,并确定经过NAT...

    The Kings Request-crx插件

    这个简短的冒险游戏将您对人体的了解以及科学,生物学,生理学,解剖学,医学,生物医学,护理,药学,健康或运动科学的概念用作您的武器! 如果您提出的问题有误,那么没有负面的-因此,去​​拯救这个王国吧!

    麦肯锡PPT图库(PPT_160页).ppt

    1. **框架与布局**:如GBUTtem3所示,麦肯锡的PPT模板通常遵循清晰的结构,如RFC(Request for Comments)格式,用于展示问题、解决方案或决策过程。这种逻辑框架使得信息层次分明,易于理解。 2. **图表类型**:...

    How Tomcat Works 中文版

    《How Tomcat Works 中文版》是为Java开发者量身定做的技术书籍,它详细解剖了Tomcat这一流行的开源servlet容器的工作机制。本书不仅适用于对Tomcat工作原理感兴趣的servlet/jsp程序员,也适合那些希望加入Tomcat...

    HowTomcatWorks

    《How Tomcat Works》这本书是Tomcat源码分析的经典之作,它详细地解剖了Tomcat4.1.12和5.0.18版本的源码,深入解释了这两个版本的servlet容器内部工作原理,是学习Tomcat内部机制的重要资料。Tomcat,代号Catalina...

    块设备IO流程

    ##### 2.1 解剖一个块设备 **扇区**:设备的最小寻址单元,也称为“硬扇区”或“设备块”,其最常见的大小是512字节。物理磁盘上的数据读取和写入操作都是以扇区为单位进行的。 **块**:文件系统的最小寻址单元,...

    asp程序设计

    ASP(Active Server Pages)是一种由...因此,这个压缩包可能包含了一系列关于ASP编程的学习资料,如教程文档、示例代码或解剖的Web项目,对于初学者来说是一个宝贵的资源,可以帮助他们更好地理解和掌握ASP程序设计。

    how tomcat workd tomcat工作原理

    《HowTomcatWorks》这本书详细解剖了Tomcat的内部运行机制,并以Tomcat4.1.12和5.0.18版本为例,一步步深入其工作原理。它首先提供了为各个组件创建简化版本的蓝图,帮助读者更容易理解每个组件的功能。随后,书中会...

    深入剖析tomcat

    首先,Tomcat的运行机制是基于其架构设计的,而这个架构可以解剖为多个不同的组件。了解Tomcat的架构包括连接器(connector)和容器(container)两部分是学习的关键点之一。连接器的作用是处理外部请求,并将请求传递给...

    ASP网站实例开发源码——QQ320音乐程序 v1.4 ASP版(源码+数据库).rar

    3. **请求与响应对象**:`Request`对象用于获取来自用户的输入,如表单数据;`Response`对象则用于向客户端发送HTML内容,包括动态生成的页面。 4. **数据库连接与操作**:在QQ320音乐程序中,可能会使用ADO...

    Learning Python Web Penetration Testing 1st

    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应用开发详解全书源码

    《jsp应用开发详解全书源码》是一份针对JavaServer Pages(JSP)技术的实践教程,包含了丰富的示例和项目代码,对于初学...通过这个资源,你可以构建自己的Web应用,同时也可以通过解剖源码来提升对JSP工作机制的理解。

    亮剑.NET深入体验与实战精要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 ...

    亮剑.NET深入体验与实战精要3

    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 ...

Global site tag (gtag.js) - Google Analytics