Maven +tomcat 插件 get方式乱码

项目:在maven+ssm

环境:jdk1.8+maven tomcat7插件

有两处中文乱码需要解决:

1、内部输出中文乱码,比如System.out.println("中国");结果控制台中文乱码

解决方法:pom加入以下内容

 

 
  1. <plugin>

  2. <groupId>org.apache.maven.plugins</groupId>

  3. <artifactId>maven-compiler-plugin</artifactId>

  4. <version>3.3</version>

  5. <configuration>

  6. <source>1.8</source>

  7. <target>1.8</target>

  8. <encoding>utf8</encoding>

  9. </configuration>

  10. </plugin>


2、中文参数乱码,比如地址请求http://localhost:9090/mavenssm/user/showUser?id=中国,后台获取的参数中文乱码,全是问号。。

解决方法:配置tomcat的参数

 

 
  1. <plugin>

  2. <groupId>org.apache.tomcat.maven</groupId>

  3. <artifactId>tomcat7-maven-plugin</artifactId>

  4. <version>2.2</version>

  5. <configuration>

  6. <port>9090</port>

  7. <path>/mavenssm</path>

  8. <uriEncoding>UTF-8</uriEncoding>

  9. <finalName>mavenssm</finalName>

  10. <server>tomcat</server>

  11. </configuration>

  12. </plugin>


configuration 部分,参数说明:

port----端口号

path---项目名称

uriEncoding----设置编码格式

finalName----不详

server---与启动项目的命令相关,此时启动命令是tomcat:run,如果此时配置的是tomcat7,则相关联命所有命令都需要修改为tomcat7,此时执行命令就是tomcat7:run

 

附上官网插件地址:http://tomcat.apache.org/maven-plugin.html

### 如何解决 Tomcat 9.0 中的中文乱码问题 #### 修改Tomcat默认语言环境 为了防止由于默认语言环境不同而导致的乱码,在`conf`目录下的`catalina.bat`文件中设置`LANG=zh_CN`,这有助于确保整个Tomcat服务的语言环境统一为中文环境[^1]。 #### 设置请求参数编码 针对请求参数可能出现的乱码情况,可以在web应用的部署描述符(web.xml)里加入如下过滤器配置来强制指定POST请求使用的字符集为UTF-8: ```xml <filter> <filter-name>encodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>encodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> ``` 对于GET请求,则需调整Tomcat自身的URI编码属性。编辑`server.xml`内的Connector标签,增加或修改URIEncoding="UTF-8"属性值[^2]。 #### 调整响应内容编码 为了避免响应内容产生的乱码现象,应该确认所有的JSP页面顶部均含有正确的page指令声明,指明所采用的内容类型及其对应的字符集,例如: ```jsp <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8的信息,可通过Java代码动态设定response.setContentType()方法实现这一点。 #### 配置IDEA开发环境中Tomcat的相关设置 在使用IntelliJ IDEA集成开发工具时,要特别注意项目内部以及外部依赖项的一致性。具体来说就是保证IDEA本身的控制台输出、源文件保存格式均为UTF-8;另外还需关注构建路径下META-INF/MANIFEST.MF清单文件内是否有Manifest-Version: 1.0\nSealed: false\nCreated-By: Apache Maven\nBuild-Jdk: 版本号\n这些必要的元数据说明,并且保持与实际编译环境相匹配[^3]。 #### 处理日志记录中的乱码 最后一步是对日志系统的优化。进入`$CATALINA_HOME/conf/logging.properties`位置找到并更改`.level=INFO`这一行之前添加一行新的定义:`java.util.logging.ConsoleHandler.encoding = UTF-8`,从而使得所有通过标准错误流打印出来的调试信息都能按照预期显示正常汉字而不是问号或其他异常符号[^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值