页面格式失效,CSS未载入

页面格式失效,CSS未载入

清除了一下浏览器缓存,现在CSS不能载入http://img1.sycdn.imooc.com//climg/5f12aab909b1d54b13540374.jpg

package com.imooc.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;

import javax.servlet.http.HttpServletResponse;


import com.imooc.domain.User;


public class AuthFilter implements Filter {


@Override

public void destroy() {

// TODO Auto-generated method stub


}


@Override

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)

throws IOException, ServletException {

HttpServletRequest req = (HttpServletRequest) request;

HttpServletResponse res = (HttpServletResponse) response;

User user = (User) req.getSession().getAttribute("existUser");

String reqURL = req.getRequestURI().toString();

// 设置不拦截的URL

String[] noURL = { "login", "login.jsp", ".js", ".css", ".png", ".jpg","LoginServlet","KaptchaServlet"};

for (String url : noURL)

if (reqURL.endsWith(url)) {

chain.doFilter(request, response);

return;

}

// 判断用户是否登录

if (user != null) {

chain.doFilter(request, response);

} else {

res.sendRedirect(req.getContextPath() + "/login.jsp");

}


}


@Override

public void init(FilterConfig filterConfig) throws ServletException {

// TODO Auto-generated method stub


}


}

网上搜索了一些答案,说是过滤器的问题,但是试验了一下,还是没解决

正在回答

登陆购买课程后可参与讨论,去登陆

4回答

同学你好,res.setContentType("text/html;charset=UTF-8");是设置响应的类型为text/html;charset=UTF-8。同学要设置响应的编码可以写:

res.setCharacterEncoding("UTF-8");

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

好帮手慕阿慧 2020-07-19 15:57:24

同学你好,建议同学重启电脑试试。

祝学习愉快~

  • 提问者 视线模糊 #1
    好像解决了,但是不知道是怎么解决的,重启后不行,我重新建了一个项目,Tomcat用了一下clean,project用了一下clean,注释掉了 res.setContentType("text/html;charset=UTF-8");这句,现在的显示好像可以了,再请问一下老师,注释掉这句的作用是什么?注释掉后会不会对页面的字符编码有影响?
    2020-07-19 16:36:10
好帮手慕阿慧 2020-07-19 10:04:14

同学你好,EncodingFilter过滤器的过滤路径为:/*。对页面所有请求进行了过滤,该过滤中将css文件的响应类型text/css设置成了text/html,所以页面会提示mime类型 "text/html"不是"text/css"。

同学应该去掉响应类型设置,如下:

http://img1.sycdn.imooc.com//climg/5f13a8f809c3869900000000.jpg

再清理一下Tomcat,如下:

http://img1.sycdn.imooc.com//climg/5f13a91809b1bef000000000.jpg

清理一下浏览器缓存或者换个浏览器访问试试。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 视线模糊 #1
    没效果啊。。。还是不能载入CSS
    2020-07-19 15:28:48
好帮手慕阿慧 2020-07-18 17:49:35

同学你好,

1、你的过滤器代码没有问题,不会拦截.css请求,如下:

http://img1.sycdn.imooc.com//climg/5f12c4c509ef8ff009590311.jpg

运行结果如下:

http://img1.sycdn.imooc.com//climg/5f12c515092acf2911300481.jpg

http://img1.sycdn.imooc.com//climg/5f12c53b096e4cd907370086.jpg

2、建议同学检查一下css文件引入是否错误,如下:

<link rel="stylesheet" href="css/add.css">

3、老师在另一个问答中回复你了哦,同学可参考这个问答修改

https://class.imooc.com/course/qadetail/241218

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

  • 提问者 视线模糊 #1
    我之前是这样引用的<link rel="stylesheet" href="css/login.css">,鼠标放上去有下划线可以点进去,后面我加了一个type="text/css",但是还是不行啊
    2020-07-18 19:04:36
  • 提问者 视线模糊 #2
    火狐浏览器上有这个报警MIME 类型 "text/html" 不是 "text/css",是什么意思,怎么处理喃
    2020-07-18 19:09:44
  • 提问者 视线模糊 #3
    package com.imooc.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; import javax.servlet.http.HttpServletResponse; import com.sun.net.httpserver.Filter.Chain; public class EncodingFilter implements Filter { @Override public void destroy() { // TODO Auto-generated method stub } @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest)request; req.setCharacterEncoding("UTF-8"); HttpServletResponse res = (HttpServletResponse)response; res.setContentType("text/html;charset=UTF-8"); chain.doFilter(request, response); } @Override public void init(FilterConfig arg0) throws ServletException { // TODO Auto-generated method stub } } 之前的老师让res.setContentType("text/html;charset=UTF-8");这个删掉再重启,但是也不行啊
    2020-07-18 19:11:29
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师