为什么以前写的 图书后台管理系统 的css样式加载不出来?

为什么以前写的 图书后台管理系统 的css样式加载不出来?

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


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

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

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


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

一直用的是谷歌浏览器,浏览器没变啊,而且清除浏览器缓存后,css样式还是加载不出来。

上网查了一下解决办法,把 <!DOCTYPE html> 这个表头去掉,但是登录表单怎么会跑到浏览器窗口的下面去了?

以前这个项目能正常显示。

正在回答 回答被采纳积分+1

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

3回答
提问者 电磁护盾 2020-04-28 11:23:58
package com.imooc1.web.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.annotation.WebFilter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.imooc1.domain.User;


@WebFilter("/AuthFilter")
public class AuthFilter implements Filter {

    public AuthFilter() {
        // TODO Auto-generated constructor stub
    }


	public void destroy() {
		// TODO Auto-generated method stub
	}

	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		// TODO Auto-generated method stub
		System.out.println("过滤器已生效");
		
		String str=((HttpServletRequest) request).getRequestURI().toString();
		System.out.println(str+"<————————");
		if(str.indexOf(".css")>0||str.indexOf(".jpg")>0||str.indexOf(".png")>0||str.indexOf("login")>0||str.indexOf("LoginServlet")>0||str.indexOf("UserService")>0||str.indexOf("CheckImgServlet")>0) {
			System.out.println("过滤器已生效A");
			chain.doFilter(request, response);
			return;
		}else {
		    User user= (User) ((HttpServletRequest) request).getSession().getAttribute("existUser");
		    if(user==null||"".equals(user)) {
		    	System.out.println("过滤器已生效B");
		    	// 未登录
		    	request.setAttribute("msg1", "用户未登陆");
		    	((HttpServletResponse)response).sendRedirect(((HttpServletRequest) request).getContextPath()+"/login.jsp");
		    	return;
		    }else {
		    	System.out.println("过滤器已生效C");
		    	chain.doFilter(request, response);
		    	return;
		    }
		}

	    
//		if(str.indexOf(".css")>0||str.indexOf(".jpg")>0||str.indexOf(".png")>0||str.indexOf("login")>0||str.indexOf("LoginServlet")>0||str.indexOf("UserService")>0||str.indexOf("CheckImgServlet")>0) {
//			System.out.println("过滤器已生效A");
//			chain.doFilter(request, response);
//			return;
//		}
//	    User user= (User) ((HttpServletRequest) request).getSession().getAttribute("existUser");
//	    if(user==null||"".equals(user)) {
//	    	System.out.println("过滤器已生效B");
//	    	// 未登录
//	    	request.setAttribute("msg1", "用户未登陆");
//	    	((HttpServletResponse)response).sendRedirect(((HttpServletRequest) request).getContextPath()+"/login.jsp");
//	    	return;
//	    }else {
//	    	System.out.println("过滤器已生效C");
//	    	chain.doFilter(request, response);
//	    	return;
//	    }
	}

	public void init(FilterConfig fConfig) throws ServletException {
		// TODO Auto-generated method stub
	}
}

那些都放行了,过滤器代码一直都是这么写的。 以前能正常显示css样式,代码一直没改过,现在用好几个浏览器试了一下,css样式都加载不出来。

但是把 <!DOCTYPE html> 这个表头注释掉,css样式就能显示了。可是登录页面的表单跑到浏览器窗口的靠下面的位置上了,但是其他页面还是正常的。

  • 提问者 电磁护盾 #1
    这个项目的代码没改过,以前可以正常加载css样式,现在却加载不了css样式。 现在这个项目的所有jsp页面只有注释掉 <!DOCTYPE html>,那个jsp页面的css样式才能加载出来。
    2020-04-28 11:28:12
  • 好帮手慕小脸 回复 提问者 电磁护盾 #2
    同学你好,很抱歉在之前的回答中提示同学判断位置有误,还望见谅~ 同学可以尝试在编码过滤器中增加判断,而不是过滤器中哦。修改后重启项目,这里需要清空缓存再加载 祝学习愉快~
    2020-04-28 16:34:58
好帮手慕小脸 2020-04-28 10:04:55

同学你好,建议同学更换为其他浏览器后再进行访问。查看是否还出现css样式加载不出来的情况。如果依然存在上述情况,老师猜测可能是css路径被拦截了,可以在编码过滤器中增加判断,对css,js,png等路径放行,代码如下:

HttpServletRequest req =(HttpServletRequest) request;
String url=req.getRequestURI();
if(url.indexOf(".css")>0||url.indexOf(".jpg")>0||url.indexOf(".png")>0) {
    chain.doFilter(request, response);
    return;
}

祝学习愉快~

提问者 电磁护盾 2020-04-27 23:32:04

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

但是其他项目的css样式还是能正常加载的,而且<!DOCTYPE html>也没去掉。

问题已解决,确定采纳
还有疑问,暂不采纳

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

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

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

在线咨询

领取优惠

免费试听

领取大纲

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