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

Cookie实例:显示用户上次访问的时间

时间:2019-05-26 01:18:15

相关推荐

Cookie实例:显示用户上次访问的时间

1. 效果

用户第一次访问HistServlet的时候,页面显示你是首次访问本网站,当前时间为:xxx。第n次访问:欢迎回来,

你上次访问的时间为xxx,当前时间为xxx。

2. 分析

要保证第二次访问能够显示上次访问的时间,也就意味着第一次访问的时候,这个时间被保存下来,所以可以把

上次访问的时间的数据保存在cookie中,可以分为第一次和第N次,第一次和第N次的逻辑是不同的。首先要区

分什么情况下是第一次访问?什么情况下是第n次访问?第一次访问:没有cookie或者没有lastTime名的cookie

(1) 第一次访问:

① 获取当前时间,显示到浏览器中;

② 创建Cookie对象,时间作为cookie的值,比如名字为lastTime;

③ 服务器中是不保存Cookie的,把cookie发送到浏览器保存;

(2) 第N次访问:

① 获取cookie的数据,取出名为lastTime的cookie;

② 得到cookie的值(上次访问的时间);

③ 显示上次访问时间到浏览器中;

④ 更新名为lastTime的cookie,值设置为当前时间;

⑤ 把更新后的cookie发送给浏览器保存。

3. 实例

/** 案例-用户上次访问时间*/@WebServlet("/HistServlet")public class HistServlet extends HttpServlet {protected void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=utf-8");// 获取当前时间SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");String curTime = format.format(new Date());// 取得CookieCookie[] cookies = request.getCookies();String lastTime = null;if (cookies != null) {for (Cookie cookie : cookies) {if (cookie.getName().equals("lastTime")) {// 有lastTime的cookie,已经是第n次访问lastTime = cookie.getValue();// 上次访问时间// 第n次访问// 1.把上次保存的时间显示到浏览器response.getWriter().write("欢迎回来,你上次访问的时间为:" + lastTime + ",当前时间为:" + curTime);// 2.更新cookiecookie.setValue(curTime);cookie.setMaxAge(1 * 30 * 24 * 60 * 60);// 3.把更新后的cookie发送到浏览器response.addCookie(cookie);break;}}}/** 第一次访问(没有cookie,或者有cookie但是没有名为lastTime的cookie)*/if (cookies == null || lastTime == null) {// 1.显示当前时间到浏览器response.getWriter().write("你是首次访问本网站,当前时间为:" + curTime);// 2.创建Cookie对象Cookie cookie = new Cookie("lastTime", curTime);cookie.setMaxAge(1 * 30 * 24 * 60 * 60);// 把cookie保存一个月。// 3.把cookie发送到浏览器保存response.addCookie(cookie);}}}

4. 运行结果

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

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