jsp内置对象【02】四种内置对象【02】session、application
2013-02-02 11:55
459 查看
我们继续来学习,上一篇文章中说到了request属性,那么既要想客户端和服务端都都能实现跳转的话,就用到了session。
第三种:session属性
我们接着修改一下上一篇文章中的代码来对比一下:
运行一下就会发现,即使是以超链接的形式,也依然能够接受参数。可见session的属性范围的确是比request大了。session是一个应用广泛的属性。它有一个响亮的名字:一次性会话机制。
我们先来看一个问题。在浏览器上运行session_01.jsp这个页面,会跳转到session_02.jsp上,这个时候不要关闭浏览器,在地址栏中直接输入session_02.jsp的地址,可以发现会直接显示session_02.jsp的内容,那我们关闭浏览器,在重新打开一个新的浏览器,直接输session_02.jsp的地址,一运行,结果不显示值了。那么问题就来了,为什么重新开启一个浏览器就不行了呢?这就是session的特点:一次性会话机制。
什么是session的会话?
会话就行我们在打电话一样,我们双方都在通讯,如果有一个挂断了,那么这次会话就结束了。session也是一样的。先输入session_01.jsp地址,然后跳转后,session就会保存在当前的浏览器中,即使直接输入session_02.jsp的地址,依然能显示。但是如果在打开一个新的浏览器的话,则就无法取得之前设置的session了,因为每一个session只保存在当前的浏览器中,并且可以从相关的页面中取得。
对于服务器而言,每一个连接到它的客户端都是一个session。
可见,即使session的属性范围比request扩大了,但是依然存在着限制。要想重新打开浏览器还会显示,那就得使用application属性范围了。
第四种:application属性
我们从上图中可以看出,所有的application属性直接保存在服务器上,直接属性服务器管辖的范围了,不在受其他的一些因素影响。即使是浏览器关闭了,只要服务器没有关闭,依然可以进行操作。
我们来验证一下,还是拿上述的的代码修改一下,为了对比明显。
运行看一下,即使新开一个浏览器,直接输入application_02.jsp的地址,也依然能够显示内容。
但是如果服务器关闭了,那就无法取得了。
经过上一篇http://zhaoyuqiang.blog.51cto.com/6328846/1130617和这一篇的学习,我们一起学习了jsp内置对象中的最重要的四种内置对象。从学习中可以看出,四种内置对象page、request、session和application的属性范围是依次扩大的,那么有的同学就直接用最大的,这样多省事了。这个问题就坚决避免的。因为属性范围越大,对于服务器的性能影响也就越大,这个时候就给出了一个原则: 能使用page范围的就不要使用request,能使用request范围的就不要使用session,能使用session的就不要使用application。这对初学者简单的做个项目可能不会有多大影响,但是公司做的项目影响可就大了,所以同学们要养成一个好的习惯。
注意的是,内置对象中的所有的方法都应该在Java Servlet Api 中查找,而不是学习java的时候用的那个API,Java Servlet Api在本页的最后有下载,是英文版本的,有的同学可能不喜欢,不过英文版本的才是原汁原味的,你可以把方法复制下来去谷歌百度翻译。
附件:http://down.51cto.com/data/2362258
第三种:session属性
我们接着修改一下上一篇文章中的代码来对比一下:
Session_01.jsp <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <html> <head> <title>web开发</title> </head> <body> <% //设置属性 session.setAttribute("name","赵玉强"); //将赵玉强赋给name %> <a href="session_02.jsp">通过连接访问</a> </body> </html> Session_02.jsp <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <html> <head> <title>web开发</title> </head> <body> <% //设置属性 String username=(String)session.getAttribute("name"); %> <h2>姓名:<%=username%></h2> </body> </html>
运行一下就会发现,即使是以超链接的形式,也依然能够接受参数。可见session的属性范围的确是比request大了。session是一个应用广泛的属性。它有一个响亮的名字:一次性会话机制。
我们先来看一个问题。在浏览器上运行session_01.jsp这个页面,会跳转到session_02.jsp上,这个时候不要关闭浏览器,在地址栏中直接输入session_02.jsp的地址,可以发现会直接显示session_02.jsp的内容,那我们关闭浏览器,在重新打开一个新的浏览器,直接输session_02.jsp的地址,一运行,结果不显示值了。那么问题就来了,为什么重新开启一个浏览器就不行了呢?这就是session的特点:一次性会话机制。
什么是session的会话?
会话就行我们在打电话一样,我们双方都在通讯,如果有一个挂断了,那么这次会话就结束了。session也是一样的。先输入session_01.jsp地址,然后跳转后,session就会保存在当前的浏览器中,即使直接输入session_02.jsp的地址,依然能显示。但是如果在打开一个新的浏览器的话,则就无法取得之前设置的session了,因为每一个session只保存在当前的浏览器中,并且可以从相关的页面中取得。
对于服务器而言,每一个连接到它的客户端都是一个session。
可见,即使session的属性范围比request扩大了,但是依然存在着限制。要想重新打开浏览器还会显示,那就得使用application属性范围了。
第四种:application属性
我们从上图中可以看出,所有的application属性直接保存在服务器上,直接属性服务器管辖的范围了,不在受其他的一些因素影响。即使是浏览器关闭了,只要服务器没有关闭,依然可以进行操作。
我们来验证一下,还是拿上述的的代码修改一下,为了对比明显。
Application_01.jsp <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <html> <head> <title>web开发</title> </head> <body> <% //设置属性 application.setAttribute("name","赵玉强"); %> <a href="page02.jsp">通过连接访问</a> </body> </html> Application_02.jsp <%@ page language="java" contentType="text/html" pageEncoding="utf-8" %> <html> <head> <title>web开发</title> </head> <body> <% //设置属性 String username=(String)application.getAttribute("name"); %> <h2>姓名:<%=username%></h2> </body> </html>
运行看一下,即使新开一个浏览器,直接输入application_02.jsp的地址,也依然能够显示内容。
但是如果服务器关闭了,那就无法取得了。
经过上一篇http://zhaoyuqiang.blog.51cto.com/6328846/1130617和这一篇的学习,我们一起学习了jsp内置对象中的最重要的四种内置对象。从学习中可以看出,四种内置对象page、request、session和application的属性范围是依次扩大的,那么有的同学就直接用最大的,这样多省事了。这个问题就坚决避免的。因为属性范围越大,对于服务器的性能影响也就越大,这个时候就给出了一个原则: 能使用page范围的就不要使用request,能使用request范围的就不要使用session,能使用session的就不要使用application。这对初学者简单的做个项目可能不会有多大影响,但是公司做的项目影响可就大了,所以同学们要养成一个好的习惯。
注意的是,内置对象中的所有的方法都应该在Java Servlet Api 中查找,而不是学习java的时候用的那个API,Java Servlet Api在本页的最后有下载,是英文版本的,有的同学可能不喜欢,不过英文版本的才是原汁原味的,你可以把方法复制下来去谷歌百度翻译。
附件:http://down.51cto.com/data/2362258
相关文章推荐
- jsp九大内置对象之session和application
- JSP内置对象--pageContent,request,response,session,application,config,out,page,exception
- jsp九大内置对象:request、response、session、application、out、page、pageContext、config、exception
- 浪潮优派培训笔记:JSP的9大内置对象之(三).与数据通信相关的4个内置对象:pageContext、request、session、application
- JSP九大内置对象---Request,Response,Out,Session,Application,Cookie,Config,Page,Exception
- 02_06 JSP内置对象之session
- JSP内置对象详解3 之 session与application
- jsp内置对象【02】四种内置对象【01】page、request
- JSP内置对象之------response、session、application
- JSP内置对象--4种属性范围 (pageContext,request,session,application)
- struts2 中jsp的9个内置对象、四种作用域、转发和重定向及在Action中获取session
- application、session、request、page 4个JSP内置对象详细介绍
- JSP内置对象之session application page pageContext config exception
- JSP 内置对象(request response session application out pageContext)
- 【JSP笔记】内置对象(二)session、application
- JSP内置对象:request, reponse, out, session, application, config, pagecontext, page, exception
- 02_07 JSP内置对象之application
- 编写一个JSP文件,使用pageContext内置对象来获取由session、request和application内置对象设置的属性。
- jsp九大内置对象(二)session、application、pageContext
- 02---jsp内置对象05(application对象)