一、会话概括
1、什么是会话:从登录淘宝,多次刷新网页,到最终退出淘宝,整个过程就是一次会话。
会话的特点:
包含多个请求,一次完整的会话针对一个用户。
会话管理技术:
第一种:cookie技术,客户端技术。
第二种:session技术,服务端技术。
二、Cookie对象
1、什么是cookie:
Cookie是一种会话管理技术,它是用来保存会话过程中产生的数据,然后在浏览器和服务器交互时,会使用cookie里面保存的数据。
注意:首次访问服务器,浏览器不会携带cookie到服务端。
2 、Cookie常用的API
1.构造方法:
public Cookie(java.lang.String name,java.lang.String value)
1.得到cookie对象:Cookie cookie = new Cookie(String key,String value);
2.Cookie类常用的方法:
2.回写(响应)cookie到浏览器端: response.addCookie(cookie);
3.得到cookie的名称 :String key= cookie.getName(),
得到cookie的值: String value =cookie.getValue();
4.给cookie设置生命时长: setMaxAge(int sr);
比如:cookie.setMaxAge(606024*7),说明cookie能存活7天;
cookie分类:
第一类:会话级别cookie,浏览器关闭,cookie对象就销毁了。
第二类:持久化cookie,通过setMaxAge这个方法来设置。
5.给cookie设置路径,设置域名:
setPath(路径的url),setDomain(域名);
比如:域名就是服务器名称,比如说:www.baidu.com
6.得到cookie: Cookie[] cookies = request.getCookies();
@WebServlet("/lastaccess")
public class LastAccessServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("test/html;charset=utf-8");
System.out.println("收到前段请求");
Cookie[] cookies=request.getCookies();
String lastTime=null;
for(int i=0;cookies!=null&&i<cookies.length;i++) {
String name =cookies[i].getName();
if("k=lastAccers".equals(name)) {
lastTime=cookies[i].getValue();
}
}
if(lastTime==null) {
response.getWriter().print("您是首次访问本网站");
}else {
response.getWriter().print("您上次的访问时间"+lastTime);
}
String time=String.format("%tF%<tT",new Date());
Cookie cookie=new Cookie("lastAccerss",time)