Httpsession、session实现原理、ServletContext作用域

Servlet_day3
一、会话跟踪【重点】
1.什么叫一次会话:由同一个客户端浏览器,向同一个服务器系统 发起的1-N次请求。

2.解决思路:当用户第一次请求服务器的时候,服务器给用户颁发一个标记,存储到客户端,当再次请求服务器的时候,携带着这个标记,服务器会获取客户端上标记,进而识别处用户的身份。
3.解决会话跟踪的技术
3.1Cookie【了解】
什么是cookie?
Cookie是由服务器端颁发的,保存在客户端浏览器上的一小段文本(字符串),主要作用时记录用户相关的信息。保存的形式 key=value。
Cookie的基本使用:
1) 创建Cookie cookie = new Cookie(String name,String value);
2) 设置cookie到浏览器:response.addCookie(cookie);
3) 获取客户端浏览器的cookie:
Cookie[] cookie = request.getCookies();
4)cookie对象的几个方法:
cookie.getName();–获取cookie的名字
cookie.getValue();–获取cookie的值
5) cookie的生命周期
默认情况 cookie的存活时间与浏览器绑定的。//关闭浏览器cookie消失。
手动设置:cookie.setMaxAge(int expiry);//参数单位时(秒)
–参数大于0 设置单位为秒的存活时间。
–参数等于0 删除当前的cookie
–参数为负数 代表与浏览器窗口绑定。
6)cookie的缺陷:【面试重点】
1)cookie 是以明文存储的,不安全。
2)cookie存储的信息量小。
3)cookie可以被禁用。
4)cookie不支持存储中文

  3.2 Httpsession 技术【重点】
     1.什么是session?
             一个session代表一个会话,session是一个作用域,可以存储命名属性,name=value。
      2.Session中数据共享范围:一次会话(可能包含多个请求)
      3.主要作用:存储用户相关信息。
      4.基本使用:
         获取:

HttpSession session = request.getSession(true)|getSession()
说明:
request.getSession(true);如果服务器中有当前session对象,则拿过来直接使用,如果没有创建一个新的。
request.getSession(false):如果服务器中有当前session对象,则拿过来直接使用,如果没有,不创建。
存值:session.setAttribute(“name”,value); value—object
取值:Object value = session.getAttribute(“name”);
5.session生命周期:
Begin:用户请求第一次到达服务器 request.getSession();
End:1)手动销毁:session.invalidate();
2) 超时策略:tomcat默认30分钟销毁sessioin//可以自定义。单位(分)

6.session实现原理【重点掌握】
6.1当用户 第一次 请求服务器 创建session的时候,服务器在创建好session的同时,将当前session的id,主动设置在客户端浏览器cookie上保存,这个cookie叫JSESSIONID
下次请求服务器的时候,服务器主动获取客户端浏览上jsessionid,进而可以找到用户对应session对象。

问题;当客户端cookie禁用的时候,会导致用户找不到自己的session.
解决方案url重写----jsp
语法:url;jsessionid= E8E1649E4FC56E4F402F22A1A521D447;

7.ServletContext作用域【重点】
1.作用:存储命名属性
2.基本使用:
获取:HttpSession session = req.getSession();
ServletContext sc = session.getServletContext();
存值:sc.setAttribute(“name”,Object);
取值:sc.getAttribute(“name”);
特点:一个web应用只有一个ServletContext对象,里面的数据被整个web应用共享。
生命周期:服务器启动创建
服务器关闭的时候消亡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值