HTTP协议的一个特点:
无状态连接,服务端不知道上次是哪一个客户端请求了自己。
无状态连接带来的问题:
在一次会话中,多个请求之间无法共享数据,无法跟踪用户的会话信息。
解决方案:
1):使用参数的传递机制。在每一个请求之间使用参数来传递需要共享的数据。
共享的数据全部暴露在浏览器地址栏中,不安全。
解决方法 :把共享的数据放到请求头中,这样就不会出现在地址栏上--->Cookie
2):Cookie
3):Session
cookie的操作:
1.创建的Cookie对象
Cookie cookie=new Cookie(String name,String value);
参数:
name:给当前的Cookie取一个唯一的名字
value:存储在Cookie的共享数据,只能是String数据
Cookie cookie=new Cookie("currentName","will")
2.把Cookie放入响应中,响应给浏览器,把共享数据存储在浏览器中
response.addCookie(cookie);
3.获取Cookie以及获取Cookie
因为Cookie存在请求头中,所以要用request去获取
Cookie[] cs=request.getCookies();
//获取多个cookie
for(Cookie cookie : cs){
String name=cookie.getName();
String value=cookie.getValue();
if("currentName".equals(name)){
value=userName;
}