Cookie(本地数据)
会话技术
用户打开浏览器到关闭浏览器的过程称为一次会话
常见的会话技术
Cookie: 将数据保存到客户端浏览器
Session: 将数据保存到服务器端
Cookie技术的使用
向浏览器添加Cookie本地数据
response.addCookie(Cookie cookie)
获取浏览器中的所有Cookie本地数据
Cookie[] request.getCookies()
创建Cookie对象
Cookie(String key,String value)
JSP
概述
Java Server Pages(Java服务器页面) 动态网页开发技术
JSP= java代码 + HTML的元素 + JSP内置东西
执行过程
被访问的时候 自动翻译成一个Servlet(java类) 然后编译成class文件来执行
嵌套java代码(JSP的脚本元素)
声明: <%! %>: 翻译成类中的成员变量 可以定义 变量 方法 类.. Servlet线程不安全,少在类中定义成员
代码块: <% %>: 翻译成类的service方法内部的内容.可以定义 变量 类 代码块
表达式: <%= %>: 输入的内容会打印在页面中 表达式中不能加 ;
打印上次登录成功的时间
步骤
1 获取请求中的所有Cookie对象
2 遍历 查找有没有key相同的(没有说明是第一次登陆)
3 根据结果打印语句
4 响应一个Cookie对象到浏览器中 value为登录时间
Cookie的常用API:
getName();
getValue();
setDomain(String domain); 设置Cookie的有效域名
setPath(String path); 设置Cookie的有效路径
setMaxAge(int maxAge); 设置Cookie的有效时间
Cookie的分类:
会话级别的Cookie: 默认的Cookie.关闭浏览器Cookie就会销毁.
持久级别的Cookie: 可以设置Cookie的有效时间 关闭浏览器Cookie还会存在
手动销毁持久性Cookie. setMaxAge(0) 前提是有效路径必须一致.
浏览记录
${pageContext.request.contextPath} JSP中获取当前项目名
步骤
1 点击图片跳转到Servlet中 并返回属性名和value
2 获取value值
3 获取请求体中的所有Cookies
4 调用工具类 传入数组和value 判断是否是第一次浏览
5 第一次浏览 响应一个Cookie回浏览器 否的话 切割value值转为字符串数组 将数组转化为LinkedList集合
6 判断集合中是否存在value值 存在的话删除该值 在添加为第一个
7 不存在的话 判断集合长度是否大于指定大小
超过时删除最后一个元素 添加现有元素到第一个 不超过则直接添加到集合的第一个位置里
8 遍历集合 拼接为字符串 截取字符串 形成 x-x-x 样式的字符串
9 响应一个Cookie回浏览器中
10 跳转到jsp页面中
11 在jsp中判断Cookies数组是否为空 不为空遍历数组 打印浏览图片
(可以在返回Cookies时可以设置有效时间)
清空浏览记录
获取指定的Cookies数据 setMaxAge(0)销毁数据 并响应回JSP中 |