sevlet中加过滤器后无法显示css样式
-
我们在JavaWeb项目中写HTML页面时,当我们加入过滤器后,会出现html页面上css样式无法显示的问题
-
我们过滤器中web.xml文件:
<filter>
<filter-name>Filter01</filter-name>
<filter-class>com.wdhcr.filter.Filter01</filter-class>
</filter>
<filter-mapping>
<filter-name>Filter01</filter-name>
<url-pattern>*</url-pattern> <!-- s 这是设置要过滤的路径,这样设置就是过滤所有-->
</filter-mapping>
这样就可能会把从外部引入的css,js,img过滤掉。无法显示
-解决方法:
- 1,xml文件中,设置具体要过滤的文件。
- 2,可以在过滤器中添加一下代码
HttpServletRequest Request = (HttpServletRequest) servletRequest;
//获取它的请求路径
String requestURI = Request.getRequestURI();
//当检测到是以css后缀名结尾的时,直接放行
if(requestURI.contains(".css")) {
filterChain.doFilter(servletRequest, servletResponse);
}
//其他类型文件进行过滤
servletRequest.setCharacterEncoding("utf-8");
servletResponse.setContentType("text/html;charset = utf-8");
servletResponse.setCharacterEncoding("utf-8");
filterChain.doFilter(servletRequest,servletResponse);
这样我们就可以解决css样式无法显示 的问题,同样也可以解决img,js,无法引入的问题