servlet中Cookie使用案例:显示浏览器上次访问时间
程序员文章站
2024-03-20 14:03:34
...
import java.io.IOException;
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 CookieDemo1 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException
{
response.setContentType("text/html;charset=utf-8");
//response.setHeader(“Set-Cookie”,“name=refrigerator”);
//cookie很常用,所以定义Cookie类,所以不需要像上行设置Cookie
//1、获取Cookie数组,然后遍历它,获取lasttime
Cookie [ ] cs = request.getCookies();
Cookie findC = null;
if(cs!=null){
for(Cookie c : cs){
if("lastTime".equals(c.getName())){
findC = c;
}
}
}
/*
2、判断lasttime是否为空,为空则为第一次访问,
不为空则获取lasttime 的值,向浏览器输出上次访问时间
*/
if(findC == null){
response.getWriter().write("您是第一次访问本网站!");
}else{
Long lastTime = Long.parseLong(findC.getValue());
response.getWriter().write("您上次访问时间是:"+new Date(lastTime).toLocaleString());
}
/*
3、如果是第一次访问,则向浏览器发送当前时间的cookie,
如果不是第一次 访问,则是向浏览器发送新的lasttime。
Cookie创建时需要传入名字和值.
*/
Cookie c = new Cookie("lastTime",new Date().getTime()+"");
c.setMaxAge(3600*24*30); //通知浏览器保存30天
c.setPath(request.getContextPath());
//c.setDomain(".baidu.com");
response.addCookie(c);
}
public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {
doGet(request, response);
}
}
上一篇: noip2017模拟赛序列问题