您的位置:首页 > 其它

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",可还是乱码汗,望哪位看完有感麻烦请告知,谢谢!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: