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   ,引入代码如下:

<script src="../js/jquery-1.11.0.min.js"></script>

2.绝对路径引入js

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

<script src="<%=basePath%>js/jquery-1.11.0.min.js"></script>

<script src="${pageContext.request.contextPath }/js/jquery-1.11.0.min.js"></script>


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

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

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

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

我的web.xml文件:

        <servlet>
		<servlet-name>bc</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<init-param>
			<param-name>contextConfigLocation</param-name>
			<!-- 此处不配置 默认找 /WEB-INF/[servlet-name]-servlet.xml -->
			<param-value>classpath:spring/springmvc.xml</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>bc</servlet-name>
		<url-pattern> / </url-pattern>
	</servlet-mapping>
  

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

把 / 改为*.action  即可

问题解决!!




  • 14
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值