response.addCookie(cookie);报错分析

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);
%>
  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZhShy23

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值