概述
HTTP Status 500 – Internal Server Error
Type 异常报告
消息 在 [27] 行处理 [/a03-1.jsp] 时发生异常
描述 服务器遇到一个意外的情况,阻止它完成请求。
Exception
org.apache.jasper.JasperException: 在 [27] 行处理 [/a03-1.jsp] 时发生异常
24: // 4.璁剧疆cookie鏈夋晥鏈�
25: cookie.setMaxAge(60*60*24*30);
26: // 5.淇濆瓨cookie
27: response.addCookie(cookie);
28: %>
29: <script type="text/javascript">window.location.href="a03.jsp"</script>
30: </body>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:625)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:514)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Root Cause
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:976)
org.apache.catalina.connector.Response.addCookie(Response.java:928)
org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:385)
org.apache.jsp.a03_002d1_jsp._jspService(a03_002d1_jsp.java:148)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:476)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:385)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:329)
javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
Note 主要问题的全部 stack 信息可以在 server logs 里查看
Apache Tomcat/9.0.19
java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value
[32]是空格,所以在代码里去除空格就行了。
// 1.设置编码
request.setCharacterEncoding("GB18030");
// 2.获取用户名
String user= URLEncoder.encode(request.getParameter("user"),"utf-8");
// 3.创建cookie
Cookie cookie=new Cookie("myCookie",user+"#"+new java.util.Date().toLocaleString());
// 4.设置cookie有效期
cookie.setMaxAge(60*60*24*30);
// 5.保存cookie
response.addCookie(cookie);
问题应该出在date上,要重新定义date的格式
<%
// 1.设置编码
request.setCharacterEncoding("GB18030");
// 2.获取用户名
String user= URLEncoder.encode(request.getParameter("user"),"utf-8");
// 3.创建cookie
// Cookie cookie=new Cookie("myCookie",user+"#"+new java.util.Date().toLocaleString());
//date 的值有空格,影响保存
// 3.1设置date
Date date = new Date();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
String time=simpleDateFormat.format(date);
// 3.2 创建cookie
Cookie cookie=new Cookie("myCookie",user+"#"+time);
// 4.设置cookie有效期
cookie.setMaxAge(60*60*24*30);
cookie.setPath("/");
// 5.保存cookie
response.addCookie(cookie);
%>
最后
以上就是机智流沙为你收集整理的response.addCookie(cookie);报错分析的全部内容,希望文章能够帮你解决response.addCookie(cookie);报错分析所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复