Cookie案例 记录显示访问过商品的名称

一.实现该案例思维导图

实现功能:通过Cookie实现在页面显示访问过的商品名称
Cookie案例 记录显示访问过商品的名称_第1张图片
思维导图

二.编写index.jsp页面

显示商品名称和访问过的商品名称
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

  
    $Title$
  
  
  
  

浏览过的商品

<% Cookie [] cs =request.getCookies(); if(cs!=null){ for (Cookie c :cs){ if("goods".equals(c.getName())){ out.print(c.getValue());//打印出浏览过的商品名称 } } } %>

Cookie案例 记录显示访问过商品的名称_第2张图片
index.jsp

三.写Java类

里面包含:
1.Set集合:保存商品名称
1.构造方法:将Servlet中传来的Cookie值保存在List集合中,再将list集合中的值传入Set集合中
2.add方法:保存访问的商品名称
3.toString方法:将set集合中的值转换为String,将字符串掐头去尾返回


import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;

/**
 * Created by pc on 17-4-3.
 */
public class GoodsUtils {
    private Set goodSet=new LinkedHashSet();//保存商品名称
    public  GoodsUtils(String goods){
        if(goods.trim().isEmpty()){//判断是否为空
            return ;
        }
        String [] str = goods.split(", ");
        List list = Arrays.asList(str);//将信息存入list集合中
         goodSet.addAll(list);//将list中的信息写入set中
    }
    public void add(String goodss){

        goodSet.add(goodss);
    }
    public String toString(){
        String str = goodSet.toString();
        return str.substring(1,str.length()-1);//将
    }
}


四.写Servlet方法

1.接受request信息
2.创建Cookie:name=“goods”
3.将请求中name的值传给GoodsUtils类中的方法
4.判断是否有名为goods的Cookie
5.重定向到index.jsp文件

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;
/**
 * cookie小案例二:实现浏览过的商品功能
 * Created by pc on 17-4-3.
 */
@WebServlet(name = "AServlet",urlPatterns = "/AServlet")
public class   AServlet extends HttpServlet {
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html;char=utf-8");
        Cookie[] co = request.getCookies();
        String goods="";
        if(null!=co){
            for(Cookie cc:co){
                if("goods".equals(cc.getName())){
                    goods=cc.getValue();
                    break;
                }
            }
        }
        GoodsUtils gu =new GoodsUtils(goods);
        String goodName = request.getParameter("name");
        gu.add(goodName);

        Cookie c =new Cookie("goods",gu.toString());
        response.addCookie(c);//添加CooKie
        //重定向
        response.sendRedirect(request.getContextPath()+"/index.jsp");//
    }
}

Cookie案例 记录显示访问过商品的名称_第3张图片
运行tomcat环境

实现功能:

在页面记录访问过的商品名称,并将结果显示在该页面,不重复。
Cookie案例 记录显示访问过商品的名称_第4张图片
浏览过的商品

文章文集:JavaEE--学习笔记

你可能感兴趣的:(Cookie案例 记录显示访问过商品的名称)