http协议的无状态性
无状态是指,当浏览器发送请求给服务器的时候,服务器会响应。但当同一个浏览器再次发送请求时,服务器不会知道是刚才那个浏览器。简单说,服务器不会保存用户状态,不会记得客户端是否访问过,所以这就是无状态协议。
保存用户状态的两大机制
1、Session
2、Cookie
cookie:是web服务器保存在客户端的一系列文本信息。
典型应用一:判断注册用户是否已经登录网站
典型应用二:购物车的处理
cookie的作用:
对特定对象的追踪。
保存用户网页浏览记录与习惯。
简化登录
安全风险:容易泄露用户信息
jsp中创建与使用Cookie
1、创建cookie对象
Cookie newCookie=new Cookie(String key(cookie对象的字符串描述),Object value(要保存的Cookie对象));
2、写入Cookie对象
response.addCookie(newCookie(要添加的Cookie对象));
3、读取Cookie对象(返回数组)
Cookie[] cookie=request.getCookie();
jsp创建与使用Cookie常用方法:
void setMaxAge(int expiry)设置Cookie的有效期,以秒为单位。
void setValue(String value)在Cookie创建后,对Cookie进行赋值。
String getName()获取Cookie的名称
String getValue()获取Cookie的值
int getMaxAge()获取Cookie有效时间,以秒为单位
<%
//保存用户名和密码的cookie操作
Cookie usernamecookie=new Cookie("username","username");
Cookie passCookie=new Cookie("password","password");
usernamecookie.setMaxAge(30000);
passCookie.setMaxAge(30000);
response.addCookie(usernamecookie);
response.addCookie(passCookie);
%>
<%
//清除cookie信息
Cookie[] cookies=request.getCookies();
if(cookies!=null&&cookies.length>0){
for(Cookie c:cookies){
c.setMaxAge(0);//设置失效
response.addCookie(c);
}
}
%>
session和cookie的区别
1、保存位置:session在服务器端内存,cookie在客户端文本
2、保存对象:session保存Object类(保存对象大小没有限制),cookie保存String类型(保存对象大小有限制)
3、生存权:session会话结束即销毁,cookie可以长期保存在客户端
4、重要性:session安全性更高,保存重要信息,cookie保存不重要的信息