将eclipse下的jsp工程文件从windows移到ubuntu下时,部分css和js失效。

        最近在逐步使用ubuntu来替代windows,因此要将以前的一些代码移植到ubuntu系统下,在将eclipse下的jsp工程文件移植时,出现了问题,编译能通过,没问题,可是在浏览器中显示的时候,网页布局是乱的,很多css和js文件没有呈现。
        先F12看看加载项没有有出问题,没问题,那些未能显示的css和js文件都顺利加载了的。
        会不会是ubuntu系统的问题?于是重新创建一个新的web工程项目,导入了一些别的js、css,发现这些js、css都能正常运行。
        那会不会是工程文件中有什么配置有问题,于是再创建一个新的web工程文件,把原来的src和jsp、css、js等东西一股脑放进去,编译,还是没有效果。
        那看看加载的css和js的内容吧,没准是没加载完整呢?点开一看,立马觉得不对劲。
在这里插入图片描述
        不应该是五颜六色的吗?
        感觉是出了问题,但不知道问题出在哪里,突然想起来,很久以前也出现过类似的问题,那次的原因是Filter作祟,这次会不会也是过滤器导致的?我这个页面中是加了过滤器的,于是,反正也没更明确的方法了,就把过滤器整个给删了,清理一下浏览器缓存,再编译一遍,正常。
在这里插入图片描述
这真是漂亮的色彩呀。
虽然问题定位在了过滤器上,但是究竟是过滤器的什么配置导致了问题的出现。于是我在这个工程文件下,重新创建了一个Filter,经过比对,发现是过滤器初始化时的写法不太一样。
我的过滤器的声明是这么写的

@WebFilter(filterName="LoginFilter",urlPatterns= {"/*"})

而自动创建的过滤器的声明是这么写的。

@WebFilter("/LoginFilter")

我将过滤器改成了下面这种写法,发现页面能正常显示了。urlPatterns= {"/*"},这句话意思是,所有以某某前缀为前缀的请求都拦下来。第一种写法默认全局拦截,而第二种写法默认全局不拦截。
问题还没有完全解决,还没弄明白为什么全局拦截,部分放行就会出问题,不过折中的做法是,改成全局放行,选择性的拦截。估计可能跟ubuntu和windows下的完全不同的文件系统有关。因此windows下没有问题,ubuntu下就行不通了。

发布了45 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/baidu_31788709/article/details/103283175
今日推荐