public class CookieDemo extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.创建cookie对象 Cookie c = new Cookie("msg","hello"); //2.发送cookie resp.addCookie(c); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } public class CookieDemo2 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //3.获取Cookie对象 Cookie[] cookies = req.getCookies(); //获取数据,遍历Cookie if (cookies != null){ for (Cookie cookie : cookies) { String name = cookie.getName(); String value = cookie.getValue(); System.out.println(name+value); } } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } public class CookieDemo3 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.创建多cookie对象 Cookie c1 = new Cookie("msg","hello"); Cookie c2 = new Cookie("name","zhangsan"); //2.发送多个cookie resp.addCookie(c1); resp.addCookie(c2); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } public class CookieDemo4 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.创建cookie对象 Cookie c1 = new Cookie("msg","setMaxAge"); //2.设置Cookie的存活时间 c1.setMaxAge(30);//将cookie持久化到硬盘30秒,30秒后会自动删除文件 //3.发送cookie resp.addCookie(c1); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } public class CookieDemo5 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //1.创建cookie对象 Cookie c1 = new Cookie("msg","setMaxAge"); //2.设置Cookie的存活时间 c1.setMaxAge(30);//将cookie持久化到硬盘30秒,30秒后会自动删除文件 //3.设置cookie的共享范围 c1.setPath("/"); //根路径("/"),项目("/project") //4.不同的服务器之间共享问题 c1.setDomain(".baidu.com"); //如果设置一级域名相同,那么多个服务器之间cookie可以共享 //setDomain(".baidu.com"),那么tieba.baidu.com和news.baidu.com中cookie可以共享 //3.发送cookie resp.addCookie(c1); } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { this.doPost(req, resp); } } /** * 在服务器中的Servlet判断是否有一个名为lastTime的cookie * 1.有:不是第一次访问 * -响应数据:欢迎回来,您上次访问时间为:*** * -写回Cookie: lastTime=***** * 2.没有,是第一次访问 * -响应数据:您好欢迎您首次访问 * -写回Cookie:lastTime=**** */ public class cookieTest extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置响应的的数据格式编码 resp.setContentType("text/html;charset=utf-8"); //1.获取所有Cookie判断名称是否为lastTime Cookie[] cookies = req.getCookies(); boolean flag = false; //2.遍历Cookie数组 if (cookies != null && cookies.length > 0) { for (Cookie cookie : cookies) { //3.获取cookie名称 String name = cookie.getName(); //4.判断名称是否是lastTime if ("lastTime".equals(name)) { flag = true; //5.有该cookie则不是第一次访问 //6.设置响应数据,设置cookie 的value Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String str_date = sdf.format(date); //URL编码去掉空格 str_date = URLEncoder.encode(str_date, "utf-8"); cookie.setValue(str_date); //设置cookie存活期为一个月 cookie.setMaxAge(60 * 60 * 24 * 30); //获取当前时间字符串后,重新发送cookie String value = cookie.getValue(); //URL解码 value = URLDecoder.decode(value,"utf-8"); resp.getWriter().write("<h1>欢迎回来,您上次访问的时间为:" + value + "</h1>"); resp.addCookie(cookie); } } } if (cookies == null || cookies.length == 0 || !flag) { //如果没有cookie那么这是第一次访问 //1.响应数据,设置cookie的value Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String str_date = sdf.format(date); //URL编码去掉空格 str_date = URLEncoder.encode(str_date, "utf-8"); //新建Cookie将k,v传入 Cookie cookie = new Cookie("lastTime", str_date); //设置cookie存活时间为一个月 cookie.setMaxAge(60 * 60 * 24 * 30); //获取字符串,重新发送cookie resp.addCookie(cookie); //获取当前时间字符串后,重新发送cookie String value = cookie.getValue(); //URL解码 value = URLDecoder.decode(value,"utf-8"); resp.getWriter().write("<h1>您好,欢迎您首次访问</h1>"); } } }