
案例: 在服务器中的Servlet判断是否有一个名为lastTime的cookie
1. 有:不是第一次访问
1. 响应数据:欢迎回来,您上次访问时间为:2018年6月10日11:50:20
2. 写回Cookie:lastTime=2018年6月10日11:50:01
2. 没有:是第一次访问
1. 响应数据:您好,欢迎您首次访问
2. 写回Cookie:lastTime=2018年6月10日11:50:01
@WebServlet("/LastTimeCookie")
public class LastTimeCookie extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
Cookie[] cookies = request.getCookies();
boolean flag=false;
if(cookies!=null&&cookies.length>0){
for (Cookie cookie : cookies) {
String name = cookie.getName();
if ("LastName".equals(name)){
flag=true;
String value = cookie.getValue();
value=URLDecoder.decode(value,"utf-8");
response.getWriter().write("<h1>欢迎回来,您上次的访问时间为"+value+"</h1>");
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time = sdf.format(date);
time=URLEncoder.encode(time,"utf-8");
cookie.setValue(time);
cookie.setMaxAge(60*60);
response.addCookie(cookie);
break;
}
}
}
if(cookies==null||cookies.length>0||flag==false){
Date date=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String time = sdf.format(date);
time=URLEncoder.encode(time,"utf-8");
Cookie cookie=new Cookie("LastName",time);
cookie.setValue(time);
cookie.setMaxAge(60*60);
response.addCookie(cookie);
response.getWriter().write("<h1>您好 欢迎您首次登录</h1>");
}
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
}
该博客介绍了如何在Servlet中检查Cookie来判断用户是否是首次访问。如果找到名为'lastTime'的Cookie,则显示上次访问时间并更新Cookie;若未找到,表明是首次访问,并设置Cookie记录当前时间。

被折叠的 条评论
为什么被折叠?



