Cookies 处理:
识别返回用户包括三个步骤:
1.服务器脚本向浏览器发送一组 Cookies。例如:姓名、年龄或识别号码等。
2.浏览器将这些信息存储在本地计算机上,以备将来使用。
3.当下一次浏览器向 Web 服务器发送任何请求时,浏览器会把这些 Cookies 信息发送到服务器,服务器将使用这些信息来识别用户。
Servlet Cookie 处理需要对中文进行编码与解码:
String str = java.net.URLEncoder.encode("中文"); //编码
String str = java.net.URLDecoder.decode("编码后的字符串"); // 解码
Cookies访问:
JSP脚本通过request对象中的 getCookies() 方法来访问这些cookies,这个方法会返回一个Cookie对象的数组。
Servlet 就能够通过请求方法 request.getCookies() 访问 Cookie,该方法将返回一个 Cookie 对象的数组。
Servlet 中操作 Cookies 时可使用的有用的方法列表:
1、public void setDomain(String pattern) 该方法设置 cookie 适用的域,例如 jianshu.com。
2、public String getDomain() 该方法获取 cookie 适用的域,例如 w3cschool.cn。
3、public void setMaxAge(int expiry) 该方法设置 cookie 过期的时间(以秒为单位)。如果不这样设置,cookie 只会在当前 session 会话中持续有效。
4、public int getMaxAge() 该方法返回 cookie 的最大生存周期(以秒为单位),默认情况下,-1 表示 cookie 将持续下去,直到浏览器关闭。
5、public String getName() 该方法返回 cookie 的名称。名称在创建后不能改变。
6、public void setValue(String newValue) 该方法设置与 cookie 关联的值。
7、public String getValue() 该方法获取与 cookie 关联的值。
8、public void setPath(String uri) 该方法设置 cookie 适用的路径。如果您不指定路径,与当前页面相同目录下的(包括子目录下的)所有 URL 都会返回 cookie。
9、public String getPath() 该方法获取 cookie 适用的路径。
10、public void setSecure(boolean flag) 该方法设置布尔值,表示 cookie 是否应该只在加密的(即 SSL)连接上发送。
11、public void setComment(String purpose) 该方法规定了描述 cookie 目的的注释。该注释在浏览器向用户呈现 cookie 时非常有用。
12、public String getComment() 该方法返回了描述 cookie 目的的注释,如果 cookie 没有注释则返回 null。
设置cookie包含三个步骤:
(1)创建一个Cookie对象: 调用Cookie的构造函数,使用一个cookie名称和值做参数,它们都是字符串。
Cookie cookie = new Cookie("key","value");
请务必牢记,名称和值中都不能包含空格或者如下的字符:[ ] ( ) = , " / ? @ : ;
(2) 设置有效期:调用setMaxAge()函数表明cookie在多长时间(以秒为单位)内有效。下面的操作将有效期设为了24小时。
cookie.setMaxAge(60*60*24);
(3) 将cookie发送至HTTP响应头中:调用response.addCookie()函数来向HTTP响应头中添加cookies。
response.addCookie(cookie);
读取 Cookies:需要调用request.getCookies()方法来获得一个javax.servlet.http.Cookie对象的数组,然后遍历这个数组,使用getName()方法和getValue()方法来获取每一个cookie的名称和值。
删除 Cookies:
三个步骤进行:
1.读取一个现有的 cookie,并把它存储在 Cookie 对象中。
2.使用 setMaxAge() 方法设置 cookie 的年龄为0,来删除现有的 cookie。
3.把这个 cookie 重新添加到响应头。
也可以手动在 Internet Explorer 中删除 Cookies。在"工具"菜单,选择"Internet 选项"。如果要删除所有的 Cookies,请按"删除 Cookies"。
网友评论