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());
		// 取得Cookie
		Cookie[] 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.更新cookie
					cookie.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. 运行结果









  • 6
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
好的,我来回答你的问题。 要实现显示用户上次访问时间的功能,我们可以使用 Cookie 技术。具体实现步骤如下: 1. 判断用户是否有访问过网站,如果有,则读取该用户的访问时间。 2. 如果用户是第一次访问网站,则创建一个新的 Cookie,并将当前时间作为保存在 Cookie 中。 3. 如果用户不是第一次访问网站,则更新 Cookie 中保存的时间为当前时间。 4. 在页面中显示用户上次访问时间。 下面是一个示例代码: ``` // 判断用户是否有访问过网站 if (document.cookie.indexOf("lastVisitTime") == -1) { // 如果用户是第一次访问网站,则创建一个新的 Cookie var now = new Date(); document.cookie = "lastVisitTime=" + now.getTime(); } else { // 如果用户不是第一次访问网站,则更新 Cookie 中保存的时间为当前时间 var cookieArray = document.cookie.split("; "); for (var i = 0; i < cookieArray.length; i++) { var pair = cookieArray[i].split("="); if (pair[0] == "lastVisitTime") { var lastVisitTime = new Date(parseInt(pair[1])); var now = new Date(); document.cookie = "lastVisitTime=" + now.getTime(); break; } } } // 在页面中显示用户上次访问时间 if (lastVisitTime) { console.log("您上次访问本网站的时间是:" + lastVisitTime.toLocaleString()); } ``` 以上代码中,我们先判断用户是否有访问过网站,如果没有,则创建一个新的 Cookie,并将当前时间保存在 Cookie 中;如果有,则更新 Cookie 中保存的时间为当前时间。最后,在页面中显示用户上次访问时间。 希望这个回答能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

处女座的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值