我是靠谱客的博主 耍酷御姐,最近开发中收集的这篇文章主要介绍javaweb cookie如果是首次访问,则输出首次访问,如果不是首次访问,则向浏览器输出上次访问的时间,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
import cn.silence.utils.CookieUtils;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
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;
/**
* javaweb cookie如果是首次访问,则输出首次访问,如果不是首次访问,则向浏览器输出上次访问的时间
* @author silence
*/
@WebServlet("/silence")
public class Silence extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//解决响应中文乱码的问题
resp.setContentType("text/html;charset=utf-8");
//通过封装的工具类,判断是否有 携带cookie 携带返回cookie对象, 未携带返回null
Cookie lastVisit = CookieUtils.findCookie(req, "lastVisit");
if (lastVisit == null) {
//如果返回null 是第一次访问
resp.getWriter().write("当前是首次访问");
} else {
//不是第一次访问, 获取存入的cookie 时间毫秒值
String timeValue = lastVisit.getValue();
//将获得的字符串毫秒值,通过Long包装类,转换为long类型
long timeLong = Long.parseLong(timeValue);
//返回的日期时间格式
SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
//将上次的访问的时间毫秒值,传入日期对象,获得指定日期,格式的时间日期,字符串
String date = format.format(new Date(timeLong));
//向浏览器输出上次访问的时间
resp.getWriter().write("欢迎回来,你上次访问的时间是:" + date);
}
//无论是否是第一次访问都存入cookie一个时间
Cookie cookie = new Cookie("lastVisit", System.currentTimeMillis() + "");
//设置cookie存在的时间
cookie.setMaxAge(60 * 60 * 24 * 365 * 50);
//设置cookie的有效路径
cookie.setPath(req.getContextPath());
//将新的时间cookie 返回到浏览器
resp.addCookie(cookie);
}
}
CookieUtils
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
public class CookieUtils {
private CookieUtils() {
}
/**
*
* 根据cookie 名字, 查找cookie
* @param req req
* @param cookieName cookieName
* @return Cookie
*/
public static Cookie findCookie(HttpServletRequest req, String cookieName) {
Cookie[] cookies = req.getCookies();
if (cookies != null) {
for (Cookie cookie : cookies) {
String name = cookie.getName();
if (name.equals(cookieName)) {
return cookie;
}
}
}
return null;
}
}
最后
以上就是耍酷御姐为你收集整理的javaweb cookie如果是首次访问,则输出首次访问,如果不是首次访问,则向浏览器输出上次访问的时间的全部内容,希望文章能够帮你解决javaweb cookie如果是首次访问,则输出首次访问,如果不是首次访问,则向浏览器输出上次访问的时间所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复