`
desert3
  • 浏览: 2158903 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

本机、生产环境Tomcat乱码处理

 
阅读更多
项目由很多模块构成,且每个人负责自己的模块,并且由于历史原因,很多共通配置级的文件没有权限调整,因此不能照搬Tomcat全UTF-8配置的指南。

问题:
1,本地开发环境,只有Connector中的参数URIEncoding和UseBodyEncoding能影响HttpGet方式的编码,但是生产环境中,可以通过Filter修改。
  • 1.1 由于生产环境是Apache+Tomcat使用mod_jk来做负载,因此Connector使用了AJP/1.3协议,猜测由于协议不同导致的(HTTP/1.1 & AJP/1.3),调试,找原因,排除
  • 1.2,后来发现是生产环境Forward引起的,Forward前的参数解码参照的是Forward前项目的相关环境,而Forward后环境只影响HTTP GET方式提交的QueryString部分参数的解码【此时通过Filter设置的请求参数会影响到QueryString的解码,这与Forward前QueryString请求参数的解码是不同的】,POST提交的参数的解码只受Forward前环境的影响,
  • 1.3,从request第一次取值是会进行解码操作,通过在HttpServletRequest的相应方法中设置断点找到什么时候进行第一次解码

2,生产环境下,只有forward之前的上下文环境能影响POST提交参数的解码,forward之后的项目环境没有机会影响到(forward后,ApplicationHttpRequest的parsed是false,而内部参数RequestFacade的parsed是true【对应就是CoyoteRequest中的parsed是true】)
分享到:
评论

相关推荐

    详解Tomcat乱码与端口占用的解决方案

    Tomcat乱码问题通常出现在Web应用部署后,用户在客户端与服务器交互时,字符显示不正确的情况。这一般与编码设置有关,比如字符集设置不当可能会导致乱码。为了避免这种情况,开发者和系统管理员需要确保在Tomcat的...

    linux下java生成图片乱码问题.doc

    在Linux环境下,使用Java生成包含中文的图片时,经常遇到一个常见的问题——中文字符显示为乱码。这个问题的根源在于Linux系统默认的字体库中可能缺少支持中文的字体,因此在渲染中文字符时无法正确显示。针对这个...

    解决开发中乱码方案

    ### 解决开发中乱码方案 #### 背景与问题描述 在Web开发过程中,中文乱码问题一直是困扰开发者的一大难题。特别是在处理用户输入、数据库读取等环节时,字符编码不一致很容易导致页面显示异常,使得用户体验大打...

    JSP+Tomcat安装及配置图文教程详解

    - **修改context.xml**: 将`<Context>`标签设置为`<Context reloadable="true">`,允许在不重启服务器的情况下动态加载更改,适用于开发环境,但在生产环境中应设为`false`以提高性能。 #### 结论 搭建JSP+Tomcat...

    linux安装nginx和tomcat

    ### Linux下安装Nginx与Tomcat集群 在Linux环境下部署Web应用时,通常会用到Nginx作为反向代理...这样的架构非常适合于生产环境中的高并发场景。此外,通过配置JVM Route属性,可以进一步提高系统的稳定性和可维护性。

    java中文乱码终极处理方案.docx

    Java中文乱码问题一直是开发者们面临的一大挑战,无论是早期的JSP、STRUTS,还是现在的AJAX,乱码问题始终困扰着...在实践中,还应注意在开发环境和生产环境中保持一致的编码设置,避免因环境差异导致的乱码问题。

    中文乱码.docx

    4. **环境一致性**:为了保持系统的一致性和稳定性,建议在所有相关的开发、测试及生产环境中均进行相同的配置更改。 综上所述,通过正确设置`file.encoding`参数为UTF-8,可以在很大程度上解决由字符编码不一致...

    解决Linux下Tomcat向MySQL插入数据中文乱码问题

    - 在进行跨平台部署时,必须确保所有环境下的字符编码一致性,包括开发环境、测试环境和生产环境。 - 对于Web应用,确保服务器(如Tomcat)和Web框架(如SSM)的字符编码配置正确,特别是过滤器设置,以处理HTTP请求...

    java+tomcat+eclips配置[整理].pdf

    但在生产环境中,考虑到性能因素,通常会将`reloadable`属性设为`false`,以减少不必要的资源消耗。此外,Tomcat还可以与其他服务器(如Apache HTTP Server)集成,以实现更复杂的部署需求。 总结起来,Java+Tomcat...

    jsp传值本地无乱码测试机出现乱码问题解决

    - **测试**:在不同的环境(开发环境、测试环境、生产环境)中对Web应用进行充分测试,确保在各种环境下均无乱码出现。 - **监控**:部署监控日志,记录异常情况,特别是字符编码相关的错误。 - **文档**:编写清晰...

    java中中文出错如何改正??

    这种方法适用于某些特殊场景下的临时解决方案,但在生产环境中并不推荐使用,因为它可能导致不必要的性能开销。 #### 三、总结 综上所述,解决Java程序中的中文乱码问题主要有两种途径:一是通过设置HTTP请求的...

    RedHat-Linux上部署javaweb项目.doc

    然而,需要注意的是,防火墙的关闭可能会影响系统的安全性,因此在生产环境中应谨慎处理,考虑配置防火墙规则来允许特定端口的通信。 接下来,文档提到了MySQL数据库的管理。在Linux环境下,MySQL的安装路径通常是`...

    Tomcat部署时war和war exploded区别及问题汇总

    如果是在生产环境中部署稳定的Web应用程序,推荐使用WAR模式;而在开发阶段,如果需要频繁修改和测试,那么使用WAR Exploded模式更为合适。 总之,理解WAR和WAR Exploded这两种部署模式的区别,将有助于开发者更加...

    javaEE教程实用版

    此外,修改`context.xml`中的`reloadable`属性,可以控制Tomcat是否在文件更改后自动重新加载Web应用,这对于开发阶段非常有用,但在生产环境中可能会影响性能,因此通常会设置为`false`。 配置`tomcat-users.xml`...

    详细的struts2知识

    此外,`context.xml`可以设置`reloadable="true"`使服务器在文件更改后自动重启,但需要注意在生产环境中应移除这一设置。同时,可以在`tomcat-users.xml`中添加管理员账户。 在Windows环境下搭建Struts2,需要正确...

    javaweb,标签库,函数库,数据库连接池实例分享.pdf

    在`context.xml`文件中,我们可以配置应用的上下文(Context)属性,例如`reloadable="true"`使Tomcat在检测到web.xml变化时自动重新加载应用,方便开发阶段调试,但在生产环境中通常应设为`false`以提高稳定性。...

    ueditor1.4.3jsp utf-8版配置使用教程

    对于生产环境,还需要考虑性能优化和安全性问题。例如,限制上传文件类型、大小,防止XSS攻击,以及对上传的文件进行重命名,避免路径遍历攻击。 通过以上步骤,你应该能够成功配置并使用ueditor1.4.3 jsp utf-8版...

Global site tag (gtag.js) - Google Analytics