Cookie获取商品浏览记录

一、前期准备

  1. 拷贝第一天html那天的资料-WEB01-将所有的文件全部拷贝到Web工程里面的WebContent里面。
  2. 在WebContent新建一个product_list.jsp的jsp文件,然后拷贝原来product_list.html的html标签内容替换掉jsp里面的html。(方便后面可以进行实现和消除浏览记录的操作)
  3. 将product_info.html的手机数码的超链接改为product_list.jsp(为了能够点进去商品之后退出到刚才的很多商品列表)

  1. 将首页index.html里面的手机数码的跳转位置改为product_list.jsp

二、servlet代码编写

  1. 将商品列表里面的product_list.jsp每个class下面的herf改成<a href="ProductInfoServlet?id=1/2/3/4/5/6">(其中每个ProductInfoServlet是xml注解里面url路径)

  1. 去写一个关于存储浏览过哪些的页面的类:

由getValue获得以前的cookie的值,然后使用setValue将原来new的id和现在ids加在一起,其实就是形成1#2#3#4等这种形式,然后在浏览记录(jsp中写java代码)中要实现显示出对应的图片

1
2
3
4
//1.获取以前的cookie(在19行代码已经匹配判断过)
String ids = cookie.getValue();
//2.让现在浏览的商品和以前的商品形成cookie新的值 -----可以展示 1#2#4#3等等的样子表明我已经点击过哪些
cookie.setValue(id+"#"+ids);

完整的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
public class ProductInfoServlet extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

//获取当前用户准备浏览的商品ID
String id = request.getParameter("id");

Cookie[] cookies = request.getCookies();
Cookie cookie = CookieUtil.findCookie(cookies, "histroy"); //将之前写好的匹配的代码拷贝过来(在cookie实现上次访问时间代码中)

if(cookie ==null)//第一次浏览
{
//1.创建cookie
Cookie c=new Cookie("history",id); //创建了一个名 history 值为id的cookie
//2.将新建的cookie要响应给浏览器(客户端)
response.addCookie(c);
//3.跳转到具体界面
response.sendRedirect("product_info.htm");
}
else //第二次浏览
{
//1.获取以前的cookie(在19行代码已经匹配判断过)
String ids = cookie.getValue();
//2.让现在浏览的商品和以前的商品形成cookie新的值 -----可以展示 1#2#4#3等等的样子表明我已经点击过哪些
cookie.setValue(id+"#"+ids);
//2.将新建的cookie要响应给浏览器(客户端)
response.addCookie(cookie);
//3.跳转到具体界面
response.sendRedirect("product_info.htm");
}

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}

}

三、实现浏览记录

介绍jsp的用法(jsp里面只能写java代码)

1.定义全局变量
    <%! int a=990; %>
2.定义局部变量
    <%  int b=99; %>
3.在jsp页面上,显示a和b的值
    <%=a %>
    <%=b %>

更改的位置大概在(product_list.jsp的商品浏览记录左右):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<div style="overflow: hidden;">
<ul style="list-style: none;">
<%
Cookie[] cookie=request.getCookies();
Cookie cook=CookieUtil.findCookie(cookie,"history");
if(cookie==null)
{
%>
<h2>你还没有浏览商品!</h2>
<%
}
else
{
String[] id=cook.getValue().split("#"); //将1#2#3#4#5 拆分成 1 2 3 4 5
for(String i:id)
{
%>
//后面把图片改成<%=i %>形式可以弹出对应的的图片
<li style="width: 150px;height: 216;float: left;margin: 0 8px 0 0;padding: 0 18px 15px;text-align: center;"><img src="products/1/cs1000<%=i %>.jpg" width="130px" height="130px" /></li>
<%
}
}
%>
</ul>
</div>

四、清除浏览记录

  1. 在刚才改实现留记录的div下面写一个标签href=”清除的那个类”(提示一行可以清除记录)

  2. 新建一个清除的类(只能通过设置MaxAge=0)

1
2
3
4
Cookie cookie = new Cookie("history","");
cookie.setMaxAge(0); //设置立即删除
cookie.setPath("/CookieDemo02");
response.addCookie(cookie); //给客户端添加一个cookie

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 一、前期准备
  2. 2. 二、servlet代码编写
  3. 3. 三、实现浏览记录
  4. 4. 四、清除浏览记录
,