码迷,mamicode.com
首页 > 其他好文 > 详细

会话的基础知识

时间:2016-04-27 08:14:36      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:

会话的基础知识

 

主要内容包括:

   1、会话是什么?

   2、会话能干什么?

   3、会话和ServletContext共享数据的比较

-------------------------------------------------------------------------------------------------

会话管理(HttpSession)

引入会话管理:

   大家都知道HTTP协议是无状态的,每个请求和响应信息的链接都是独立的,从一个请求到另一个请求(同一个用户),HTTP服务器会忘记以前的请求,那么现在想要让服务器能够保持用户的数据,记得以前的请求信息,该怎么办呢?  

  (比如: 一个网站的登录功能,在用户输入账号和密码登录以后,在接下来的一段时间内该网上就应该记住用户的信息,用户在网站上的其他操作都不需要再次就行登录了, 如果该网上不能保存用户的登录信息,让用户每个操作都需要登录一次的话,估计用户会疯掉)

 

引入解决办法:

  会话(HttpSession)就是用来解决上述问题的.

 

会话是什么?

  会话是在服务器端为客户端保存数据的一种技术. Web容器可为每个用户保存一个"会话对象"

    在服务器端保存数据 ---> 意味着会话会在服务器端开辟新的内存空间来存储数据 ---> Session池 ---> 里面放置为客户端存放数据的session对象

会话的特点:

  与客户端一一对应(第一个客户端只能访问session1,各个session之间不能交叉) 

  如下图:

    技术分享

HttpSession是跟客户端对应的,一个客户端对应一个Session,那么客户端又该如何去区分呢?

  客户端软件的一个进程代表了一个客户端(比如: 一个IE浏览器表示一个客户端,在同一台机器上,开着两个IE算作不同的客户端,从一个IE窗口弹出的IE窗口,还是算作一个客户端)

 

会话能干什么?

  HttpSession在服务器端为客户端保存数据

 

会话和ServletContext共享数据的比较--画图

技术分享

 客户端1能够访问所有的 servlet, 但是客户端1只能够用过servlet去访问session1

 客户端2能够访问所有的servlet,但是客户端2只能够通过servlet访问session2

   

   说明了:

    1、多个servlet之间可以通过session来共享数据

    2、会话不区分servlet,但是区分客户端,不同的客户端访问的是不同的session

 

下图:

技术分享

  

  客户端1、客户端2能够访问全部的servlet,可以通过servlet来访问servletContext

    说明:

      1、多个servlet之间可以通过servletContext来共享数据

      2、servletContext不区分servlet,也不区分客户端

 

会话有什么?

  HttpSession接口:

    getID() : String

    isNew() : boolean

    getAttribute(name) : Object

    setAttribute(name,value)

    removeAttribute(name)

  Servlet可通过HttpServletRequest访问会话对象,可以在会话对象中存储及访问任意数据的对象

  HttpServletRequest接口:

    getSession(create :boolean)

    getSession()

 

会话的基本使用

   获取HttpSession对象

    HttpSession session = request.getSession();

   存储会话属性

     session.setAttribute("test","java");

   访问会话属性

     String name = (String)session.getAttribute("test");

   销毁会话

     在部署描述符控制所有会话的生命周期

      <session-config>

        <session-timeout>10</session-timeout>

      </session-config>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    

会话的基础知识

标签:

原文地址:http://www.cnblogs.com/xinhuaxuan/p/5437407.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!