美文网首页
怎样在Cookie中存储中文?

怎样在Cookie中存储中文?

作者: 鹤子青云上 | 来源:发表于2023-07-17 17:35 被阅读0次

Cookie不能存储中文,但是如果有这方面的需求,这个时候该如何解决呢?

这个时候,我们可以使用之前学过的一个知识点叫URL编码,所以如果需要存储中文,就需要进行转码,具体的实现思路为:

1.在AServlet中对中文进行URL编码,采用URLEncoder.encode(),将编码后的值存入Cookie中

2.在BServlet中获取Cookie中的值,获取的值为URL编码后的值

3.将获取的值在进行URL解码,采用URLDecoder.decode(),就可以获取到对应的中文值

(1)在AServlet中对中文进行URL编码

@WebServlet("/aServlet")
public class AServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse sponse) throws ServletException, IOException {
        //发送Cookie
        String value = "张三";
        //对中文进行URL编码
        value = URLEncoder.encode(value, "UTF-8");
        System.out.println("存储数据:" + value);
        //将编码后的值存入Cookie中
        Cookie cookie = new Cookie("username", value);
        //设置存活时间 ,1周 7天
        cookie.setMaxAge(60 * 60 * 24 * 7);
        //2. 发送Cookie,response
        response.addCookie(cookie);
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse 
ponse) throws ServletException, IOException {
        this.doGet(request, response);
    }
}

(2)在BServlet中获取值,并对值进行解码。

@WebServlet("/bServlet")
public class BServlet extends HttpServlet {
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse
sponse) throws ServletException, IOException {
      //获取Cookie
      //1. 获取Cookie数组
      Cookie[] cookies = request.getCookies();
      //2. 遍历数组
      for (Cookie cookie : cookies) {
          //3. 获取数据
          String name = cookie.getName();
          if("username".equals(name)){
              String value = cookie.getValue();//获取的是URL编码后的值
%BC%A0%E4%B8%89
              //URL解码
              value = URLDecoder.decode(value,"UTF-8");
              System.out.println(name+":"+value);//value解码后为 张三
              break;

          }
      }

  }
  @Override
  protected void doPost(HttpServletRequest request, HttpServletResponse
response) throws ServletException, IOException {
       this.doGet(request, response);
  }

}

至此,我们就可以将中文存入Cookie中进行使用。

相关文章

  • Cookie与Session

    Cookie 注意:Cookie中不能存储中文,存储在客户端 会话级Cookie默认,浏览器关闭Cookie就销毁...

  • Java Cookie常用方法介绍

    什么是Cookie? Cookie翻译成中文是小甜点,小饼干的意思。Cookie是以键值对形式存储在客户端主机硬盘...

  • PHP进阶(二)

    一、会话控制 1、cookie 简介:Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用...

  • iOS Cookie 存储相关技术

    iOS Cookie 存储相关技术 iOS Cookie 存储相关技术一、什么是Cookie二、Cookie在Ht...

  • session和cookie的区别

    cookie的存在方式 cookie是浏览器支持的本地存储方式,存储形式是dict(键值对的形式),存储在浏览器中...

  • 有关cookie的知识

    定义   cookie的中文意思为临时存储数据,对于前端初学者而言只要知道cookie的两个用法怎么存cookie...

  • Cookie 禁用了,Session 还能用吗?

    在默认的JSP、PHP配置中,SessionID是需要存储在Cookie中的,默认Cookie名为: 以下以PHP...

  • 会话控制(session与cookie)

    cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,...

  • PHP 会话控制(cookie与session)的介绍和运用

    cookie简介 Cookie是存储在客户端浏览器中的数据,我们通过Cookie来跟踪与存储用户数据。一般情况下,...

  • php笔记(进阶3)

    cookie Cookie是存储在客户端浏览器中的数据,通过Cookie来跟踪和存储用户数据。一般情况下,Cook...

网友评论

      本文标题:怎样在Cookie中存储中文?

      本文链接:https://www.haomeiwen.com/subject/zcmgudtx.html