今天开始学习servlet创建和读取cookie的方法:
还是先看帮助文档,对cookie这个类的描述:
Creates a cookie, a small amount of information sent by a servlet to a Web browser, saved by the browser, and later sent back to the server. A cookie's value can uniquely identify a client, so cookies are commonly used for session management.
A cookie has a name, a single value, and optional attributes such as a comment, path and domain qualifiers, a maximum age, and a version number. Some Web browsers have bugs in how they handle the optional attributes, so use them sparingly to improve the interoperability of your servlets.
cookie也是用于会话管理的一种机制,但是与session不同,cookie保存在客户端,关于cookie和session的区别我们后面再详细了解,这里先单讲cookie。session相似,cookie也可以理解为一种表的结构:cookie名和相对应的值。
1、servlet创建cookie:
cookie的构造方法 Cookie(java.lang.String name, java.lang.String value),很明显我们可以这样来创建自己的cookie:Cookie myCookie=new Cookie("cookieNamne","cookieValue");
接下来就要设置cookie的保存时间,和session默认30分钟的保存时间不同,如果不给cookie设置时间,那么客户端将不会保存cookie:
myCookie.setMaxAge(1000);
最后将cookie写入客户端,使用HttpServletResponse对象的addCookie()方法:
res.addCookie(myCookie);
这样cookie就保存在了客户端,下面来学习servlet读取cookie:
2、servlet读取cookie:
从客户端获得所有的cookie,使用HttpServletRequest对象的getCookies()方法,该方法会以数组的形式返回所有的cookie:
Cookie[] allCookies = req.getCookies();
通过循环找到我们想要的cookie:
for (int i = 0;i < allCookies.length; i++){ Cookie temp=allCookies[i]; if(temp.getName().equals("cookieName")){ String myCookie=temp.getValue(); }}
关于cookie的创建与读取就这样简单的记录下来,后续会对session、cookie、servletContext做出较详细的比较。