在Javaweb中使用cookie记录上一次访问时间
我用的是idea,创建一个servlet项目。
首先创建一个CookieUtils类
创建cookieFinder方法
import javax.servlet.http.Cookie;
public class CookieUtils {
public static String cookieFinder(Cookie[] cookies, String name){
if(cookies!=null){
//如果给的cookies数组有值 则遍历数组 有没有需要的cookie
for (Cookie cookie:cookies){
// 如果有 则返回cookie值
if (cookie.getName().equals(name)){
return cookie.getValue();
}
}
}
//没有则返回null
return null;
}
}
然后创建一个CookieTest类 继承HttpServlet类
在doGet中写入
import javax.servlet.ServletException; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; /** * 获取系统时间 * 检测是否是第一次访问 * 是则输出welcome * 不是则输出上次访问的时间 **/ protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // 获取系统时间并格式化 String time = new SimpleDateFormat("HH:mm").format(new Date()); // 获取cookie Cookie[] cookies = req.getCookies(); // 检测是否是第一次访问 String cookie_lastVisit = CookieUtils.cookieFinder(cookies, "lastVisit"); // 设置cookie Cookie c = new Cookie("lastVisit",time); // 检测是否是第一次访问 if (cookie_lastVisit==null){ // 如果是 则输出welcome resp.getWriter().println("welcome"); }else{ // 如果不是 则输出上一次的访问时间 resp.getWriter().println(cookie_lastVisit); } // 设置cookie的存活时间 int类型 可以用运算符 这是存活一小时 c.setMaxAge(60*60); // 向浏览器发送cookie resp.addCookie(c); }
完事