欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Tomcat里面静态资源乱码怎么解决?比如引入layui的时候,layui的中文提示乱码,还有一系列静态资源中文乱码的完美解决方案

程序员文章站 2022-06-10 14:45:17
如果在SSM里面,如果是你自己项目的web.xml里面没设置编码为UTF-8或者自己的静态资源编码对应不上响应的编码,这种简单的就不说了我之前用tomcat9老是发现layui里面的中文提示乱码,搞了半天没搞出来,明明文件编码是utf8,响应编码也是,为什么就会乱码呢?解决方案:找到本地tomcat所有的路劲,找到里面/conf/web.xml,找到default那个servlet default<...

如果在SSM里面,如果是你自己项目的web.xml里面没设置编码为UTF-8或者自己的静态资源编码对应不上响应的编码,这种简单的就不说了

我之前用tomcat9老是发现layui里面的中文提示乱码,搞了半天没搞出来,明明文件编码是utf8,响应编码也是,为什么就会乱码呢?

解决方案:

找到本地tomcat所有的路劲,找到里面/conf/web.xml,找到default那个servlet

<servlet>
        <servlet-name>default</servlet-name>
        <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <init-param>
            <param-name>listings</param-name>
            <param-value>false</param-value>
        </init-param>
        <!--添加上这个,默认是没有这个的-->
        <init-param>
            <param-name>fileEncoding</param-name>
            <param-value>UTF-8</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

解释:

1. 默认没有指定字符编码,需要指定字符编码(注意:是tomcat下面的web.xml,不是你自己项目的web.xml)

有人可能好奇,这个default是啥哦?

我们如果在自己项目的web.xml里面配置了url-pattern为 / ,就代表:我们会把我们所有的请求给DispatcherServlet处理,包括静态和动态的,我们会发现静态的请求404,动态的没问题

因为 DispatcherServlet 根本没有处理静态资源的能力,然后我们如何解决?

找到springmvc.xml的配置文件添加 : <mvc:default-servlet-handler/> (加了这个配置必须添加   <mvc:annotation-driven/>因为这个配置和RequestMapping会有冲突,添加它了可以解决)

<mvc:default-servlet-handler/> 这个注解创建DefaultServletRequestHandler来处理静态资源,这个DefaultServletRequestHandler类似于我们自己写的Controller, 把静态资源交给tomcat/conf/web.xml里面的defaultServlet处理

所以,因为这个defaultServlet没指定编码,所以静态资源会乱码。

本文地址:https://blog.csdn.net/String_name_TT/article/details/111994407