Cookie
1.Cookie简介
Cookie:数据存储在客户端本地,减少服务器的存储的压力,安全性不好,客户端可以清除cookie
2.Cookie需要掌握
服务器怎样将一个Cookie发送到客户端
服务器端怎样接受客户端携带的Cookie
3.创建Cookie:
Cookie cookie = new Cookie(String cookieName,String coolieValue);
示例:
Cookie cookie = new Cookie("username","zhangsan");
那么该cookie会以响应头的形式发送给客户端:
注意:Cookie中不能春初中文
4.向客户端发送cookie:
response.addCookie(Cookie cookie);
注意:访问本项目才会携带cookie信息
5.Cookie的一些常见的API(持久化,携带路径)
6.设置Cookie在客户端的持久化时间:
cookie.setMaxAge(int second);--时间秒
注意:如果不设置持久化时间,cookie会存储在浏览器的内存中,浏览器关闭
cookie信息撤销(绘画级别的cookie),如果设置持久化时间,cookie信息会 被
持久化到浏览器的磁盘文件里
7.设置Cookie的携带路径:
cookie.setPath(String path);
注意:如果不设置携带路径,那么该cookie信息会在访问中携带大量无用cookie,增加负担
例:cookie.setPth("/GetCookie");
8.如何删除cookie:
如果想删除客户端已经存储的cookie信息,那么就是用同名通路径的 持久化时间微0的cookie进行覆盖即可
9.获取Cookie:
request.getCookie();是集合,需要遍历
语法:
response.setContenType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
Cookie[] cookie = request.getCookie();
for(Cookie cookie:cookies){
String name = cookie.getName();
if(name.equals("userName")){
String cookieValue = cookie.getValue();
out.print("userName:"+cookieValue)
}
}
10,关于汉字会话传递与获取
发送cookie:
Cookie cookie= new Cookie("userName",URLEncoder.encode("汉字",“utf-8”));
response.addCookie(cookie);
获取Cookie:
Cookie[] cookies=request.getCookies();
for(Cookie cookie:cookise){//遍历
out.print(cookie.getName+","+URLDecoder.decode(cookie.getValue(),"utf-8"));
}
注意:
Servlet中定义输出格式(
response.setContenType("text/html;charset=utf-8");//utf-8不可少
PrintWriter out = response.getWriter();
)
学无止境,学亦有法!