Response 增加Cookie及获取中文Cookie
2016-03-25 16:51
225 查看
首先我们比较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"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>增加 Cookie</title>
</head>
<body>
<%
String name=request.getParameter("name");
Cookie c = new Cookie("username",name);
c.setMaxAge(24*3600);
response.addCookie(c);
%>
</body>
</html>
地址栏输入 http://localhost:8080/JSP/addCookie.jsp?name=zyy ,如果浏览器没有阻止cookie,网站就会向客户端写入name的cookie
接下来访问客户端的cookie
readCookie.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>读取 All Cookie</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie c:cookies){
out.println(c.getName()+" , "+c.getValue());
}
%>
</body>
</html>
可以看到刚刚username zyy 即刚刚操作的。
接下来我们读取 中文字符的Cookie
cnCookie.jsp 代码:
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>读取 中文 Cookie</title>
</head>
<body>
<%
Cookie c = new Cookie("cnname",java.net.URLEncoder.encode("唐豆番东","utf-8"));
c.setMaxAge(24*3600);
response.addCookie(c);
Cookie[] cookies = request.getCookies();
for(Cookie cookie: cookies){
out.println(java.net.URLDecoder.decode(cookie.getValue()));
}
%>
</body>
</html>
存之前先Encoder编码,再Decoder解码
注:本人明明是"utf-8",可还是乱码汗,望哪位看完有感麻烦请告知,谢谢!
我们通常用于网站记录客户的相关信息(用户名、爱好等),一旦客户下次上线,网站可以获取到存在客服端的客户的相关信息。
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"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>增加 Cookie</title>
</head>
<body>
<%
String name=request.getParameter("name");
Cookie c = new Cookie("username",name);
c.setMaxAge(24*3600);
response.addCookie(c);
%>
</body>
</html>
地址栏输入 http://localhost:8080/JSP/addCookie.jsp?name=zyy ,如果浏览器没有阻止cookie,网站就会向客户端写入name的cookie
接下来访问客户端的cookie
readCookie.jsp代码
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>读取 All Cookie</title>
</head>
<body>
<%
Cookie[] cookies = request.getCookies();
for(Cookie c:cookies){
out.println(c.getName()+" , "+c.getValue());
}
%>
</body>
</html>
可以看到刚刚username zyy 即刚刚操作的。
接下来我们读取 中文字符的Cookie
cnCookie.jsp 代码:
<%@page import="java.net.URLDecoder"%>
<%@page import="java.net.URLEncoder"%>
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>读取 中文 Cookie</title>
</head>
<body>
<%
Cookie c = new Cookie("cnname",java.net.URLEncoder.encode("唐豆番东","utf-8"));
c.setMaxAge(24*3600);
response.addCookie(c);
Cookie[] cookies = request.getCookies();
for(Cookie cookie: cookies){
out.println(java.net.URLDecoder.decode(cookie.getValue()));
}
%>
</body>
</html>
存之前先Encoder编码,再Decoder解码
注:本人明明是"utf-8",可还是乱码汗,望哪位看完有感麻烦请告知,谢谢!
相关文章推荐
- libcurl 使用的几个注意事项
- 第三篇——软件之殇,WE ARE THOUSANDS APART!
- 3. 文件系统管理
- 2. 操作系统引导
- view 上推效果
- .Net使用Redis详解之ServiceStack.Redis(七)
- word2016去除回车符和换行符的方法
- 使用EditText在不同场景下调用软键盘的总结
- MAVEN pom.xml 文件详解,整理学习中··················
- word 文档中嵌入和链接OLE 对象|Packager-对象包装程序
- 静态库的使用方法
- Android 如何找到最匹配资源
- Example of Fixed Asset Service Operations
- 1. 用U盘安装Centos6.5 + Win7 双系统
- VS2008 error PRJ0002 : 错误的结果 31 (从“C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\rc.exe”返回)。
- linux tasklet和workqueue的应用情景
- Java 加解密技术系列之 PBE RSA AES DH 3DES DES HMAC SHA MD5 BASE64
- PHP7 扩展之自动化测试
- leetcode-24 Swap Nodes in Pairs
- Android 开源组件无限循环ViewPager