博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
解决Cookie乱码问题
阅读量:6154 次
发布时间:2019-06-21

本文共 2997 字,大约阅读时间需要 9 分钟。

写了一个cookie的定义和获取,结果我输入中文后,页面报错

报错信息如下:

type Exception reportmessage An exception occurred processing JSP page /demo1/page3.jsp at line 16description The server encountered an internal error that prevented it from fulfilling this request.exception org.apache.jasper.JasperException: An exception occurred processing JSP page /demo1/page3.jsp at line 1613:     14:     <%15:         Cookie cookie=new Cookie("message","涓枃");16:         response.addCookie(cookie);17:      %>18: 19: Stacktrace:    org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:575)    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:477)    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)root cause java.lang.IllegalArgumentException: Control character in cookie value or attribute.    org.apache.tomcat.util.http.CookieSupport.isHttpSeparator(CookieSupport.java:205)    org.apache.tomcat.util.http.CookieSupport.isHttpToken(CookieSupport.java:229)    org.apache.tomcat.util.http.ServerCookie.appendCookieValue(ServerCookie.java:185)    org.apache.catalina.connector.Response.generateCookieString(Response.java:1054)    org.apache.catalina.connector.Response.addCookie(Response.java:996)    org.apache.catalina.connector.ResponseFacade.addCookie(ResponseFacade.java:380)    org.apache.jsp.demo1.page3_jsp._jspService(page3_jsp.java:97)    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:439)    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395)    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:339)    javax.servlet.http.HttpServlet.service(HttpServlet.java:731)

解决方案:cookie也要转码的

定义一个cookie:

1 <%@page import="java.net.URLEncoder"%> 2 <%@ page language="java" contentType="text/html; charset=UTF-8" 3     pageEncoding="UTF-8"%> 4  5  6  7 
8 page3 9 10 11
12
13
14
15 <%16 //转码17 Cookie cookie=new Cookie("message",URLEncoder.encode("中文", "utf-8"));18 response.addCookie(cookie);19 %>20 21

page4.jsp(获取cookie)

1 <%@page import="java.net.URLDecoder"%> 2 <%@page import="java.net.URLEncoder"%> 3 <%@ page language="java" contentType="text/html; charset=UTF-8" 4     pageEncoding="UTF-8"%> 5  6  7  8 
9 page410 11 12 <%13 String text = request.getParameter("text");14 out.print("text------------->"+text);15 Cookie[] cookies=request.getCookies();16 if(cookies!=null){17 for(Cookie cookie:cookies){18 if(cookie.getName().equals("message")){19 //cookie解码20 out.print("cookie value------>"+URLDecoder.decode(cookie.getValue(), "utf-8"));21 }22 }23 %>24 25 26

 

转载地址:http://bnbfa.baihongyu.com/

你可能感兴趣的文章
Android JSON数据解析
查看>>
DEV实现日期时间效果
查看>>
java注解【转】
查看>>
centos 下安装g++
查看>>
下一步工作分配
查看>>
Response. AppendHeader使用大全及文件下载.net函数使用注意点(转载)
查看>>
Wait Functions
查看>>
jQuery最佳实践
查看>>
centos64i386下apache 403没有权限访问。
查看>>
jquery用法大全
查看>>
PC-BSD 9.2 发布,基于 FreeBSD 9.2
查看>>
css斜线
查看>>
Windows phone 8 学习笔记(3) 通信
查看>>
Revit API找到风管穿过的墙(当前文档和链接文档)
查看>>
Scroll Depth – 衡量页面滚动的 Google 分析插件
查看>>
Windows 8.1 应用再出发 - 视图状态的更新
查看>>
自己制作交叉编译工具链
查看>>
Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全
查看>>
[物理学与PDEs]第3章习题1 只有一个非零分量的磁场
查看>>
深入浅出NodeJS——数据通信,NET模块运行机制
查看>>