1. 会话技术
1.1 会话介绍
- 会话:浏览器客户端和服务器之间的多次请求和响应
- 为了实现一些功能,客户端和服务器之间可能会产生多次的请求和响应,从浏览器访问服务器开始,到访问服务器结束(关闭浏览器),这期间产生的多次请求和响应加在一起就称之为浏览器和服务器的一次会话
- 会话过程中所产生的一些数据,可以通过会话技术保存
1.2 客户端会话技术(Cookie)
1.2.1 概述
- 把要共享的数据保存到客户端
- 名称和值是必须属性
- 它是客户端浏览器的缓存文件,里面记录了客户浏览器访问网站的一些内容。同时,也是HTTP协议请求和响应消息头的一部分
1.2.2 属性
属性名 |
作用 |
是否重要 |
name |
cookie的名称 |
必要属性 |
value |
cookie的值(不能是中文) |
必要属性 |
comment |
cookie的说明 |
不重要 |
domain |
cookie的域名 |
重要 |
path |
cookie的路径 |
重要 |
version |
cookie的版本号 |
不重要 |
1.2.3 方法
方法名 |
作用 |
Cookie |
创建Cookie |
addCookie(Cookie cookie) |
向客户端添加Cookie |
Cookie[] getCookies |
获取Cookie |
setMaxAge |
设置最大存活时间 |
- setMaxAge(int i)
- 参数取值
- 正值:设置最大存活时间,会将cookie数据进行持久化存储
- 负值:默认值,存储在浏览器的内存中,关闭浏览器,cookie会丢失
- 0:删除cookie
1.2.4 使用案例
- 需求
- 通过Cookie记录最后的访问时间,并在浏览器上显示出来
- 最终目的
@WebServlet("/cookie")
public class ServletCookie2 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
resp.setContentType("text/html;charset=utf-8");
PrintWriter writer = resp.getWriter();
writer.write("欢迎访问本网站,您的最新访问时间为:<br/>");
Cookie cookie = new Cookie("time",System.currentTimeMillis()+"");
cookie.setMaxAge(3600);
resp.addCookie(cookie);
Cookie[] cookies = req.