A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 厦门校区   /  2018-6-5 19:00  /  5755 人查看  /  59 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 AsusCoder 于 2018-6-15 00:42 编辑

曾耀峰

web04_Cookie会话技术总结
    1.理解一下Cookie的工作原理:我们可以想象浏览器自带了一个Cookie池。用来存放服务器给浏览器的Cookies信息。首先,当浏览器第一次访问服务器时,还没有cookie。是服务器向浏览器存入一个cookie的,存入的cookie带有这个服务器的地址(使用setPath("/day0605")),唯一的键,和存储的值。下次浏览器再访问服务器时,就带着这个唯一的服务器中去做数据处理
   2.根据Cookie的寿命分为会话级别和持续性级别缓存。通过设置cookie的最大年龄setMaxAge("毫秒值")来定义Cookie的缓存级别。默认没有setMaxAge的cookie是会话技术,当浏览器访问服务器,再关闭浏览器的时候,会话级别的cookie会被销毁。持续性的会话技术根据setMaxAge("60*60*24*7")表示7天。也可以设置更长。
  3.Cookie的增删改查。
   增加:response.addCookie(cookie)往往放在服务器代码最后。
   删除:通过setMaxAge(0),寿命为0会销毁cookie
   修改:cookie.setValue("history",null); 会根据cookie的名字覆盖原来的值
   查找:getName(),getValue()等方法查到Cookie 的信息
4.总结:Cookie作为服务器向浏览器输出信息并缓存一定时间到用户的磁盘中,有了这个技术,可以做用户浏览商品历史记录,用户访问网站次数等操作。
   
  通过案例一"记录用户的上次访问时间"学习了如何接收用户请求的cookies。当第一次访问时候,遍历cookies得到的cookie为空,就新建一个cookie,得到毫秒值,再转换为日期对象Date,存入cookie;下次再访问不为空,取出里面的日期值并打印。
  通过案例二"用户商品浏览的历史记录",这个难度太高了。抄了两遍代码自己写了一遍,服务器productServlet的代码步骤繁多。
有以下知识点:
1.分离出id值的方法:String[] ids = value.split("-");
2.把分离出来的字符串转换成链表集合LinkedList:LinkedList<String> list = new LinkedList<>(Arrays.asList(ids));
Arrays工具类中的asList把数组转换为集合;List接口的构造函数可以加一个集合进行构造
3.LinkedList在增删方面提供了独有的方法增加到首位addFirst(),删除末位removeLast()等
4.在前端页面利用Jsp技术接收共享服务器的数据,比较不懂的是<%%>jsp代码的嵌套,明天会学到。
5.jsp动态获取当前地址:${pageContext.request.contextPath}/ProductServlet?id=2后面跟一个Servlet的虚拟地址,就访问到了服务器。

点评

setMaxAge("毫秒值")有误! 参数是Int类型,不用加“”,而且是秒,不是毫秒!  发表于 2018-6-6 11:30
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马