概述
首先我们比较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及获取中文Cookie的全部内容,希望文章能够帮你解决Response 增加Cookie及获取中文Cookie所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复