初次使用Cookies编程的时候遇到很多问题,创建Cookie的问题尤其多。
问题本身并不难解,关键是他只出现在我使用的电脑上,其实原因很简单,Cookie名中包含了‘@’,Cookie值中包含了‘,’。
引用
调用Cookie对象的构造函数可以创建Cookie。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。
名字和值都不能包含空白字符以及下列字符:[ ] ( ) < > = , " / ? @ : ;
其实cookie中的敏感字符不止这些,这和浏览器、操作系统有关,所以我建议在使用cookie时,尽量避免使用敏感字符,最好只让字母 数字 . - _出现。
今天我又遇到了这样的问题:java.lang.IllegalArgumentException: Control character in cookie value, consider BASE64 encoding your value
错误出在response.addCookie(cookie);//cookie 是一个Cookie实例。
很显然Cookie之中存在了非法参数,经过测试发现cookie之中包含"\r\n"、"\n"时就会出现这个异常。
因为cookie中部分值是通过文本框录入的,在<textarea/>标签中键入回车键后,value值中就加入了"\r\n",把这样的值付给cookie,执行response.addCookie(cookie);时则出现异常。
解决办法:使用String类的replace()方法。
str = str.replace("\r\n", "<br>");
str = str.replace("\n", "<br>");
Cookie cookie = new Cookie('cookName',str);
//永久有效
cookie.setMaxAge(60*60*24*365);
response.addCookie(cookie);
关于Cookie的基础知识参见:
用jsp处理Cookie
分享到:
相关推荐
### Cause: java.lang.IllegalArgumentException: jdbcUrl is required with driverClassName. at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:...
启动gremlin – server服务时报如下异常: 34180 [main] WARN org.janusgraph.graphdb.database.idassigner.placement.PartitionIDRange - Individual key range is too small for partition block - result would ...
在Java编程中,`IllegalArgumentException` 是一个常见的运行时异常,属于`RuntimeException`的子类。这个异常通常在方法接收到不合法或不适当的参数时抛出。当一个方法需要接收特定类型的参数,而传入的参数明显不...
标题 "java.lang.Exception: java.lang.IllegalArgumentException: firstMovedIndex, lastMove" 描述了一个Java编程中的异常情况。这个异常通常发生在尝试执行一个不合法的操作时,例如数组或集合操作超出了其边界。...
eclipse3.4汉化包安装完后,发生异常:Unmatched braces in the pattern. 问题出在汉化包里的资源文件汉化eclipse的资源文件出错, 将此jar拷贝到汉化包中覆盖原来的jar重启eclipse即可解决!(记住,要备份呦!)
在Java编程中,`java.lang.IllegalArgumentException` 是一个运行时异常,通常会在方法接收到非法或不合适的参数时抛出。这个错误信息 "Class not found: org.apache.struts2.validator" 指示程序在尝试加载名为 `...
throw new IllegalArgumentException("除数不能为0"); } } ``` 在实际应用中,如JSP(JavaServer Pages)或者Servlet中,我们可以使用JavaBean来传递和处理数据。例如,在JSP中,我们可以通过`<jsp:useBean>`标签...
链接is unknown to this NavController
在Java编程中,`java.lang.IllegalArgumentException` 是一个标准的运行时异常,它通常表示一个方法接收到的参数值不在预期范围内或者不合法。当尝试将一个无法转换为日期的对象格式化时,就会抛出"Cannot format ...
在深入探讨Scala编程的各个层面时,我们重点关注函数、过程、lazy值和异常处理这些核心概念。 首先,函数是Scala编程的基础元素之一。函数可以用来封装可重用的代码块,并可能返回一个值。当我们定义一个函数,如果...
总的来说,`java.lang.IllegalArgumentException: Path does not start with a "/\"` 错误是Java开发中常见的问题,尤其是在处理资源定位时。通过理解错误信息,检查并修正路径的格式,通常可以快速解决问题。对于...
- IllegalArgumentException:当方法接收到不合法的参数时抛出,属于检查型异常(checked exception)。 3. 自定义异常: 在Java中可以通过继承Exception类或其子类来创建自定义异常。例如在提供的内容中,sanjiao...
Java允许创建异常链,一个异常可以包含另一个异常作为原因,这有助于追踪问题的源头。通过`initCause()`方法可以设置原因异常。 六、声明异常 在方法签名中,可以使用`throws`关键字声明方法可能抛出的非检查异常...
在Android开发中,Java编程时常会遇到`java.lang.IllegalArgumentException`异常,这通常表示传入的参数不符合方法的要求。在本例中,错误信息“contains a path separator”提示我们问题可能与路径分隔符有关,这...
有时标准库提供的异常类型不足以表达特定场景下的异常情况,此时可以创建自定义异常类。自定义异常类通常继承自`Exception`或其子类。 ```java public class CustomException extends Exception { public ...
1. 创建新的异常类:扩展`Exception`或其子类,如`IllegalArgumentException`,并提供必要的构造函数。例如,我们可以创建一个`InvalidCredentialsException`类: ```java public class ...
1. 抛出异常:当一个异常发生时,Java会创建一个异常对象并“抛出”它。这可以通过使用`throw`关键字来实现。例如,`throw new IllegalArgumentException("参数错误");` 2. 捕获异常:为了处理抛出的异常,我们可以...
"IDEA 中使用 ECJ 编译出现 java.lang.IllegalArgumentException 的错误问题解决方案" IDEA 是一个功能强大且功能丰富的集成开发环境,支持多种编程语言,包括 Java、Python、Ruby 等。ECJ(Eclipse Compiler for ...