1、状态管理
(1)HTTP协议中每次连接处理一个请求,当连接断开时,服务器不会记住用户曾经访问过,该特点叫做无 状态,即HTTP协议是无状态协议
(2)我们在做某些业务时,可能一些业务是多次请求并有关系的(连贯的),需要服务器知道本次的请求 和上次的请求时一个连贯的业务,如:记住我,登录检查
(3)状态:记录一些数据,让服务器知道我曾经来过
(4)管理:采用某些技术实现这种记录
2、实现状态管理的技术
(1)Cookie:将数据保存在浏览器端,每次浏览器访问服务器,都会携带cookie中的数据
优点:服务器的压力小
缺点:数据容易被篡改,不安全
(2)Session:将数据保存在服务器端,需要给浏览器返回此数据的编号(sessionId),浏览器每次访问 服务器时需要携带此编号
优点:相对安全
缺点:服务器压力大
3、Cookie
浏览器访问服务器时,服务器将一些数据以set-cookie消息头的形式发送给浏览器,浏览器会将这些数据保 存在内存中,当浏览器再次访问服务器时,会将这些数据以cookie消息头的形式发送给服务器,通过这种方 式来管理状态。
3.1 Cookie的创建
Cookie cookie = new Cookie(String name, String value);
response.addCookie(cookie);
3.2 查询Cookie
Cookie[ ] cookie = request.getCookies( );
String name = cookie.getNmae( );
String value = cookie.getValue( );
//没有返回null
3.3 Cookie保存编码问题
Cookie的值只能是ASCII字符,若处理中,需要将中文转成ASCII字符形式可以使用 URLEncoder.encode( )方法和URLDecoder.decode( )方法进行转换
3.4 Cookie的保存时间
默认:浏览器关闭,cookie消失,可以是通过设置过期时间将其保存在硬盘上
3.5 Cookie的路径
浏览器访问服务器时,访问路径必须是创建Cookie时的路径或是其子路径才会携带cookie,否则浏览器访 问时不会发送cookie
3.6Cookie的限制
(1)cookie可以禁止
(2)cookie的大小有限制
(3)cookie的数量有限制(300)
(4)cookie的值只能是字符串,要考虑编码问题
(5)cookie不安全
网友评论