果冻想
认真玩技术的地方

JSP内置对象——session对象

简述session对象

内置的session对象是javax.servlet.http.HttpSession类的实例,主要用于在服务器端保存用户信息,它代表着一次用户与服务器之间的会话。这里涉及到一个会话的概念。

从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开为止,这个过程统称为一次会话。

其实更笼统的理解就是,你打开客户端浏览器,向服务器发送请求进行交互,到你关闭客户端浏览器,这就是一次会话。有的时候,服务器也会主动断开会话,比如服务器无法提供服务等等情况。

我们都知道HTTP是无状态的,也就是说你本次发送的请求,和你下次发送的请求,服务器无法知道这两个请求是来自同一个用户请求,还是分别来自两个不同用户的请求;而有的时候,我们却非常需要每个请求的状态信息,需要区分这些请求是否来自同一个用户,这就有了session这个概念。

session通常用于跟踪用户的状态,会话等一些比较敏感的数据信息,比如判断用户当前是否为登陆状态等。虽然session是一个非常重要的概念和对象,但是关于它的内容却没有多少,很多的时候,我们都是围绕着session这个概念,开发一些比较复杂的功能,比如单点登录、自动认证、登录等功能。

接下来就对session进行一个比较简单的总结,后期如果有时间,再把项目中用到的session相关的内容抽出来总结成博文和大家分享。

常用API集合

当你打开浏览器,向服务器发送请求,你发送多次不同的请求,服务器给你响应的是不同的页面,但这都属于一个session的范畴,这就意味着session范围内的属性在这些不同的页面之间是可以共享的;但是你需要记住,一旦你关闭浏览器,即当前session结束,对应该session范围内的属性将全部丢失。

对于session有以下两个常用方法:

  • setAttribute(String attrName, Object attrValue)
  • getAttribute(String attrName)

关于这两个方法的用法和requestapplicationpageContext对象设置属性、取属性的方式是一致的。下面通过一个小小的例子进行说明。

代码示例

页面一(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对象
网站维护离不开您的支持,您可以赞助本站,谢谢支持
×

感谢您的支持,我们会一直保持!

扫码支持
请土豪扫码随意打赏

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

赞助本站
关注微信公众号和果冻一起分享你的疑惑与心得。
关注微信公众号
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

玩技术,我们是认真的

联系我们关于果冻