1.Cookie技术
在客户端保存的数据,数据产生是在服务器
在浏览器中Cookie是以文本的形式保存数据
2.cookie中使用中文问题
cookie数据,值可以使用中文,建议不要使用中文,在cookie使用中文,tomcat低版本不支持,从tomcat8开始支持
3.获取浏览器携带的cookie
浏览器在访问服务器的时候,携带cookie数据,服务端使用request对象获取cookie, cookie数据会在请求头
request对象方法, cookie[ ] getcookies() 获取多个cookie,返回cookie对象数组
cookie对象方法, getName()获取cookie的键值, getvalue 获取其值
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
/**
* 获取客户端浏览器携带的Cookie数据
* request对象方法 getCookies()
*/
Cookie[] cookies = request.getCookies();
for (Cookie cookie : cookies){
//遍历数组,取出的是数组中的每个Cookie对象
//取出Cookie中的键
String key = cookie.getName();
//取出Cookie中的值
String value = cookie.getValue();
System.out.println(key+"==="+value);
}
}
4.cookie的携带路径
浏览器每次都会携带cookie吗?
浏览器携带cookie,在cookie产生的路径下,cookie产生路径在/abc下,浏览器访问/abc下任意资源,都会携带cookie
cookie 对象方法 setpath() 设置携带的路径
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie cookie = new Cookie("heima","java");
//设置Cookie的携带路径,WEB应用名称,不要写死的
cookie.setPath( request.getContextPath());
response.addCookie(cookie);
}
5.cookie的生存时间
浏览器的cookie生存时间,默认是当前会话时间,浏览器关闭,会话结束
设置生存时间,cookie对象方法setMaxAge(int 秒)
6.记录上次访问时间
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=utf-8");
//获取客户端携带的Cookie
Cookie[] cookies = request.getCookies();
//获取当前时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");
String time = sdf.format(new Date());
//判断数组
if (cookies==null){
//没有数据,第一次访问
response.getWriter().write("欢迎第一次访问");
//当前时间,存储到Cookie中
Cookie cookie = new Cookie("time",time);
cookie.setMaxAge(60*10);
cookie.setPath(request.getContextPath());
response.addCookie(cookie);
}else {
//有数据,获取cookie中存储时间
for(Cookie cookie :cookies){
String key = cookie.getName();
String value = cookie.getValue();
response.getWriter().write("上次访问时间是:"+value);
Cookie cookie2 = new Cookie("time",time);
cookie2.setMaxAge(60*10);
cookie2.setPath(request.getContextPath());
response.addCookie(cookie2);
}
}
}
7.session对象
HttpSession接口,session对象是接口的实现类,实现类对象tomcat引擎创建