Tomcat中Html不显示css,汉字乱码

6 篇文章 0 订阅

昨天(1024程序员节),debug了大半天,很难受…

起因:

写一个html静态页面,一直没开服务器,基本写完了开服务器测试,就崩溃了:本地打开正常,但在Tomcat上面,css不显示,中文字体乱码(u8,变成了,big5)。
本地打开:在这里插入图片描述

Tomcat上:在这里插入图片描述

尝试:

问了一大圈,可是我该编码的都弄了啊。
html:
在这里插入图片描述
Filter:
在这里插入图片描述
Project Settings:
在这里插入图片描述
Html文件的:
在这里插入图片描述

解决:

一直到一个学长,让我尝试重建项目,莫名其妙解决了,所以才想是不是Tomcat缓存问题。因为太晚了,就去睡觉了,结果…
在这里插入图片描述

最终解决了一半:

今早起来,又出问题了,同样,一模一样的问题,查阅了一些博客,找到一个解决乱码的方法,打开Tomcat安装目录的bin目录下的catalina.bat,修改 (大概在211行):

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS%"

set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF8 -Dsun.jnu.encoding=UTF8"

现在得到的情况:
本地:
在这里插入图片描述

Tomcat:
在这里插入图片描述
没错,css还是无法加载…
之后又找了一大圈,发现问题出在过滤器,我把过滤器关了,就有css,不关,即使做最简单的处理,也是没有css。
原来的代码(没有css):

		req.setCharacterEncoding("utf-8");
        rep.setContentType("text/html;charset=utf-8");
        rep.setCharacterEncoding("utf-8");
        filterChain.doFilter(req, rep);

改了之后(还是没有):

		HttpServletRequest request = (HttpServletRequest) req;
        HttpServletResponse response = (HttpServletResponse) rep;
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html;charset=utf-8");
        response.setCharacterEncoding("utf-8");
        String requestURI = request.getRequestURI();

        if (requestURI.contains("s/") ||
                requestURI.contains("/js/") ||
                requestURI.contains("/fonts/") ||
                requestURI.contains("/img/") ||
                requestURI.contains("/images/") ||
                requestURI.contains("/error/")) {
            filterChain.doFilter(request,response);
            return;
        }

有css:

//@WebFilter("/*")

没错,只要把过滤器搞没掉,就有css了,实在是不知道有什么其他的方法,有知道的小伙伴可以在评论区跟我讲下,枯了。在这里插入图片描述

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在Windows,如果Tomcat访问时出现乱码,并且无法显示文,可以尝试以下几种解决方法: 1. 修改Tomcat的server.xml配置文件:在Connector节点添加URIEncoding="UTF-8"属性,例如: ``` <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" /> ``` 然后重启Tomcat。 2. 设置系统环境变量:在系统环境变量添加一个名为JAVA_TOOL_OPTIONS的变量,值为-Dfile.encoding=UTF-8,并重启Tomcat。 3. 在项目的web.xml配置文件添加字符编码过滤器:在web.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> ``` 这样可以确保所有请求都使用UTF-8编码。 4. 如果使用的是JSP页面,可以在JSP文件的头部添加以下代码,指定页面编码: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> ``` 或者可以在web.xml添加以下配置: ``` <jsp-config> <jsp-property-group> <url-pattern>*.jsp</url-pattern> <page-encoding>UTF-8</page-encoding> </jsp-property-group> </jsp-config> ``` 尝试以上方法后,重新启动Tomcat,看看是否能够正常显示文了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值