利用cookie技术制作简单的上次登录时间记录
Cookie技术:
1.创建cookie:
Cookie cookie = new Cookie(String cookieName,String cookieValue);
示例:
Cookie cookie = new Cookie("username","zhangsan");
那么该cookie会以响应头的形式发送给客户端:
Set-Cookie:“name=zhangsan”
注意:Cookie中不能存储中文
2.
设置Cookie在客户端的持久化时间:
cookie.setMaxAge(int seconds); ---时间秒
注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭cookie信息销毁(会话级别的cookie),如果设置持久化时间,cookie信息会被持久化到浏览器的磁盘文件里
示例:
cookie.setMaxAge(10*60);
设置cookie信息在浏览器的磁盘文件中存储的时间是10分钟,过期浏览器 自动删除该cookie信息
3.设置Cookie的携带路径:
cookie.setPath(String path);
注意:如果不设置携带路径,那么该cookie信息会在访问产生该cookie的 web资源所在的路径都携带cookie信息
示例:
cookie.setPath("/WEB16");
代表访问WEB16应用中的任何资源都携带cookie
cookie.setPath("/WEB16/cookieServlet");
代表访问WEB16中的cookieServlet时才携带cookie信息
4.向客户端发送cookie:
response.addCookie(Cookie cookie);
5.删除客户端的cookie:
如果想删除客户端的已经存储的cookie信息,那么就使用同名同路径的持久化时间为0的cookie进行覆盖即可
1.服务器端怎么接受客户端携带的Cookie
cookie信息是以请求头的方式发送到服务器端的:
1)通过request获得所有的Cookie:
Cookie[] cookies = request.getCookies();
2)遍历Cookie数组,通过Cookie的名称获得我们想要的Cookie
for(Cookie cookie : cookies){
if(cookie.getName().equal(cookieName)){
String cookieValue = cookie.getValue();
}
}
下面是一个利用cookie技术制作简单的上次登录时间记录:
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
//记录当前系统时间发送给客户端
//创建当前系统 日期时间对象
Date date=new Date();
//创建日期格式转换类
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String time=sdf.format(date);
//创建cookie对象
Cookie cookie=new Cookie("lastAccessTime",time);
//设置持久化时间
cookie.setMaxAge(10*60);
//发送cookie
response.addCookie(cookie);
//获取客户端携带的cookie信息
String lastAccessTime=null;
Cookie[] cookies=request.getCookies();
if(cookies!=null){
for(Cookie c:cookies){
if(c.getName().equals("lastAccessTime")){
lastAccessTime=c.getValue();
}
}
}
//对lastAccessTime进行判定
response.setContentType("text/html;charset=utf-8");
if(lastAccessTime==null){
response.getWriter().write("你是第一次访问该网站!");
}else{
response.getWriter().write("你上次访问的时间为:"+lastAccessTime);
}
}
doGet(request, response);
}
}
posted on 2020-05-15 14:21 煎饼果子不要果子谢谢 阅读(280) 评论(0) 编辑 收藏 举报