博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
spring拦截器(interceptor)简介
阅读量:6516 次
发布时间:2019-06-24

本文共 2076 字,大约阅读时间需要 6 分钟。

1. 拦截器用途

  (1)拦截未登录用户直接访问某些链接

  (2)拦截日志信息

  (3)拦截非法攻击,比如sql注入

2. 涉及jar、类

  (1)spring-webmvc.jar

  (2)HandlerInterceptor(org.springframework.web.servlet:接口)、

      AsyncHandlerInterceptor(org.springframework.web.servlet:接口)、 

      HandlerInterceptorAdapter(org.springframework.web.servlet.handler.HandlerInterceptorAdapter:抽象类)

3.业务类

  (1)实现(implements) 实现HandlerInterceptor接口或者子接口

  (2)继承(extends) 继承HandlerInterceptor接口子类(抽象类)

  (3)涉及的方法

      preHandle、postHandle、afterCompletion

4.测试代码

LoginInterceptor

1 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler throws Exception { 2   LOGGER.info("--------preHandle-------" + request.getRequestURI()); 3   HttpSession session = request.getSession(); 4   String login_account = String.valueOf(session.getAttribute(CommonConstants.SESSION_KEY+session.getId())); 5   if(!request.getRequestURI().contains("/baselogin/")){ 6     if (StringUtils.isBlank(login_account) || "null".equalsIgnoreCase(login_account)) { 7       response.sendRedirect("/baselogin/loginPage.htm"); 8       return false; 9     }10   }11   return true;12 }13 14 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)throws Exception {15   LOGGER.info("--------postHandle-------" + request.getRequestURI());16 }17 18 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {19   LOGGER.info("--------afterCompletion-------" + request.getRequestURI());20 }21 22 public void afterConcurrentHandlingStarted(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {23   LOGGER.info("--------afterConcurrentHandlingStarted-------" + request.getRequestURI());24 }

执行顺序:preHandle -> controller -> postHandle -> afterCompletion

配置:

      
      
     -->

 

转载于:https://www.cnblogs.com/niejianqiang/p/6892127.html

你可能感兴趣的文章
区域生长算法 C++实现
查看>>
数据分析-从入门到崩溃
查看>>
web.xml 中的listener、 filter、servlet 加载顺序
查看>>
MyBatis原理简介和小试牛刀
查看>>
js部分基础
查看>>
Docker 常用基础命令
查看>>
脏读,幻读,不可重复读解释和例子
查看>>
Day02 数值运算&条件判断
查看>>
Tomcat指定(JDK路径)JAVA_HOME而不用环境变量
查看>>
Bluemix专属版本落地中国 开放物联网和认知计算能力
查看>>
汤姆大叔的6道javascript编程题题解
查看>>
【世界知名量子科学家加盟阿里】施尧耘出任阿里云量子技术首席科学家
查看>>
DataCore对外出售其虚拟化软件产品
查看>>
说说云计算与移动管理
查看>>
T-Mobile美国使用28GHz频段测试5G
查看>>
如何缓解影子云服务安全风险?
查看>>
Bossies 2016:最佳开源大数据工具
查看>>
银行卡信息安全事件频发 互联网站成数据泄露"重灾区"
查看>>
云服务器 ECS 使用OpenAPI管理ECS:使用OpenAPI弹性创建ECS实例
查看>>
象云2.0产品发布暨国产操作系统首次入驻公有云
查看>>