今晚我们来聊聊java技术,java的应用是非常广泛的,比如桌面程序,安卓apk程序,今天我们说说java web网站应用的一个非常有用且重要的技术:Cookie。Cookie的应用面很多,比如网站商品的浏览历史,记住用户名等等应用场景,我们今天讲解一个实际的案例:记录用户上次访问页面的时间。
下面我分享代码,并且会给代码加上我的讲解注释,帮助各位童鞋理解。
// 获取本地所有的cookie,得到一个cookie的数组
Cookie cookies[] = request.getCookies();
// 设置一个boolean变量,来标记是否找到我们需要的cookie
boolean b=false;
// for对象数组循环,循环的cookies数组,而每一次创建一个ck的cookie对象
for(Cookie ck:cookies){
if("lastVisit".equals(ck.getName())){
// 说明存在上次访问该页面的cookie
b=true;
// 读取cookie,利用getValue()方法
String time = ck.getValue();
out.println("上一次登录时间是:"+time);
// 利用SimpleDateFormat对象的format方法,格式化当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sdf.format(new java.util.Date());
// 更新Cookie中lastVisit的值,否则无法记录上次最新的访问时间
Cookie cookie = new Cookie("lastVisit",nowTime);
// 设置Cookie的生命周期,一般是一周
cookie.setMaxAge(7*24*3600);
// 利用http的response对象,将Cookie存储到本地
response.addCookie(cookie);
// 找到cookie就退出for循环
break;
}
// 说明是第一次访问该页面,Cookie中还没有lastVisit的值
if(!b){
out.println("您第一次访问该页面!");
// 格式化当前时间,并且把时间保存到cookie中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String nowTime = sdf.format(new java.util.Date());
Cookie cookie=new Cookie("lastVisit",nowTime);
cookie.setMaxAge(7*24*3600);
response.addCookie(cookie);
}
好了,今晚的Cookie技术分享到此结束,大家有什么疑问,可以留言和我讨论,很开心与大家一起进步!
大家可以关注我的微信公众号:iwork,我会每天推送一篇原创文章,让大家都能有所收获!