SpringMVC添加拦截器后静态资源处理
2016-10-25 12:41
513 查看
web.xml配置(感觉不是太好):
2.mvc配置文件(有时不起作用):
3.拦截器过滤
相应的类:
MyWebRequestInterceptor
4.过滤器处理
<servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/assets/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/data/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/images/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>default</servlet-name> <url-pattern>/css/*</url-pattern> </servlet-mapping>
2.mvc配置文件(有时不起作用):
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory --> <resources mapping="/static/**" location="/static/" />
3.拦截器过滤
<!-- SpringMVC拦截器 --> <interceptors> <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 --> <beans:bean class="com.wlyouxian.manager.support.MyInterceptor"> <beans:property name="uncheckUrls"> <!-- 此处排除以下地址 --> <beans:list> <beans:value>/index</beans:value> <beans:value>/login</beans:value> </beans:list> </beans:property> </beans:bean> <interceptor> <!-- 定义在mvc:interceptor下面的表示是对特定的请求才进行拦截的,此处拦截所有请求 --> <mapping path="/**"/> <beans:bean class="com.wlyouxian.manager.support.MyWebRequestInterceptor"/> </interceptor> </interceptors>
相应的类:
package com.sun4j.manager.support; import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import com.wlyouxian.manager.entity.Account; public class MyInterceptor implements HandlerInterceptor { private static final Logger logger = LoggerFactory.getLogger(MyInterceptor.class); /** * 免登入 免检查地址 */ private List<String> uncheckUrls; public void setUncheckUrls(List<String> uncheckUrls) { this.uncheckUrls = uncheckUrls; } @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { String requestUrl = request.getRequestURI(); String contextPath = request.getContextPath(); requestUrl = removeStart(requestUrl, contextPath); if (requestUrl.indexOf(".") != -1) { return true; } if(!uncheckUrls.contains(requestUrl)) { HttpSession session = request.getSession(); Account account = (Account) session.getAttribute(SessionConstant.USER_SESSION_KEY); if(account == null) { response.sendRedirect(contextPath + "/" + "index"); logger.info("----------------用户未登录--------------"); return false; } } return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } public static String removeStart(String str, String prefix) throws Exception { if (null == str) return null; if ("".equals(str.trim())) return ""; if (null == prefix || "".equals(prefix)) return str; if(str.startsWith(prefix)) { return str.substring(prefix.length(), str.length()); } throw new Exception(str + " 没有按指定字符串" + prefix + "开头"); } }
MyWebRequestInterceptor
package com.sun4j.manager.support; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.ui.ModelMap; import org.springframework.web.context.request.WebRequest; import org.springframework.web.context.request.WebRequestInterceptor; public class MyWebRequestInterceptor implements WebRequestInterceptor{ private static Logger logger = LoggerFactory.getLogger(MyWebRequestInterceptor.class); @Override public void preHandle(WebRequest request) throws Exception { logger.info("------------MyWebRequestInterceptor-------------"); } @Override public void postHandle(WebRequest request, ModelMap model) throws Exception { } @Override public void afterCompletion(WebRequest request, Exception ex) throws Exception { } }
4.过滤器处理
相关文章推荐
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式方法
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式方法
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式
- SpringMVC 拦截器不拦截静态资源的三种处理方式方法
- SpringMVC添加spring-security静态资源加载问题
- 15. SpringMVC 执行定时任务,处理静态资源,配置视图解析器
- springMVC对静态资源访问的处理
- springmvc 拦截器拦截静态资源
- SSM框架 springMVC对静态资源访问的处理
- SpringMVC处理静态资源
- 详解springmvc拦截器拦截静态资源
- springMVC学习笔记---day04-上传图片、JSON转对象、校验、全局异常、拦截器、静态资源
- springMVC处理静态资源——jquery文件配置正确访问不到404错误信息