package com.qiku.yrc; 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; import java.net.URLDecoder; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.Date; @WebServlet(name = "cookieTest01",urlPatterns = "/cookietest01") public class CookieTest01 extends HttpServlet{ /* 记住上一次的访问时间 需求: 1.访问一个servlet,如果第一次访问,则提示:您好,欢迎首次访问 2.如果不是第一次访问,则提示:欢迎回来,您上一次访问时间为:显示时间 分析: 1.可以采用Cookie来完成 2.在服务器中的Servlet判断是否有一个名为lastTime的Cookie ——有:不是比一次访问 ————欢迎回来,您上一次访问时间为:显示时间 ————写回Cookie:lastTime=时间 ——没有:是第一次访问 ————响应数据:您好欢迎首次访问 ————写回Cookie:lastTime=时间 */ @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { resp.setContentType("text/html;charset=utf-8"); req.setCharacterEncoding("utf-8"); Cookie[] cookies = req.getCookies(); if (cookies!=null && cookies.length>0){ for (Cookie cookie:cookies){ if ("lastTime".equalsIgnoreCase(cookie.getName())){ String value01= cookie.getValue(); value01 = URLDecoder.decode(value01,"utf-8"); resp.getWriter().write("欢迎回来:"+cookie.getName()+"上次访问时间为"+value01); Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); String fd = sdf.format(date); fd = URLEncoder.encode(fd,"utf-8");//url编码 cookie.setValue(fd);//设置 这一次访问的时间 下一次访问就能得到 这一次访问的时间了 resp.addCookie(cookie); // resp.getWriter().write("您上次访问的时间为"+fd); cookie.setMaxAge(3000); break; } } } if (cookies==null||cookies.length==0){ Date date=new Date(); SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss"); String fd =sdf.format(date); Cookie lT=new Cookie("lastTime",fd); resp.addCookie(lT); fd= URLDecoder.decode(fd,"utf-8"); //编码 resp.getWriter().write("欢迎首次访问,访问时间为:"+fd); lT.setMaxAge(3000); } } @Override protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doPost(req, resp); } }
经测试 上次访问的时间能够刷新
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)