报错信息
HTTP Status 500 – Internal Server Error
Type Exception Report
Message An invalid character [32] was present in the Cookie value
Description The server encountered an unexpected condition that prevented it from fulfilling the request.
Exception
java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
org.apache.tomcat.util.http.Rfc6265CookieProcessor.validateCookieValue(Rfc6265CookieProcessor.java:182)
org.apache.tomcat.util.http.Rfc6265CookieProcessor.generateHeader(Rfc6265CookieProcessor.java:115)
org.apache.catalina.connector.Response.generateCookieString(Response.java:1019)
org.apache.catalina.connector.Response.addCookie(Response.java:967)
org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:386)
com.sadhu.cookieEg.cookieTest.doPost(cookieTest.java:50)
com.sadhu.cookieEg.cookieTest.doGet(cookieTest.java:58)
javax.servlet.http.HttpServlet.service(HttpServlet.java:635)
javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
Note The full stack trace of the root cause is available in the server logs.
报错原因:
这个版本的tomcat不能处理特殊符号。32在ASCII编码中恰好是空格
解决办法
转码,转成URL编码,用的时候再转回来
String value = "a b";
//URL编码
value = URLEncoder.encode(value,"utf-8");
//URL解码
value = URLDecoder.decode(value,"utf-8");