天天看点

Cookie 进阶

Cookie作为一个客户端技术被广泛的应用着。我今天也来谈一谈我对Cookie的理解。

具体的思路如下:

通过request.getCookies()方法找到目标Cookie,然后获取内容

将最新的时间记录存储到Cookie中,并进行更新的操作

下面是详细的代码:

需要注意的是以下问题:

有中文出现时记得使用<code>response.setContentType("text/html;charset=UTF-8");</code>

获得Cookie是获取了一个cookie的数组,我们需要找出符合名字的目标Cookie才能对其进行操作

更新数据需要调用response.addCookie(targetCookie);即可

说是商品记录,这里只是一个简单的示意,所以并没有连接数据库进行相关的操作,而是利用一个DB类进行了模拟。下面是我的思路:

商品首页:

首先是要显示网站上所拥有的商品的名称,用户可以通过点击超链接浏览商品的详细的信息

显示用户的商品浏览记录(tongguo cookie 进行实现)

商品的详细的信息界面:

首先是从超链接中获取到用户点击的商品的id,然后通过这个id 来从模拟的数据库中获得商品的详细的信息。

更新用户的商品浏览历史信息(这里发生的情况较为的复杂,详见代码中的注释信息)

下面是代码详情:

首先是WebTitle.java(实际是一个Servlet文件):

注意:

里面有bean层(item),数据库操作层(DB),和界面显示View层

注意超链接的写法,是服务器内部进行的跳转,所以应该用网站目录进行使用

然后是商品详情界面:

总结:

含金量第一层就是makeItemHistory方法,其处理了开发中可能遇到的很多的信息。

LinkedList的使用是为了判断分解后的元素列表中是否有正在访问的id信息

下面是代码的测试结果:

第一次访问网站:

Cookie 进阶

第一次点击超链接可以看到商品的详细的信息

Cookie 进阶

第二次点击超链接返回后,刷新首页即可看到商品浏览的历史

Cookie 进阶

第三次点击超链接后就达到了商品历史记录的上限

Cookie 进阶

第四次访问后,返回首页,刷新一下,便会将第一次的浏览历史记录去除,添加上最新的浏览记录

Cookie 进阶

在包含有三个历史记录中访问了其中一个,便会更新历史记录的顺序:

Cookie 进阶

Cookie技术应用到的地方很广泛,应该对其进行更加灵活的研究

上述案例应该加上cookie生存期限。否则用户退出后就会清空cookie的历史记录