本地测试通过的程序部署到测试环境遇到一个问题,如果登陆名称为中文时将引发如下所示的异常,而英文字母或者数字的登陆名称则是正常的,异常信息如下:
java.lang.IllegalArgumentException: Control character in cookie value or attribute. at org.apache.tomcat.util.http.CookieSupport.isV0Separator(CookieSupport.java:155) at org.apache.tomcat.util.http.Cookies.processCookieHeader(Cookies.java:323) at org.apache.tomcat.util.http.Cookies.processCookies(Cookies.java:157) at org.apache.tomcat.util.http.Cookies.getCookieCount(Cookies.java:98) at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:913) at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:683) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:400) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:964) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:515) at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:304) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)
根据上述异常提示检查代码,在本地重复测试了N次,发现一切正常,异常始终无法在本地重现,后来才发现测试服务器环境与本地开发环境不一样,测试服务器Tomcat为7.0版本,而本地开发环境tomcat为6.0,环境不统一就会出现各种千奇百怪的异常,在此提醒大家开发环境、测试、正式环境软件版本一定要统一!!!
还上Tomcat7之后再次测试,异常终于重现,通过调试发现由于在登陆的时候需要使用Cookie来保存用户的登陆信息,而Tomcat7中cookie对中文的支持不够好,直接将中文字符的登陆名写入cookie时会引发异常,所以需要先转码,才不会出现上述的异常。
正常写入不算完事,因为此时后台解析cookie值的代码取到的值是乱码,使用cookie是无法登陆的;这就需要在后台验证cookie登陆时,得先将取得到的cookie值转成UTF-8格式之后在对比数据库确认登陆信息是否正确。
相关推荐
由于原本把需要的数据存放到cookie中,但是cookie不能的key不能自动转译中文,出现乱码,后台服务器报错:Control character in cookie value or attribute.所以改为自定义map集合
在这个场景中,我们关注的是如何使用`httpclient`进行模拟登录并携带cookie来访问后续的URL。这个过程通常涉及到处理session和身份验证,对于开发需要登录功能的Web应用或自动化测试脚本尤其有用。 首先,`...
在本文中,作者提出了一个支持协作的基于属性访问控制(Cooperative Attribute-Based Access Control, 简称Coop-ABAC)机制。该机制将用户划分为不同的群体,并且每个用户都与一组属性相关联。通过基于属性的访问...
最新tomcat7+nginx/tengine+memcached共享session的jar包2016年12月自己更新使用,更新的jar包解决了tomcat7下attribute报错的问题,理论Tomcat8以上版本可用,请自己测试。 asm-5.1.jar kryo-4.0.0.jar kryo-...
在Laravel框架中,实体-属性-值(Entity-Attribute-Value,EAV)模型是一种非传统的数据库设计模式,常用于处理具有高度可扩展性的数据结构。这种模式允许动态地添加、修改和删除属性,而无需对数据库进行结构调整。...
In order to help mitigate the risk of cross-site scripting, a new feature has been introduced in Microsoft Internet Explorer 6 SP1. This feature is a new attribute for cookies which prevents them from...
在Web开发中,Cookie是一种广泛使用的机制,用于存储客户端状态信息。它们是服务器发送到用户浏览器并由浏览器保存的小型文本文件。在这个话题中,我们将深入探讨如何操作Cookie,自定义标签,以及如何定义EL...
这在云计算环境中尤为重要,因为云服务提供商经常需要根据用户属性来控制对数据的访问。 Ravi Sandhu教授在数据安全领域具有极高的权威,他提出了一系列关键的访问控制模型。他在2015年的新加坡亚洲计算机与通讯...
<attribute name="webrootdir" value="WebRoot"/> ``` 这里的关键是确保`context-root`属性值与新的项目名称一致。 **步骤3:解决“Tomcat JDK name”错误** 在解决了项目名称及部署路径的一致性问题之后,...
在.NET框架中,Attribute是一种元数据,用于向编译器、IDE、运行时环境等提供额外的信息。这些信息可以用来修饰类、接口、方法、属性等各种编程元素,从而实现特定的功能或扩展。AOP(面向切面编程)是一种编程范式...
2. **配置Tomcat7**:在Tomcat的`conf/context.xml`文件中,添加一个`Manager`元素,用于指定session的存储策略。如下所示: ```xml <!-- ... --> host="localhost" port="6379" password="your_redis_...
3. 属性长度(Attribute Value Length):属性长度规定了属性值数据的大小。在BLE中,通信的数据包大小有限制,因此属性值长度是通信协议设计时需要考虑的一个因素。 4. 属性权限(Attribute Permissions):属性...
在.NET框架中,属性(Attribute)是一种元数据,可以附加到程序元素,如类、方法、属性等,为编译器、运行时环境或其他工具提供额外的信息。它们是编程中的一个重要概念,允许开发者向代码中添加非执行性的描述性...
ControlCAN是一个专为CAN(Controller Area Network)通信设计的库,用于在Windows操作系统下进行CAN设备的控制和数据传输。`controlCAN.dll`是这个库的核心动态链接库文件,它包含了实现CAN通信所需的各种功能函数...
============================================ <br>Out of the box, Tomcat 5.5 requires the Java 2 Standard Edition Runtime Environment (JRE) version 5.0 or later. However, you can also run Tomcat...
在文章《Pedestrian Attribute Recognition with Graph Convolutional Network in Surveillance Scenarios》中,作者提出了一个基于图卷积网络(GCN)的新型模型。该模型主要分为两个部分:首先使用卷积神经网络...
Attribute在.NET编程中的应用是一个关键的概念,它允许程序员在代码中添加元数据,这些元数据可以为运行时环境提供额外的信息,或者影响程序的行为。在.NET框架中,Attribute不仅仅是一个关键字,而是一个类,它是...
在Web开发中,属性(Attribute)作为一项基础而重要的功能,被广泛应用于处理用户请求、数据传递以及页面跳转等场景中。本文将深入探讨Attribute的基本概念、作用及其具体使用方法。 #### 一、Attribute的基本概念 ...
在当前的IT领域,尤其是自然语言处理(NLP)与机器学习交叉的研究中,一个关键的议题是如何从大规模语料库中自动获取概念知识。一篇由Abdulrahman ALMUHAREB与Massimo POESIO合著的论文《基于属性与基于值的聚类评估...