【问题标题】:JSP cookies[loop].getValue() breaking when @ is a vaule当@是一个值时,JSP cookies[loop].get Value() 中断
【发布时间】:2011-09-19 12:22:32
【问题描述】:

我已将 cookie 设置为用于低级别登录的电子邮件地址。当我获得 cookie 的值时,它不会返回任何超过 @ 符号的内容?

例如:

cookie 值 = 'name@domain.com'

cookie 获取值 = 'variable = cookies[loop].getValue()'

返回 = '名称'

关于如何解决这个问题的任何想法?

可能转义字符?

【问题讨论】:

    标签: jsp cookies


    【解决方案1】:

    @ 是 cookie 中的无效字符。我建议对 cookie 值进行 URL 编码和 URL 解码。

    Cookie cookie = new Cookie(name, URLEncoder.encode(value, "UTF-8"));
    // ...
    

    String value = URLDecoder.decode(cookie.getValue(), "UTF-8");
    // ...
    

    【讨论】:

    • 感谢您的宝贵时间,但在使用您的代码时,我收到一个错误“无法解析指向 URL 的符号...”:Cookie cookieUserId = new Cookie("cookieUserId", URLEncoder.编码(电子邮件地址,“UTF-8”));这是否意味着我需要安装 URLEcoder?我在 Apache Tomcat/4.1.40 上运行它,它最近才成为一个问题。
    • 它来自 java.net 包:download.oracle.com/javase/6/docs/api/java/net/URLEncoder.html 只需将 import java.net.URLEncoder; 添加到您的班级顶部(或者让您的 IDE 自动完成它?)。
    【解决方案2】:

    cookie 声明

    enter code here
       String str="name@domain.com";
        str=URLEncoder.encode(str);
        Cookie ck2=new Cookie("email",str);
    

    ================================================ ================

        String a = URLDecoder.decode(cks[i].getValue());
    

    这会让你cookie所有字符,包括@,@之后

    【讨论】:

      猜你喜欢
      • 2021-04-18
      • 2021-05-19
      • 2020-12-28
      • 1970-01-01
      • 1970-01-01
      • 2021-03-24
      • 2015-05-30
      • 2012-02-13
      • 1970-01-01
      相关资源
      最近更新 更多