传智播客Web学习笔记10--Session

Session学习

  1. Session概念:服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中。

  2. Session快速入门:

     1. 获取HttpSession对象:
     	HttpSession session = request.getSession();
     2. 使用HttpSession对象:
     	Object getAttribute(String name)  
     	void setAttribute(String name, Object value)
     	void removeAttribute(String name)  
    
     // 在Session中存、取、删数据
    protected void doGet(HttpServletRequest request,    HttpServletResponse response) throws ServletException,  IOException {
       	//获取Sesseion对象
    	HttpSession session=request.getSession();
    	session.setAttribute("username", "zhangsan");//存储数据
    	session.getAttribute("username");//获取数据
    	session.removeAttribute("username");//删除数据
    }
    
    
    
  3. Session原理

     * Session的实现是依赖于Cookie的。
     * Session是服务器开辟的一个用来存储数据的空间
     * 服务器为每个浏览器单独开辟一个Session
     * 服务器根据浏览器发送过来的Cookie,来确认当前浏览器使用哪个Session
    

在WEB开发中,服务器可以为每个用户浏览器创建一个会话对象(session对象),注意:一个浏览器独占一个session对象(默认情况下)。因此,在需要保存用户数据时,服务器程序可以把用户数据写到用户浏览器独占的session中,当用户使用浏览器访问其它程序时,其它程序可以从用户的session中取出该用户的数据,为用户服务。

  1. Session细节:

    1. 当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
    	* 默认情况下。不是。
    	* 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。
    		 Cookie c = new Cookie("JSESSIONID",session.getId());
             c.setMaxAge(60*60);
             response.addCookie(c);
    
    2. 客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
    	* 不是同一个,但是要确保数据不丢失。tomcat自动完成以下工作
    		* session的钝化:
    			* 在服务器正常关闭之前,将session对象系列化到硬盘上
    		* session的活化:
    			* 在服务器启动后,将session文件转化为内存中的session对象即可。
    		
    3. session什么时候被销毁?
    	1. 服务器关闭
    	2. session对象调用invalidate() 。
    	3. session默认失效时间 30分钟
    		选择性配置修改	
    		<session-config>
    	        <session-timeout>30</session-timeout>
    	    </session-config>
    
  2. session的特点

      1. session用于存储一次会话的多次请求的数据,存在服务器端
      2. session可以存储任意类型,任意大小的数据
    
     * session与Cookie的区别:
     	1. session存储数据在服务器端,Cookie在客户端
     	2. session没有数据大小限制,Cookie有
     	3. session数据安全,Cookie相对于不安全
    
发布了11 篇原创文章 · 获赞 1 · 访问量 908

猜你喜欢

转载自blog.csdn.net/Lzy410992/article/details/105673253
今日推荐