本人作为一名卑微且喜欢划水的软件工程学子,在做SpringMVC框架项目的期末大作业时,发现了与jsp跳转和静态资源过滤的相关问题(静态资源无法加载即静态资源被拦截),并在网上做了搜索。
本文意在对静态资源无法调用的的解决方法做不完全整合,所有方法均来自网络,所有代码来自本人作业成功运行实例,侵权必删,欢迎指正和补充。
在jsp文件头部插入相对路径
<%
//获取项目的URL地址
String basePath = request.getScheme() + "://"+request.getServerName()+":"+request.getServerPort()+request.getcontextpath()+"/";
%>
在jsp中html部分引用处url加入 <%=basePath %>,如
<head>
<link href="<%=basePath %>assets/css/bootstrap.css" rel="stylesheet" />
</head>
<body>
<script src="<%=basePath %>assets/plugins/vegas/jquery.vegas.min.js"></script>
<script src="<%=basePath %>assets/plugins/jquery.easing.min.js"></script>
</body>
url引用还可使用${pageContext.request.contextpath}(记得加“/”)
<head>
<link href="${pageContext.request.contextpath}/assets/css/style.css" rel="stylesheet" />
</head>
<body>
<script src="${pageContext.request.contextpath}/assets/js/custom.js"></script>
</body>
此外对jsp的修改还有插入项目名称的方法,详见文章内的第二种https://blog.csdn.net/qq_40366444/article/details/88706739
Solution 2:对spring-mvc.xml进行修改
加载驱动
<!--加载springmvc特有的注解驱动-->
<mvc:annotation-driven></mvc:annotation-driven>
静态资源放行(全部放行)
<!--SpringMvc放行静态资源 css .jpg js..-->
<mvc:default-servlet-handler/>
静态资源解析处理(指定放行)
<mvc:resources location="/assets/js/" mapping="/js/**" />
<mvc:resources location="/assets/img/" mapping="/assets/img/**" />
<mvc:resources location="/assets/css/" mapping="/css/**" />
<mvc:resources location="/assets/plugins/" mapping="/plugins/**" />
Solution 3:对web.xml进行修改
加入以下代码
<!-- static resources -->
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.css</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.gif</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.jpg</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>default</servlet-name>
<url-pattern>*.js</url-pattern>
</servlet-mapping>
Solution 4:对web.xml进行修改
<build>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
以上就是本人经过本次作业总结的四种方法,希望能帮到有需要的人叭~