`
amcucn
  • 浏览: 293820 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java操作cookie遇到中文会报错的解决方案

阅读更多

项目当中用到cookie保存中文,但是会报如下错误:

Control character in cookie value, consider BASE64 encoding your value

 

大概意思是保存到cookie当中的值存在控制字符,无法保存。但实际上数据是不存在这种问题的。再看后面的那句话,好像是将要保存的值进行了base64编码,可能是因为中文在编码时出现乱码导致一些控制字符的出现。

 

解决方案:将要保存的值进行URLEncoder.encode(value,"utf-8")编码。

在提取时,同样进行解码:

 

 /**
     * 添加一个cookie值
     * @param name 名称
     * @param value 值
     * @param time  cookie的有效期
     * @param response 保存cookie的对象
     */
     public static void setCookie(String name, String value, Integer time,HttpServletResponse response) {
        try {
            //关键点
            value = URLEncoder.encode(value,"UTF-8");


        } catch (UnsupportedEncodingException e) { }
        Cookie cookie = new Cookie(name, value);
        cookie.setPath("/");
        cookie.setMaxAge(time);
        response.addCookie(cookie);
    }

    /**
     * 根据name值,从cookie当中取值
     *
     * @param name    要获取的name
     * @param request cookie存在的对象
     * @return 与name对应的cookie值
     */
    public static String getCookie(String name, HttpServletRequest request) {
        Cookie[] cs = request.getCookies();
        String value = "";
        if (cs != null) {
            for (Cookie c : cs) {
                if (name.equals(c.getName())) {
                    try {

                   //关键点  
                      value = URLDecoder.decode(c.getValue(),"UTF-8");


                    } catch (UnsupportedEncodingException e) {
                    }
                    return value;
                }
            }
        }
        return value;

    }
3
0
分享到:
评论

相关推荐

    java 操作cookie

    Java 操作 Cookie Java 操作 Cookie 是一种常用的 Web 开发技术,用于在服务器端和客户端之间交换数据。Cookie 是一种小文本文件,存储在客户端浏览器中,用于记录用户的行为和偏好。下面我们将详细介绍 Java 操作 ...

    Java 模拟cookie登陆简单操作示例

    当用户访问某个网站时,该网站可能会将 Cookie 信息写入到用户的浏览器中,以便下次用户访问该网站时能够快速识别用户的身份。 为什么需要模拟 Cookie 登陆? 在实际开发中,我们可能需要模拟用户的登陆行为,以便...

    关于java应用cookie

    ### 关于Java应用Cookie知识点详解 #### 一、Cookie简介 Cookie是一种常用的技术,用于存储用户的访问信息。在Web开发中,服务器可以将少量的信息发送到客户端浏览器,并存储在客户端,这种信息就是Cookie。当...

    java对cookie的操作java对cookie的操作

    Java中的Cookie操作是Web开发中常见的一种技术,用于在客户端和服务器之间传递状态信息。Cookie是一种小型文本文件,由服务器发送到用户的浏览器,并由浏览器在后续请求中返回给服务器。以下将详细介绍Java如何进行...

    JAVA操作COOKIE.docx

    JAVA 操作 COOKIE Cookie 是一种小型文本文件, Webseite 服务器通过 HTTP 头将其发送到浏览器端,浏览器将其存储在本地,下次访问同一网址时,浏览器将其发送回服务器端,以便服务器端识别用户身份、追踪用户行为...

    java操作cookie

    本篇文章将深入探讨Java如何操作Cookie,包括创建、读取、更新和删除Cookie,并解决可能出现的乱码问题。 首先,我们来看如何创建Cookie。在Servlet中,我们可以使用HttpServletResponse的addCookie()方法。以下是...

    JAVA操作COOKIE

    以下是关于 Java 操作 COOKIE 的详细说明: 1. **设置 Cookie** - 创建一个名为 "key",值为 "value" 的 Cookie 对象:`Cookie cookie = new Cookie("key", "value");` - 设置生存期:`cookie.setMaxAge(60);` 这...

    JAVA之cookie与session

    ### JAVA之cookie与session #### 一、Cookie与Session的概念 **Cookie** 与 **Session** 是两种在 Web 开发中用于跟踪用户会话的重要技术。它们的主要目标是在客户端和服务端之间保持状态。 - **Cookie** 机制...

    java中cookie的使用教程

    在Java编程语言中,Cookie是一种小型文本文件,用于在客户端和服务器之间传递信息,特别是保持用户状态和会话。本文将深入讲解Java中Cookie的使用方法,包括创建、设置、读取和删除Cookie,以及其在Web应用程序中的...

    JAVA操作COOKIE.pdf

    本文主要介绍了如何在Java中操作Cookie,包括设置、读取、修改和删除Cookie,以及实现跨域共享Cookie。 1. **设置Cookie** - 使用`Cookie`类创建一个新的Cookie对象,例如`Cookie cookie = new Cookie("key", ...

    java对cookie的操作.doc

    总的来说,Java对Cookie的操作主要包括创建、读取、设置生命周期和路径。理解这些基本操作并对其进行适当封装,将有助于提高Java Web应用的开发效率和代码质量。在实际项目中,还应注意安全性和性能优化,比如限制...

    java操作cookie-实现两周内自动登录.doc

    java 操作 Cookie 实现两周内自动登录 java 操作 Cookie 实现两周内自动登录是指通过在用户第一次登录网站时,网站向客户端发送一个包含有用户名的 Cookie,当用户下次访问时,浏览器将该 Cookie 发送回网站服务器...

    java操作cookie示例(删除cookie)

    本文将详细介绍如何使用Java操作Cookie,特别是如何设置、读取和删除Cookie。 首先,我们来看如何**设置Cookie**。在Java中,我们通常使用`HttpServletResponse`对象的`addCookie()`方法来添加Cookie。下面是一个...

    跨域访问解决方案,关于跨域访问cookie的资料

    ### 跨域访问解决方案与Cookie处理 在现代Web开发中,跨域问题一直是困扰开发者的一大难题。当浏览器出于安全考虑阻止不同源之间的数据交互时,跨域问题便产生了。为了解决这一问题,并确保在跨域场景下可以正确地...

    cookie接口 实现本地或客户端的cookie的创建和读取

    测试类则用于验证这些功能的正确性,通常会使用JUnit或其他单元测试框架编写,通过模拟请求和响应来测试Cookie操作。 在提供的压缩包文件`cookies`中,可能包含了一个接口(定义了Cookie操作的规范),一个实现类...

    java cookie 例子

    Java Cookie 是一种在客户端和服务器之间传递信息的技术,主要用于存储用户状态或偏好设置。在Servlet环境中,Cookie常用于实现会话管理,例如保存登录状态、购物车信息等。本示例将详细介绍如何在Java Servlet中...

    discuz与java通过cookie共享登陆

    5. **会话管理**:为了安全,Java应用可能会有自己的会话管理系统,这时需要将从Discuz接收到的Cookie信息转化为Java应用的会话ID,或者维护一个映射关系,确保用户在Java应用中的行为也能根据Discuz的登录状态同步...

    javacookie的使用

    ### Java Cookie 的使用详解 #### 一、Cookie简介 在Java Web开发中,Cookie是一种用于在客户端存储数据的技术。它通常被用来跟踪用户状态或存储用户的偏好设置等信息。Cookie可以方便地帮助开发者实现诸如登录...

    aaaaaa.zip_cookie_cookie java_java cookie

    在实际开发中,经常会编写这样的工具类来封装Cookie的操作,如设置Cookie、获取Cookie、删除Cookie等,以提高代码的复用性和可维护性。 例如,`JspUtil.setCookie(HttpServletRequest request, HttpServletResponse...

Global site tag (gtag.js) - Google Analytics