web项目jsp中无法引入js问题

今天突然遇到一个比较低级的错误,虽然不是大问题,但好记性不如烂笔头,(更何况我还没那么好的记性)以此来记录一下自己所踏过的坑,免得第二次遇到

项目中,在能正常启动的情况下,(不能启动的项目,肯定也遇不到这个问题了。)


因为jsp放到WEB-INF 下是为了防止别人不经过后台直接访问页面,但js ,css 和 image 是静态资源所以一般不用放在web-inf下。这个时候在jsp中引入js 一个不小心就出现问题了,下面是我在网上找的 和自己总结的一些引入js  的方法:

1.相对路径引入js文件:(以上图文件位置为例)

    一般相对路径引入js,是在js 和jsp 都在webroot 下的时候。当jsp跨越web-inf去引入web-inf外 ,webroot下的js时,会出现一定的问题。(假如在上图中webroot下model中有model.jsp,那么引入js时可以使用相对路径)访问路径为:localhost:8080/bc/model/model.jsp   ,引入代码如下:

2.绝对路径引入js

当访问action,通过后台返回到jsp时,这个时候就需要绝对路径了



这个路径看了又看还是没有发现哪里有了问题,后来通过页面查看路径直接访问js。这个时候是无法访问的报路径出错,在网上又看到了别人说可能是被拦截了,(恍然大悟,我在web.xml中写的是  / )url-pattern 填写的规则:

1:   *.do *.action       拦截以.do结尾的请求 (不拦截 jsp png jpg .js .css)

2:   /        拦截所有请求(不拦截.jsp) 建议使用此种 方式 (拦截 .js.css .png) (放行静态资源)

3:   /*       拦截所有请求(包括.jsp) 此种方式 不建议使用

我的web.xml文件:

        
		bc
		org.springframework.web.servlet.DispatcherServlet
		
			contextConfigLocation
			
			classpath:spring/springmvc.xml
		
		1
	
	
		bc
		 / 
	
  

我的web.xml 中使用的就是 /  ,所以能访问到jsp,但css js  都被拦截了,无法访问,

把 / 改为*.action  即可

问题解决!!




你可能感兴趣的:(错误心得,前段JS)