首先我们比较session与Cookie的不同之处:session(与服务器的建立连接开始与断开结束)会随浏览器的关闭而失效,但cookie按一定的生存周期存放在客服端机器上。
我们通常用于网站记录客户的相关信息(用户名、爱好等),一旦客户下次上线,网站可以获取到存在客服端的客户的相关信息。
response内置对象增加Cookie,提供如下方法:
void addCookie(Cookie cookie) 增加Cookie
在增加cookie之前必须创建cookie对象,请按一下步骤进行:
创建Cookie , Cookie(String name,String value);
设置Cookie生存期 setMaxAge(int second);
向客户写Cookie
addCookie.jsp 代码(编辑器因使用次数少)
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
地址栏输入 http://localhost:8080/JSP/addCookie.jsp?name=zyy ,如果浏览器没有阻止cookie,网站就会向客户端写入name的cookie
接下来访问客户端的cookie
readCookie.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
可以看到刚刚username zyy 即刚刚操作的。
接下来我们读取 中文字符的Cookie
cnCookie.jsp 代码:
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
存之前先Encoder编码,再Decoder解码
注:本人明明是"utf-8",可还是乱码汗,望哪位看完有感麻烦请告知,谢谢!