JavaWeb—会话

概述

  •  从浏览器发出请求到服务端响应数据给前端之后,一次会话(在浏览器和服务器之间)就会被建立了   
  • 会话被建立后,如果浏览器或服务端都没有被关闭,则会话就会持续建立着    
  • 浏览器和服务器就可以继续使用该会话进行请求发送和响应,上述的整个过程被称之为会话

会话技术

概念

会话:一次会话中包含多次请求和响应。
一次会话:浏览器第一次给服务器资源发送请求,会话建立,直到有一方断开为止

功能

在一次会话的范围内的多次请求间,共享数据

方式


1. 客户端会话技术:Cookie
2. 服务器端会话技术:Session

Cookie

概念

客户端会话技术,将数据保存到客户端

步骤

 创建Cookie对象,绑定数据            
* new Cookie(String name, String value)     
发送Cookie对象            
* response.addCookie(Cookie cookie)         
 获取Cookie,拿到数据            
* Cookie[]  request.getCookies()

特性

Cookie可以创建发送多个cookie
Cookie默认情况下 当浏览器被关闭后,Cookie就会被销毁
可以设置Cookie的生命周期,让它持久化存储 setMaxAge()秒
传入正数 将Cookie数据写到硬盘的文件中。持久化存储
传入负 数默认值
传入0 删除cookie信息 

 注意

cookie在tomcat8之前不能存入中文,在tomcat8之后可以存中文
cookie存储数据在客户端浏览器(不安全)
浏览器对于单个cookie 的大小有限制(4kb) 以及 对同一个域名下的总cookie数量也有限制(20个)
cookie一般用于存出少量的不太敏感的数据

Session

 概述

服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中 HttpSession
获取HttpSession对象: 
HttpSession session = request.getSession();
使用HttpSession对象:
getAttribute(String name) 
setAttribute(String name, Object value)        
removeAttribute(String name) 

session的持久化

 /*
         session的原理就是cookie
         通过在请求中 加一个cookie jsessionid = xxxxx
         只要 id一样 那么session对象就是一个

         但是 cookie中jsessionid默认关闭浏览器之后,就没有了
         所以session没有做到持久化


         持久化:
         将名字叫jsessionid的cookie 做一个持久化功能, 对应的session就持久化了

         */

        Cookie cookie = new Cookie("JSESSIONID",session.getId());
        cookie.setMaxAge(60*60);
        response.addCookie(cookie);

sessionte特点

  • session用于存储一次会话的多次请求的数据,存在服务器端
  • session可以存储任意类型,任意大小的数据

Cookie和Session不同点

  • session存储数据在服务器端,Cookie在客户端 
  • session没有数据大小限制,Cookie有
  • session数据安全,Cookie相对于不安全
  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值