IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    JSP内置对象——session对象

    果冻想发表于 2015-12-13 12:23:55
    love 0

    简述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)

    关于这两个方法的用法和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对象



沪ICP备19023445号-2号
友情链接