Cookie实现用户商品浏览记录

Cookie实现用户商品浏览记录

首先我们应该写好一个有着商品信息的html页面

这次我用的不是eclipse,用的IntelliJ Idea,所以可能有的地方写的和eclipse里面不一样

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
  <head>
    <title>$Title$</title>
  </head>
  <body>
  <form action="firstServlet.java" method="post">
    <a href="/helloWorld/zz?id=1">数据结构</a><br/>
    <a href="/helloWorld/zz?id=2">java web程序设计</a><br/>
    <a href="/helloWorld/zz?id=3">操作系统</a><br/>
    <a href="/helloWorld/zz?id=4">概率论与数理统计</a><br/>
  </form>
  <hr>
  <a href="/helloWorld/zzz">浏览商品记录...</a><a href="/helloWorld/zzz">清除商品浏览记录...</a>
  </body>
</html>

然后我们就应该写功能代码了…
firstServlet.java—用来将浏览记录写进服务器

package cn.npj;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class firstServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       //设置浏览器解码方式为:utf-8,防止出现乱码
        response.setContentType("text/html;charset=utf-8");
        //不管recordValue是不是空的,我们都应该提示访问成功...因为你可能一个物品会看好几次
        response.getWriter().println("浏览商品成功....");
//        response.getWriter().println(id);
        Cookie cookie = new Cookie("records"+request.getParameter("id"), request.getParameter("id"));
        //不管我们拿没拿到,我们都得把这次的浏览记录加进去
        //设置cookie的有效时常:60*60
//        cookie.setMaxAge(60 * 60);
        response.addCookie(cookie);
    }
}


showServlet.java----用来显示浏览记录

package cn.npj;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@WebServlet(name = "showServlet")
public class showServlet extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request,response);
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //设置浏览器解码方式为:utf-8,防止出现乱码
        response.setContentType("text/html;charset=utf-8");
        //定义好书籍的数组
        String[] books = {"数据结构","java web 程序设计","操作系统","概率论与数理统计"};
        //这里打印所有的商品信息
        String bookValue = null;
        Cookie[] cookies = request.getCookies();
        if(cookies!=null){
            response.getWriter().println("浏览记录如下:");
            for(Cookie co:cookies){
                for (int i=0;i<=4;i++) {
                    if (co.getName().equals("records" + i)) {
                        bookValue = co.getValue();
                        if (bookValue != null) {
                            response.getWriter().println(books[Integer.parseInt(bookValue) - 1]+"
"
); } } } } if(bookValue==null){ response.getWriter().println("无"); } } } }

把我们老师写的也给你们看看,反正我还是喜欢自己写的,哈哈哈

Cookie实现用户商品浏览记录_第1张图片
Cookie实现用户商品浏览记录_第2张图片
Cookie实现用户商品浏览记录_第3张图片
Cookie实现用户商品浏览记录_第4张图片
Cookie实现用户商品浏览记录_第5张图片
Cookie实现用户商品浏览记录_第6张图片

你可能感兴趣的:(JavaWeb)