当前位置: 萬仟网 > IT编程>软件设计>设计模式 > Tomcat里面静态资源乱码怎么解决?比如引入layui的时候,layui的中文提示乱码,还有一系列静态资源中文乱码的完美解决方案

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

2020年12月30日  | 萬仟网IT编程  | 我要评论
如果在SSM里面,如果是你自己项目的web.xml里面没设置编码为UTF-8或者自己的静态资源编码对应不上响应的编码,这种简单的就不说了我之前用tomcat9老是发现layui里面的中文提示乱码,搞了半天没搞出来,明明文件编码是utf8,响应编码也是,为什么就会乱码呢?解决方案:找到本地tomcat所有的路劲,找到里面/conf/web.xml,找到default那个servlet<servlet> <servlet-name>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

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

  • 设计模式-工厂方法模式

    设计模式-工厂方法模式

    工厂方法(Factory Method)模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。核心工厂类不再负责产品的创建,这... [阅读全文]
  • Reactor模式

    Reactor模式

    什么是Reactor模式 Reactor模式是一种设计模式,它是基于事件驱动的,可以并发的处理多个服务请求,当请求抵达后,依据多路复用策略,同步的派... [阅读全文]
  • 设计模式六大原则:接口隔离原则

    接口隔离原则(Interface Segregation Principle): 1、客户端不应依赖它不需要的接口 2、类间的依赖关系应该建立在最小... [阅读全文]
  • 折腾Java设计模式之解释器模式

    折腾Java设计模式之解释器模式

    解释器模式 解释器模式是类的行为模式。给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这... [阅读全文]
  • (入门SpringBoot)SpringBoot加接口操作日志好方法(九)

    用Spring的切面去做,慕课网上的大神的小妙招,被我拷贝下来了。import org.aspectj.lang.JoinPoint; import... [阅读全文]
  • 设计模式之迭代器与组合模式(二)

    设计模式之迭代器与组合模式(二)

    在上次的文章中,我们通过层层引导,已经知道了迭代器模式的由来。现在我们再好好总结下。 关于 迭代器模式 ,你所需要知道的第一件事情,就是它依赖于一个... [阅读全文]
  • Java的反射技术

    1、Java 反射技术 Java反射技术应用广泛,它能够配置:类的全限定名、方法和参数,完成对象的初始化,甚至是反射某些方法。这样可以大大增强Jav... [阅读全文]
  • 行为模式之备忘录模式

    备忘录模式(Memento Pattern)又称为快照(Snapshot)模式或Token模式。 意思是:在不破坏封装性的前提下,捕获一个对象的内部... [阅读全文]
  • Spring Cloud Eureka 常用配置及说明

    配置参数 默认值 说明 服务注册中心配置 Bean类:org.springframework.cloud.netflix.eureka.server... [阅读全文]
  • 策略模式

    策略模式 一.所有算法都是完成相同的工作,只是具体实现不同,以相同的方式调用所有的算法,减少耦合,方便单元测试. 二.当客户端需要在不同时间应用不同... [阅读全文]
验证码:
Copyright © 2017-2021  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com