失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Cookie记录用户上次访问时间

Cookie记录用户上次访问时间

时间:2020-08-31 14:49:36

相关推荐

Cookie记录用户上次访问时间

目录

一、记录上一次用户访问时间1.1 需求1.2 分析1.3 代码实现1.4 实现效果图1.5 总结

一、记录上一次用户访问时间

1.1 需求

(1)访问一个Servlet,如果是第一次访问,则提示:您好,欢迎您首次访问。

(2)如果不是第一次访问,则提示:欢迎回来,您上次访问时间为:显示时间字符串。

1.2 分析

1 可以采用Cookie来完成

2 在服务器中的Servlet判断是否有一个名为lastVisit的Cookie

(1)有:不是第一次访问

响应数据:欢迎回来,您上次访问时间为:09月07日 18:41:08

将Cookie添加到respose对象中去

(2)没有:是第一次访问

响应数据:欢迎,这是您第一次访问

将Cookie添加到respose对象中去

1.3 代码实现

@WebServlet(name = "CookiePracticeServlet", value = "/cookiePractice")public class CookiePracticeServlet extends HttpServlet {private SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost(request, response);}@Overrideprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {//设置请求编码和响应消息体的数据格式以及编码request.setCharacterEncoding("utf-8");response.setContentType("text/html;charset=utf-8");//获取cookieCookie[] cookies = request.getCookies();//表示cookie是第一次访问boolean flag = false;//遍历cookiefor (Cookie cookie : cookies) {//判断我们存的cookie名和得到的Cookie名是否一致if ("lastVisit".equals(cookie.getName())) {//表示cookie不是第一次访问flag = true;Date date = new Date();String format = sdf.format(date);//对日期进行编码format = URLEncoder.encode(format, "utf-8");cookie.setValue(format);//将cookie添加到response对象中response.addCookie(cookie);String value = cookie.getValue();//对日期进行解码value = URLDecoder.decode(value, "utf-8");response.getWriter().write("<h1>欢迎回来" + cookie.getName() + ",上次访问的时间为" + value + "</h1>");break;}}if (flag == false) {Date date = new Date();String format = sdf.format(date);//对日期进行编码format = URLEncoder.encode(format, "utf-8");//第一次则创建cookieCookie cookie = new Cookie("lastVisit", format);//将cookie添加到response对象中response.addCookie(cookie);response.getWriter().write("<h1>欢迎," + cookie.getName() + "这是您第一次访问</h1>");}}}

1.4 实现效果图

第一次访问

不是首次访问

1.5 总结

Cookie是存放在浏览器端的会话技术,实现原理是:浏览器向客户端发送

HTTP请求,服务器端接收到请求后会对请求做出响应,会在HTTP响应头里

设置set-Cookie,当下一次访问的时候会在在请求头中带上Cookie信息。本

次练习主要用到了Cookie的存值取值、以及对字符串进行编码和解码的两个

方法,有不足的地方请大家多多批评指教。

如果觉得《Cookie记录用户上次访问时间》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。