一针见血:如果有这个问题一定是你用了拦截器并且设置了响应格式为text/html;
- 方法一(我这里不奏效)而且我觉得不是根本的解决了问题
解决方法:把前端界面的<!DOCTYPE html>这个删掉
- 方法二(我学到了新的东西哦)
这里是我写的字符集格式控制的filter,配置为/*
.但是你的服务器端的css样式被加载的时候也会被过滤
,所以css文件也会被显示成html导致样式出不来.
方法详解 :
通过request的getHeader()可以获取请求头,请求头里包含了你请求文件的类型
.
那么问题就好办了,只需要判断,请求的是html还是css,然后对应设置响应文件类型
当然,我的项目里只有html类型,所以是以下的写法,如果你还有别的文件类型,还想让css正常显示,那么只需要只针对css请求做处理
if(request.getHeader().contains("text/css")) {
response.setContentType("text/css");
}
package com.homework.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class EncodingFilter implements Filter {
public void destroy() {
// TODO Auto-generated method stub
}
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
String contenType = req.getHeader("Accept");
System.out.println(contenType);
System.out.println("encoding filter " + req.getRequestURI() + "request");
req.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// response.setContentType(contenType == null ? "text/html;charset=utf-8" : contenType + ":charset=utf-8");
response.setContentType(contenType.contains("text/html") ? "text/html;charset=utf-8" : "text/css;charset=utf-8");
chain.doFilter(request, response);
System.out.println("encoding filter " + req.getRequestURI() + "response");
req.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
// response.setContentType(contenType == null ? "text/html;charset=utf-8" : contenType + ":charset=utf-8");
response.setContentType(contenType.contains("text/html") ? "text/html;charset=utf-8" : "text/css;charset=utf-8");
}
/**
* @see Filter#init(FilterConfig)
*/
public void init(FilterConfig fConfig) throws ServletException {
// TODO Auto-generated method stub
}
}