内置的session
对象是javax.servlet.http.HttpSession
类的实例,主要用于在服务器端保存用户信息,它代表着一次用户与服务器之间的会话。这里涉及到一个会话的概念。
从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程统称为一次会话。
其实更笼统的理解就是,你打开客户端浏览器,向服务器发送请求进行交互,到你关闭客户端浏览器,这就是一次会话。有的时候,服务器也会主动断开会话,比如服务器无法提供服务等等情况。
我们都知道HTTP是无状态的,也就是说你本次发送的请求,和你下次发送的请求,服务器无法知道这两个请求是来自同一个用户请求,还是分别来自两个不同用户的请求;而有的时候,我们却非常需要每个请求的状态信息,需要区分这些请求是否来自同一个用户,这就有了session这个概念。
session通常用于跟踪用户的状态,会话等一些比较敏感的数据信息,比如判断用户当前是否为登陆状态等。虽然session是一个非常重要的概念和对象,但是关于它的内容却没有多少,很多的时候,我们都是围绕着session这个概念,开发一些比较复杂的功能,比如单点登录、自动认证、登录等功能。
接下来就对session进行一个比较简单的总结,后期如果有时间,再把项目中用到的session相关的内容抽出来总结成博文和大家分享。
当你打开浏览器,向服务器发送请求,你发送多次不同的请求,服务器给你响应的是不同的页面,但这都属于一个session的范畴,这就意味着session范围内的属性在这些不同的页面之间是可以共享的;但是你需要记住,一旦你关闭浏览器,即当前session结束,对应该session范围内的属性将全部丢失。
对于session
有以下两个常用方法:
关于这两个方法的用法和request
、application
和pageContext
对象设置属性、取属性的方式是一致的。下面通过一个小小的例子进行说明。
页面一(page1.jsp)主要代码:
<%
session.setAttribute("defaultWebsite", "http://www.jellythink.com");
session.setAttribute("webInfo", "果冻想 - 一个原创技术文章分享网站");
%>
页面二(page2.jsp)主要代码:
<%= session.getAttribute("defaultWebsite") %><br/>
<%= session.getAttribute("webInfo") %>
由于页面一和页面二之间没有任何关系,当我们通过客户端浏览器访问页面一以后,再去访问页面二,此时这两个页面属于同一个session的范畴,理所当然的页面二就可以获取页面一中session设置的属性。
在总结《JSP指令总结》这篇文章时,里面说到page
指令有一个session属性,当我们在页面中配置了session属性为false时,则在该页面中将禁用session对象,在开发的时候需要记住这一点。
文章虽糙,但还是经过一番认真的整理的;虽然总结的内容不是很深,但是再NB的技术都是从这些基础的知识衍生出来的,掌握了基础,就是把握了根本。学习,这是一种态度。
果冻想-一个原创技术文章分享网站。
2015年11月14日 于呼和浩特。
未经允许不得转载:果冻想 » JSP内置对象——session对象