通过Cookie记录用户上次登陆时间并判断用户是否是首次登陆
Cookie类的构造方法
public Cookie(java.lang.String name,java.lang.String )
1.创建一个相关的Servlet类
略,自行创建
2.指定服务器输出内容编码方式为utf-8
response.setContentType("text/html;charset=utf-8");
3.判断是否已有所需Cookie
先设置一个代表所需Cookie的变量
String lastVisitTime = null;
获取当前所有Cookie,存放到数组Cookies中
Cookie[] cookies = request.getCookies();
并遍历查找是否有我们所需Cookie
for(int i = 0; cookies!=null && i < cookies.length;i++){
//“LastVisitTime”是我们所需Cookie的名称
if("LastVisitTime".equals(cookies[i].getName())){
//如果有我们想要的Cookie,就把它的值放在变量lastVisitTime中
lastVisitTime = cookies[i].getValue();
break;
}
}
判断名称是否存在名称为LastVisitTime
if(lastVisitTime==null){
response.getWriter().println("您是首次访问本站");
}else{
response.getWriter().println("欢迎回来,上次登陆时间:"+lastVisitTime);
}
4.创建cookie
//创建cookie,将当前时间作为cookie值发给客户端
String currenTime = new SimpleDateFormat("yyyy-M-d:hh:mm:ss").format(new Date());
Cookie cookie = new Cookie("LastVisitTime",currenTime);
cookie.setPath("/");
//发送cookie
response.addCookie(cookie);
完整代码如下
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 指定服务器输出内容编码方式为utf-8,以防乱码
response.setContentType("text/html;charset=utf-8");
String lastVisitTime = null;
// 获取所有Cookie,并将这些Cookie存放在数组中
Cookie[] cookies = request.getCookies();
// 遍历所有Cookie数组
for(int i = 0; cookies!=null && i < cookies.length;i++){
if("LastVisitTime".equals(cookies[i].getName())){
lastVisitTime = cookies[i].getValue();
break;
}
}
//判断名称是否存在名称为LastVisitTime
if(lastVisitTime==null){
response.getWriter().println("您是首次访问本站");
}else{
response.getWriter().println("欢迎回来,上次登陆时间:"+lastVisitTime);
}
//创建cookie,将当前时间作为cookie值发给客户端
String currenTime = new SimpleDateFormat("yyyy-M-d:hh:mm:ss").format(new Date());
Cookie cookie = new Cookie("LastVisitTime",currenTime);
cookie.setPath("/");
//发送cookie
response.addCookie(cookie);
}