Response 增加Cookie及获取中文Cookie

首先我们比较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",可还是乱码汗,望哪位看完有感麻烦请告知,谢谢!

你可能感兴趣的:(jsp,浏览器,response,cookie)