package com.xiaostudy.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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;
@WebServlet("/Cookie_1")
public class Cookie_1 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
response.setContentType("text/html;charset=UTF-8");
out.print("<a href=" + request.getContextPath() + "/Cookie_2?book=java>java</a><br/>");
out.print("<a href=" + request.getContextPath() + "/Cookie_2?book=python>python</a><br/>");
out.print("<a href=" + request.getContextPath() + "/Cookie_2?book=c#>c#</a><br/>");
out.print("<a href=" + request.getContextPath() + "/Cookie_2?book=php>php</a><br/>");
out.print("<hr/>");
Cookie[] cookies = request.getCookies();//获取cookie集合
for(int i=0; cookies!=null && i<cookies.length; i++) {//循环cookie集合
if("book".equals(cookies[i].getName())) {//判断cookie是否有自己存放的name和value
String[] books = cookies[i].getValue().split("-");//拿到所有的点击value集合
for(int j=0; j<books.length; j++) {//循环输出显示
out.print(books[j] + "<br/>");
}
}
}
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}
package com.xiaostudy.servlet;
import java.io.IOException;
import java.io.PrintWriter;
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;
@WebServlet("/Cookie_2")
public class Cookie_2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
String book = (String)request.getParameter("book");
String str = book;
Cookie[] cookies = request.getCookies();//得到cookie的集合数组
for(int i=0; cookies!=null && i<cookies.length; i++) {//循环cookie
if("book".equals(cookies[i].getName())) {//看看以前有没有放过
String[] books = cookies[i].getValue().split("-");//做切割
for(int j=0; j<books.length; j++) {//循环元素
if(!book.equals(books[j])) {//排除已经点击过的
str = str + "-" + books[j];
}
}
}
}
Cookie ck = new Cookie("book", str);//创建一个cookie,并且添加name和value
ck.setPath("/");//说明为当前的应用
ck.setMaxAge(5);//保存cookie的时间,单位为秒
response.addCookie(ck);//服务器向浏览器添加cookie
out.print("成功添加书籍:" + book + "<br/>2秒后返回主页。。。");//输出到浏览器的信息
//响应消息头,2秒后跳转到指定页面
response.setHeader("refresh", "2;url=" + request.getContextPath() + "/Cookie_1");
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request, response);
}
}