SSM框架中文乱码问题

转载:https://blog.csdn.net/qq_37230121/article/details/83269157

前提:在我们使用SSM框架搭建项目中,经常会出现前端界面往数据库插入中文显示???等乱码问题,解决思路如下

前端jsp界面保证字符编码为utf-8:
<%@ page language="java" contentType="text/html; charset=UTF-8" 
采用断点调试,观察在SpringMVC中是否能正常接收并显示中文参数,如果显示乱码,说明SpringMVC对接收的参数采取了自己默认的编码方式:ISO-8859-1
然后我们需要在web.xml配置文件中配置一个过滤器,将请求参数在SpirngMVC中的编码方式指定为utf-8:
     

   <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>forceRequestEncoding</param-name>
        <param-value>true</param-value>
        </init-param>
        <init-param>
        <param-name>forceResponseEncoding</param-name>
        <param-value>true</param-value>
        </init-param>
    </filter>
 
    <filter-mapping>
        <filter-name>encodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>


但是上述过滤器仅解决了post请求的乱码问题,为了解决get请求的乱码问题,我们需要在tomcat的配置文件server.xml中找到对应端口的定义处添加编码格式utf-8:

<Connector port="8080"  protocol="HTTP/1.1"
                       connectionTimeout="20000"
                       redirectPort="8443" 
                  URIEncoding="UTF-8"/>


最关键的点在这里:如果你是更改的tomcat安装目录的server.xml配置文件,那么在用eclipse运行项目时会发现配置没起作用,其实是因为eclipse在运行项目时是用的eclipse中配置的tomcat,那么问题就好解决了,打开eclipse中的tomcat配置文件,改为上述配置即可。 
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章