1. 会话技术
什么是会话
用户开一个浏览器,- 点击多个超链接,访问服务器多个web资源。然后关闭浏览器,整个过程称之为一个会话。
和打电话一样,电话接收,开始会话,电话 挂断,结束会话。
会话技术解决什么问题
- 保持各个客户端自己的数据
- 每个用户在使用浏览器与服务器进行会话的过程中,不可避免各自会产生一些数据,程序要想办法为每个用户保存这些数据。
2. 服务器怎样把 Cookie 写给客户端
2.1 创建Cookie
Cookie cookie = new Cookie(String cookieName, String cookieValue);
- cookie会以响应头的形式发送给客户端
- Cookie只能存储非中文的字符串
2.2 向客户端发送cookie
response.addCookie(cookie名称)
2.3 访问
2.4 Cookie默认存储时间
- 默认cookie的会话级别
- 打开浏览器,关闭浏览器为一次会话
- 如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭,cookie信息销毁
设置Cookie在客户端的存储时间
cookie.setMaxAge(int seconds);
- 设置的时间为秒
- 如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里
- 过期会自动删除
2.5 设置Cookie的携带路径
- 访问某一个资源时,如果每一外资源都携带cookie信息,会影响传输速度。
- 如果不设置携带路径,默认情况下会在访问创建cookie的web资源相同的路径,都携带cookie信息。
- 在myxq/CookieServlet下创建的cookie

- 在myxq/下的index.jsp访问时会携带cookie


设置携带路径
cookie.setPath(String path);
- cookie.setPath(“/CookiePro/cookieServlet”);
- 只有访问cookieServlet才携带cookie信息
- cookie.setPath(“/CookiePro”);
- cookie.setPath(“/”);
2.6 删除Cookie
- 如果想删除客户端的已经存储的cookie信息
- 使用同名同路径的持久化时间为0的cookie进行覆盖即可
3. 服务器如何获取客户端携带的 cookie
通过Request对象的 getCookies() 方法,获取的是所有的cookie,要进行遍历,找出自己名称的那一个。
示例代码

4. Cookie 应用—记录上次登录时间
需求
访问时,显示上次的登录时间
步骤
- 第一次访问时,获取当前的时间,并把它写到cookie当中,响应给浏览器
- 第一次访问,告诉用户是第一次访问
- 用户下次访问时,获取用户携带的cookie,把日期在浏览器当中显示,记录最新的cookie
示例代码

cookie与Session
原文:https://www.cnblogs.com/xzh0717/p/10665662.html