我们经常看见在某些网页中登录成功了,页面会提示你上次访问时间是多少并且还会提示上次访问的地点,今天我们只做访问时间,利用cookie机制实现,虽然很基础,但是基础的东西往往很有用。一步一个脚印。
1: 按照惯例,我们首先要讲解下原理
用户在每次访问网站的时候都要先获取一下cookie,如果存在证明访问过网站,这样就可以获取到上次访问的时间,当然第一次访问获取不到,获取后根据用户的像cookie写入本次访问时间,这样在下一次访问的时候又可以获取该次的访问时间,每次都是这样做,就可以知道上一次的访问时间。但是,用cookie缺点是,如果用户把Cookie清空的话那就没办法获取上次访问的时间了。
2:代码以及实现
显示cookie中保存的上次登录时间
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<html>
<head>
<title>Cookie实现上次访问时间</title>
</head>
<body>
<%
String timecookie = "";
Cookie cookies[]=request.getCookies();//获取cookie,返回的是Cookie数组
for(int i=0;cookies!=null&&i<cookies.length;i++){
if(cookies[i].getName().equals("lastAccessTime")){
Long cookieValue =Long.parseLong(cookies[i].getValue());
java.util.Date date=new java.util.Date(cookieValue);
timecookie=date.toLocaleString();
}
}
//给客户返回最新时间
Cookie cookie=new Cookie("lastAccessTime",System.currentTimeMillis()+"");
cookie.setMaxAge(365*24*3600);
cookie.setPath("/introduceweb");//设置路径
response.addCookie(cookie);
%>
<h2>你上次访问时间为:<%=timecookie%></h2>
</body>
</html>
效果如下: