出错代码位置:
Cookie cookie
= new Cookie("bookIds", "1" + "," + "2");
response
.addCookie(cookie
);
严重
: Servlet
.service() for servlet
[cn
.hestyle
.web
.servlet
.BrowseBookServlet
] in context with path
[/Cookie_Test
] threw exception
java
.lang
.IllegalArgumentException
: An invalid character
[44] was present in the Cookie value
at org
.apache
.tomcat
.util
.http
.Rfc6265CookieProcessor
.validateCookieValue(Rfc6265CookieProcessor
.java
:189)
at org
.apache
.tomcat
.util
.http
.Rfc6265CookieProcessor
.generateHeader(Rfc6265CookieProcessor
.java
:115)
at org
.apache
.catalina
.connector
.Response
.generateCookieString(Response
.java
:973)
at org
.apache
.catalina
.connector
.Response
.addCookie(Response
.java
:925)
at org
.apache
.catalina
.connector
.ResponseFacade
.addCookie(ResponseFacade
.java
:385)
at cn
.hestyle
.web
.servlet
.BrowseBookServlet
.doGet(BrowseBookServlet
.java
:34)
at javax
.servlet
.http
.HttpServlet
.service(HttpServlet
.java
:634)
at javax
.servlet
.http
.HttpServlet
.service(HttpServlet
.java
:741)
at org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain
.java
:231)
at org
.apache
.catalina
.core
.ApplicationFilterChain
.doFilter(ApplicationFilterChain
.java
:166)
at org
.apache
.tomcat
.websocket
.server
.WsFilter
.doFilter(WsFilter
.java
:53)
at org
.apache
.catalina
.core
.ApplicationFilterChain
.internalDoFilter(ApplicationFilterChain
.java
:193)
at org
.apache
.catalina
.core
.ApplicationFilterChain
.doFilter(ApplicationFilterChain
.java
:166)
at org
.apache
.catalina
.core
.StandardWrapperValve
.invoke(StandardWrapperValve
.java
:202)
at org
.apache
.catalina
.core
.StandardContextValve
.invoke(StandardContextValve
.java
:96)
at org
.apache
.catalina
.authenticator
.AuthenticatorBase
.invoke(AuthenticatorBase
.java
:526)
at org
.apache
.catalina
.core
.StandardHostValve
.invoke(StandardHostValve
.java
:139)
at org
.apache
.catalina
.valves
.ErrorReportValve
.invoke(ErrorReportValve
.java
:92)
at org
.apache
.catalina
.valves
.AbstractAccessLogValve
.invoke(AbstractAccessLogValve
.java
:678)
at org
.apache
.catalina
.core
.StandardEngineValve
.invoke(StandardEngineValve
.java
:74)
at org
.apache
.catalina
.connector
.CoyoteAdapter
.service(CoyoteAdapter
.java
:343)
at org
.apache
.coyote
.http11
.Http11Processor
.service(Http11Processor
.java
:408)
at org
.apache
.coyote
.AbstractProcessorLight
.process(AbstractProcessorLight
.java
:66)
at org
.apache
.coyote
.AbstractProtocol$ConnectionHandler
.process(AbstractProtocol
.java
:860)
at org
.apache
.tomcat
.util
.net
.NioEndpoint$SocketProcessor
.doRun(NioEndpoint
.java
:1587)
at org
.apache
.tomcat
.util
.net
.SocketProcessorBase
.run(SocketProcessorBase
.java
:49)
at java
.util
.concurrent
.ThreadPoolExecutor
.runWorker(Unknown Source
)
at java
.util
.concurrent
.ThreadPoolExecutor$Worker
.run(Unknown Source
)
at org
.apache
.tomcat
.util
.threads
.TaskThread$WrappingRunnable
.run(TaskThread
.java
:61)
at java
.lang
.Thread
.run(Unknown Source
)
解决办法:
Cookie cookie
= new Cookie("bookIds", "1" + "-" + "2");
response
.addCookie(cookie
);
从
前
两
句
可
以
看
出
是
由
于
c
o
o
k
i
e
出
现
非
法
字
符
,
\color{red}从前两句可以看出是由于cookie出现非法字符,
从前两句可以看出是由于cookie出现非法字符,
注
意
c
o
o
k
i
e
的
v
a
l
u
e
中
不
能
含
有
空
格
、
逗
号
、
分
号
等
特
殊
字
符
!
!
!
\color{red}注意cookie的value中不能含有空格、逗号、分号等特殊字符!!!
注意cookie的value中不能含有空格、逗号、分号等特殊字符!!!
硬是调试了一下午。。。。