一、Cookie的概念
Cookie是由服务器端生成,发送给User-Agent(一般是浏览器),浏览器会将Cookie的key/value保存到某个目录下的文本文件内,下次请求同一网站时就发送该Cookie给服务器(前提是浏览器设置为启用cookie)。Cookie名称和值可以由服务器端开发自己定义,对于JSP而言也可以直接写入jsessionid,这样服务器可以知道该用户是否合法用户以及是否需要重新登录等,服务器可以设置或读取Cookies中包含信息,借此维护用户跟服务器会话中的状态。
二、Cookie的作用
- Cookies最典型的应用是判定注册用户是否已经登录网站,用户可能会得到提示,是否在下一次进入此网站时保留用户信息以便简化登录手续,这些都是Cookies的功用。
- 还用一个重要应用场合是“购物车”之类处理。用户可能会在一段时间内在同一家网站的不同页面中选择不同的商品,这些信息都会写入Cookies,以便在最后付款时提取信息。
三、 java和js中如何操作cookie
既然Cookie是服务端发送给客户端的,那么在服务端肯定可以通过Java来操作Cookie,实现Cookie的增删改查。又因为Cookie的存储在客户端的,所以在客户端可以通过JS来操作Cookie。
通过java和js中如何操作cookie,请参考下面的链接:
java和js中如何操作cookie
四、服务端往客户端发送cookie实例
1、服务端代码
public class CookiesServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
Cookie nameCookie = new Cookie("name", "zhangsan");
nameCookie.setMaxAge(60);
response.addCookie(nameCookie);
PrintWriter writer = response.getWriter();
writer.write(0);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
doGet(request,response);
}
}
2、index.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<a href="/Cookies/cookie">新增Cookie</a>
</body>
</html>
访问index.jsp,点击“新增Cookie”,就会访问CookiesServlet。
下面我们看看客户端cookie的变化。
注:至于如何查看客户端的Cookie信息,请参考下面的链接:
火狐浏览器如何查看cookies和已保存的密码
(1)清空客户端的cookie
(2)访问index.jsp页面
(3)点击“新增Cookie”