黑马程序员技术交流社区
标题:
[石家庄校区]Day16 Cookie的使用和概述
[打印本页]
作者:
g207776411
时间:
2018-5-21 15:27
标题:
[石家庄校区]Day16 Cookie的使用和概述
Day16 Cookie的使用和概述
Day16 会话技术 Cookie和Session
会话技术概述
会话技术的作用和描述
描述
: 用户访问网站,每次从打开浏览器到关闭浏览器这一过程称之为一次会话
作用
:用户数据的私有化,将用户购物信息保存在会话技术中,私有数据
Cookie的有效期
Cookie默认数据的存储默认的是一次会话,就是一次浏览器的打开关闭
Cookie保存数据的使用
//向浏览器保存数据:
HttpServletResponse有一个方法: 服务器通过响应向客户端发送数据,存取在客户端
* response.addCookie(Cookie cookie);
//获得浏览器带过来的Cookies存储的数据;
HttpServletRequest有一个方法:
* Cookie[] cook=request.getCookie();
//创建一个Cookie对象:
* Cookie(String name,String value);
Cookie的常用API
Cookie中存储中文的实现
对中文的编码和解码
编码
String value=URLEncoder.encode("二哈傻中无敌","UTF-8");
解码
String value= URLDecoder.decode(value,"UTF-8");
代码实现
//首先获取Cookie中存取的值
Cookie[] cookies=request.getCookies();
//通过CookieUtils工具类来获取指定的名字的value值
Cookie aa=CookieUtils.findCookie("vlaue","aa");
if(aa!=null){
//获取指定名字对应的value值
String value=aa.getValue();
//进行解码
String a= URLDecoder.decode(value,"UTF-8");
}
//对添加到Cookie的中文数据进行编码
String value=URLEncoder.encode("二哈傻中无敌","UTF-8");
//用Cookie全参构造的方式将数据进行初始化
Cookie cookie=new Cookie("aa",vlaue);//传入参数名字和对应的值
//向客户端添加存储对数据
response.addCookie(cookie);
Cookie的常用API:
getName();
getValue();
setDomain(String domain);
setPath(String path);
设置cookie的有效路径
为了手动删除Cookie持久性保存的值,
setMaxAge(int maxAge); 用来设置Cookie的存活时间,** 指的是一次请求发生时,Cookie所存活的值**
Cookie的分类有关:
会话级别的Cookie:
默认的Cookie.
关闭浏览器
Cookie就会
销毁
.
持久级别的Cookie:
可以设置Cookie的有效时间.那么关闭浏览器Cookie还会存在,
手动销毁持久性Cookie.setMaxAge(0)
-- 前提是有效路径必须一致
动态设置项目的路径
file://F:/JAVA%E8%AF%AD%E8%A8%80%E8%B5%84%E6%96%99/%E9%BB%91%E9%A9%AC%E4%BA%8C%E9%98%B6%E6%AE%B5_Web%E7%AC%94%E8%AE%B0/MyNoteBook/Day16%E6%88%AA%E5%9B%BE/1526541630403.png?lastModify=1526869247
代码”
${pageContext.request.contextPath
}”的作用是取出
部署的应用程序名
(例如:配置的网页的Servlet.java文件的绝对路径),这样不管如何部署,所用路径都是正确的。 缺点: 操作不便,其他工具无法正确解释${pageContext.request.contextPath}
${pageContext.request.contextPath}
代码实现浏览记录步骤分析
登陆完成后,显示商品列表页面
为商品列表页面做一些准备工作(配置成动态页面jsp)
点击某个商品,将商品ID传递一个Servlet(请求)
在Servlet中,判断是否是第一次浏览商品
如果是第一次:将商品的ID存入到Cookie中
如果不是第一次:判断Cookie中是否由此数据,
如果浏览过,删除原有的数据,将此数据重新在页面上靠前展示
如果没有浏览过该商品,判断展示浏览记录栏展示数量的长度,没有超过限制,直接加到最前,如果已经超过限制,删除最后一个,将其插入到最前
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2