您的位置:首页 > Web前端 > JavaScript

cookie-jsp实现记录用户上次访问时间

2018-04-01 16:50 447 查看

步骤分析:

1.创建一个serlvet RemServlet 路径:/rem
2.在servlet中:
获取指定cookie 例如:名称为 lastTime
request.getCookies()
判断cookie是否为空
若为空:提示信息 第一次访问
若不为空:
获取此cookie的value
展示信息:你上次访问时间是....
         将这次访问时间记录,写会浏览器
代码:jsp:<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a  href="/websi/hello">a_cookie入门</a>
</body>

</html>
Servlet类package com.feizhu.a_cookie_rem;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;

import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * 记录上次访问时间
 */
public class RemServlet extends HttpServlet {
private static final long serialVersionUID = 1L;

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
   // 0.设置编码
 
response.setContentType("text/html;charset=utf-8");
PrintWriter w=response.getWriter();

//获取指定名称的cookie
Cookie c=getCookieByName("lastTime",request.getCookies());

//判断cookie是否为空

 if(c==null) {
 //cookie为空 提示第一次访问
  w.print("您是第一次访问");
 
 }else {
 //cookie不为空 获取value  展示上一次访问的时间
 String  value=c.getValue();  //lastTime=1231231231
  Long time= Long.parseLong(value);
    Date date= new Date(time);
    w.println("您上次访问的时间:"+date.toLocaleString());
 
 }
//将当前访问时间记录

//创建cookie
 
 c=new Cookie("lastTime",new Date().getTime()+"");
//持久化cookie
 c.setMaxAge(3600);
//设置路径
 c.setPath(request.getContextPath()+"/");
//写回浏览器
response.addCookie(c);
}
    /**
     * 通过名称在cookie数组获取指定的cookie
     * @param name  cookie名词
     * @param cookies  cookie数组
     * @return
     */
private Cookie getCookieByName(String name, Cookie[] cookies) {
if(cookies!=null) {

for(Cookie c: cookies) {
//通过名称获取
if(name.equals(c.getName()))
//返回
return c;
}
}
return null;
}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doGet(request, response);
}

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: