本人个人学习笔记 未经授权不允许转发
JavaWeb笔记(七)---- Session and Cookie
目录
1. Session
2. HttpServletResponse - 随机验证码
3. HttpServletRequest - 重定向
4. HttpServletRequest - 请求转发
Web服务器接收到客户端的http请求, 针对这个请求,分别创建一个代表请求的HttpServletRequest和一个代表响应的HttpServletResponse
- 如果要获取客户端请求过来的一些参数:找HttpServletRequest
- 如果要给客户端一些信息:找HttpServletResponse
1. 会话
会话: 用户打开浏览器,点击了很多超链接,访问多个web资源,关闭浏览器,这个过程叫会话
有状态会话:
2. Cookie
- 客户端技术 (响应,请求)
- 从请求中拿到cookie信息
- 服务器响应给客户端cookie
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
req.setCharacterEncoding("UTF-8");
PrintWriter out = resp.getWriter();
Cookie[] cookies = req.getCookies(); //从客户端获取cookie
if (cookies != null){
out.write("你上一次访问的时间");
for (int i=0;i<cookies.length;i++){
if (cookies[i].getName().equals("LastVisitTime")){ //查找cookie的名字
Long LVT = Long.parseLong(cookies[i].getValue()); //获取cookie的值
Date day = new Date(LVT);
out.write(day.toLocaleString());
System.out.println(day.toLocaleString());
}
}
}
else {
out.write("这是你第一次访问");
}
Cookie cookie = new Cookie("LastVisitTime",System.currentTimeMillis()+"");
cookie.setMaxAge(24*60*60);/设置cookie有效期 24h*60m*60s
resp.addCookie(cookie);
}
一个网站的Cookie存在上限:
- 一个cookie只能保存一个信息
- 一个web站点可给一个浏览器发送多个cookie,最多存放20个
- cookie大小有限制4kb
- 300个cookie为浏览器上限
删除cookie
- 不设置有效期,关闭浏览器,自动失效
- 设置有效期为0
3. Session
- 服务端技术 (响应,请求)
什么是Session:
- 服务器会给每个用户(浏览器)创建一个Session对象
- 一个Session独占一个浏览器,只要浏览器没有关闭这个Session就存在
- 用户登录后,整个网站它都可以访问 —> 用户登录信息 保存购物车信息
Session和Cookie区别
- Cookie是把用户数据写给用户的浏览器,浏览器保存 (可以保存多个)
- Session是把用户数据写到用户独占的Session中,服务器端保存 (保存重要信息,减少服务器端资源浪费)
- Session对象由服务创建
使用场景
- 保存用户登录信息
- 购物车信息
- 在整个网站中经常会使用的数据