@WebServlet(name = "cookieServlet06", urlPatterns = "/cookie06") public class CookieServlet06 extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { //设置响应的消息体的数据格式以及编码 resp.setContentType("text/html;charset=utf-8"); //获取所有的Cookie Cookie[] cookies = req.getCookies(); //设置开关 boolean flag = false; //获取当前时间,重新设置cookie的值 Date date = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String format = sdf.format(date); System.out.println("编码前:"+format); format = URLEncoder.encode(format,"utf-8"); System.out.println("编码后:"+format); //判断cookies是否为null if (cookies != null && cookies.length > 0) { //遍历cookies for (Cookie cookie : cookies) { //获取cookies的name String name = cookie.getName(); //判断有没有一个名为lastTime的cookie if ("lastTime".equals(name)) { //如果有lastTime的cookise说明不是第一次访问 flag = true; //重新设置cookie的值 cookie.setValue(format); //设置cookie的村后时间 - 一天 cookie.setMaxAge(60 * 60 * 24); //发送cookie resp.addCookie(cookie); //获取cookie的值 String value = cookie.getValue(); System.out.println("解码前:" + value); //URL解码 value = URLDecoder.decode(value, "utf-8"); System.out.println("解码后:" + value); //往页面回写数据 resp.getWriter().write("<h1>欢迎回来,您上次访问的时间:" + value + "</h1>"); //跳出本次循环 break; } } } if (cookies == null ||cookies.length == 0 || flag == false){ //没有名为lastTime的cookie -- 说明是第一次访问 //将本次访问时间存入cookie Cookie cookie = new Cookie("lastTime", format); //设置cookie的存活时间 cookie.setMaxAge(60*60*24); resp.addCookie(cookie); resp.getWriter().write("<h1>欢迎您首次访问!</h1>"); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } }
5.12作业
最新推荐文章于 2024-07-23 21:45:09 发布