servlet代码
package com.Cookice;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
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 cookutil.GetCookutil;
public class Book2 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//得到id 设置到cookie 中
String id = request.getParameter("id");
//得到cookie
Cookie ck = GetCookutil.getCookie("his", request.getCookies());
if(ck==null) {//第一次访问 点什么书 就设置什么cookie
ck = new Cookie("his", id);
}else{
String value = ck.getValue();
//用- 分割
String[] ls = value.split("-");//1-2-3
List<String> li = Arrays.asList(ls);//不包含我才添加
// for (String s : li) {
// if(!s.contains(id)) {
if(!li.contains(id)) {
ck= new Cookie("his", value+"-"+id);
}
}
//添加cookie 到浏览器中
response.addCookie(ck);
//写2个链接,1个继续浏览 book2.jsp 另一个去访问已经浏览的书
response.getWriter().println("<a href='"+request.getContextPath()+"/book2.jsp'>继续浏览</a>");
response.getWriter().println("<a href='"+request.getContextPath()+"/hb.jsp'>查看历史</a>");
}
}
jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>My JSP 'book2.jsp' starting page</title>
</head>
<body>
<a href="/Coo/Book2?id=1">西游</a>
<br>
<a href="/Coo/Book2?id=2">佛法</a>
<br>
<a href="/Coo/Book2?id=3">三国</a>
<br>
<a href="/Coo/Book2?id=4">红楼</a>
<br>
<a href="/Coo/hb.jsp">查看</a>
<br>
</body>
</html>
JSP
<%
String[] books = {"","西游记","水浒传","红楼梦","三国演义"};
Cookie[] ck =request.getCookies();
if(ck==null) {
out.print("没有浏览过书");
}
for(int i=0 ;ck!=null&&i<ck.length;i++) {
if(ck[i].getName().equals("history")){
String values = ck[i].getValue();
String[] li = values.split("-");
for(String l:li) {
out.print(books[Integer.parseInt(l)]+"<br>");
}
}
}
%>
工具类
package cookutil;
import javax.servlet.http.Cookie;
public class GetCookutil {
public static Cookie getCookie(String name,Cookie[] ck) {
if(ck==null||ck.length==0) {
return null;
}
for (Cookie c : ck) {
if(c.getName().equals(name)){
return c;
}
}
return null;
}
}