web.xml
<!-- log4j日志打印配置文件 --> <context-param> <param-name>log4jConfigLocation</param-name> <param-value>classpath:log4j.properties</param-value> </context-param> <!-- 不知道是什么鬼,解决项目启动时报错 --> <context-param> <param-name>spring.liveBeansView.mbeanDomain</param-name> <param-value>default</param-value> </context-param> <!-- 防止内存泄漏的监听器 --> <listener> <listener-class> org.springframework.web.util.IntrospectorCleanupListener </listener-class> </listener> <!-- 然后是filter --> <!-- 编码过滤器 --> <filter> <filter-name>characterEncodingFilter</filter-name> <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> <init-param> <param-name>encoding</param-name> <param-value>UTF-8</param-value> </init-param> <init-param> <param-name>forceEncoding</param-name> <param-value>true</param-value> </init-param> </filter> <filter-mapping> <filter-name>characterEncodingFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- 用户登录session过滤器 --> <filter> <filter-name>sessionFilter</filter-name> <filter-class>com.gonethen.utils.SessionFilter</filter-class> </filter> <filter-mapping> <filter-name>sessionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- springmvc主配置 --> <!-- 最后为controller加载成bean提供依赖注入 --> <servlet> <servlet-name>springmvc</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:springmvc.xml</param-value> </init-param> <load-on-startup>1</load-on-startup> <async-supported>true</async-supported> </servlet> <servlet-mapping> <servlet-name>springmvc</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>
springmvc.xml
<!-- 访问静态资源文件 --> <mvc:default-servlet-handler /> <mvc:resources location="/" mapping="/**/*.js"/> <mvc:resources location="/" mapping="/**/*.css"/> <mvc:resources location="/im/" mapping="/im/**"/> <mvc:resources location="/common/" mapping="/common/**"/> <!-- 配置视图解析器 --> <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <!-- 使用前缀和后缀 --> <property name="prefix" value="/WEB-INF"></property> <property name="suffix" value=".jsp"></property> </bean> <!-- 拦截器 --> <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.gonethen.utils.PermissionInterceptor"></bean> </mvc:interceptor> </mvc:interceptors>
项目结构
启动日志
login.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>LOGIN</title> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="format-detection" content="telephone=no"> <meta name="renderer" content="webkit"> <meta http-equiv="Cache-Control" content="no-siteapp" /> <link rel="alternate icon" type="image/png" href="<c:url value="/im/favicon.ico"/>"> </head> <body> <header> </header> <main> </main> <jsp:include page="/common/footer.jsp" flush="true" /> <script type="text/javascript" src="<c:url value="/js/login.js"/>"></script> </body> </html>footer.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <!DOCTYPE html> <html> <body> <footer class="am-footer am-footer-default"> </footer> <script type="text/javascript" src="<c:url value="/js/amazeui.dialog.min.js"/>"></script> <script type="text/javascript" src="<c:url value="/js/common.js"/>"></script> </body> </html>
https://developer.aliyun.com/ask/294735
看在你两个月没用啪啪啪的份上提醒你,你的静态资源配置太繁索,首先,前两个配置一样,
看我的配置简单一句话
registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/static/");
把你的静态资源组织放在同一个父目录里,一句话搞定就行, ######回复 @GONETHEN : 我这是代码配置,你是xml配置,同样的道理,因为你配置了 / 而其他filter也拦截 / 所以导致重复拦截,你把静态url拦截的 路径和普通的分开######那么请问这段代码应该放在哪个类里? registry又是什么东东? 我先自己查一查,还请明示######这配置 没什么毛病啊。你要问什么?是不是 PermissionInterceptor 拦截了你的静态资源? mvc:mapping path=/** , 额外添加需排除的资源路径 mvc:exclude-mapping path=######回复 @GONETHEN : spring mvc:resources 只是资源处理,并不是说用了它之后就不需要管了,尤其在自定义 Interceptor ,filter 的时候 要判断是否是资源请求。另外 如果你用 nginx 代理了静态资源,那可以不用再需要在 springMVC 中处理。。######不止PermissionInterceptor拦截了 还有sessionFilter也过滤了###### http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#mvc-caching-static-resources 说明了只是进行了缓存,并没有说明不拦截 ######好吧,谢谢大神指点 版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。