初次使用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编程中,java.lang.IllegalArgumentException是一个运行时异常,通常发生在方法被调用时传递给方法的参数值不合法或不适合。这种异常一般在编译时不会发现,而是在运行时执行代码时才会触发,它属于Java异常...
标题 "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>`标签...
在Java编程中,`java.lang.IllegalArgumentException` 是一个标准的运行时异常,它通常表示一个方法接收到的参数值不在预期范围内或者不合法。当尝试将一个无法转换为日期的对象格式化时,就会抛出"Cannot format ...
链接is unknown to this NavController
在Java编程实践中,IllegalArgumentException是一种常见的运行时异常,当方法接收到一个不合法或不正确的参数时会被抛出。这种异常的处理对于程序的健壮性和用户体验至关重要。解决IllegalArgumentException通常需要...
在深入探讨Scala编程的各个层面时,我们重点关注函数、过程、lazy值和异常处理这些核心概念。 首先,函数是Scala编程的基础元素之一。函数可以用来封装可重用的代码块,并可能返回一个值。当我们定义一个函数,如果...
总的来说,`java.lang.IllegalArgumentException: Path does not start with a "/\"` 错误是Java开发中常见的问题,尤其是在处理资源定位时。通过理解错误信息,检查并修正路径的格式,通常可以快速解决问题。对于...
Caused by: java.lang.IllegalArgumentException: input == null! at javax.imageio.ImageIO.read(ImageIO.java:1388) at com.pleanwar.fiying.FlyingObject.loadImage(FlyingObject.java:52) at ...
- IllegalArgumentException:当方法接收到不合法的参数时抛出,属于检查型异常(checked exception)。 3. 自定义异常: 在Java中可以通过继承Exception类或其子类来创建自定义异常。例如在提供的内容中,sanjiao...
在Java编程中,`IllegalArgumentException`是一个经常遇到的运行时异常。该异常属于`RuntimeException`类,是程序中应该避免的错误。它通常会在方法或构造器接收到不合法或不在预期范围内的参数时抛出。解决这种异常...
Java允许创建异常链,一个异常可以包含另一个异常作为原因,这有助于追踪问题的源头。通过`initCause()`方法可以设置原因异常。 六、声明异常 在方法签名中,可以使用`throws`关键字声明方法可能抛出的非检查异常...
有时标准库提供的异常类型不足以表达特定场景下的异常情况,此时可以创建自定义异常类。自定义异常类通常继承自`Exception`或其子类。 ```java public class CustomException extends Exception { public ...
- **`java.lang.IllegalArgumentException`**:当方法接收到无效参数时触发。例如,颜色值超过了有效的范围。 - **`java.lang.IllegalAccessException`**:当尝试访问没有适当权限的类或成员时触发。 #### 总结 ...