Cookie对象
1) http协议是一个无连接性的协议(即从服务器上拿到内容后,连接中断)
2)服务器端写入客户端的内容称之为cookie,以明值的方式保存
3)用cookie记录前后之间的状态
1.服务器向客户端写内容只能是文本文档(同样可以阻止写内容)
2.只服务器只能从客户端只能拿取自己的内容
3. 服务器可以根据Cookie来跟踪用户,这对于需要区别用户场合特别有用。
服务器通过操作cookie类对象对客户端cookie进行操作
通过request.getCookie()获取客户端提交的cookie(以Cookie[]形式返回)
通过response.addCookie(Cookie)向客户端设置Cookie
示例代码
String username = "";//设置用户名
int visitTimes = 0;//设置访问次数
Cookie[] cookies = request.getCookies();//获得所有的cookie并放到一个cookie数组中
for (int i = 0; cookies != null && i < cookies.length; i++) {//遍历cookie寻找账号和密码
Cookie cookie = cookies[i];//第I个kookie
if ("username".equals(cookie.getName())) {//如果cookie名为username
username = cookie.getValue();//记录cookie
} else if ("visitTimes".equals(cookie.getName())) {//如果cookie名为visitTimes则记录cookie的内容
visitTimes = Integer.parseInt(cookie.getValue());
}
if (username == null || username.trim().equals("")) {//如果没有找到用户名和密码则转到登录页面
throw new Exception("你还没有登录请重新登录");
}
//修改cookie更新用户的访问次数
Cookie visitTimesCookie = new Cookie("visitTimes", Integer.toString(++visitTimes));
response.addCookie(visitTimesCookie);//覆盖名为visitTimes的cookie
}
//客户端cookie的操作
Cookie usernameCookies = new Cookie("username",request.getParameter("username"));//新建username的cookie
Cookie visitTimesCookie = new Cookie("visitTimes","0");//新建访问次数的cookie
//添加到response中,response会将cookie发送给客户端
response.addCookie(usernameCookies);
response.addCookie(visitTimesCookie);
response.sendRedirect(request.getContextPath()+"/cookie.jsp");
//显示cookie页面