028-86922220

建站动态

根据您的个性需求进行定制 先人一步 抢占小程序红利时代

SpringMVC拦截器的基本使用方法

拦截器简介

创新互联公司专注于企业营销型网站建设、网站重做改版、贵港网站定制设计、自适应品牌网站建设、成都h5网站建设电子商务商城网站建设、集团公司官网建设、成都外贸网站制作、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为贵港等各大城市提供网站开发制作服务。

Spring MVC 中的拦截器(Interceptor)类似于 Servler 中的过滤器(Filter)。用于对处理器进行预处理和后处理。常用于日志记录、权限管理、性能监控、通用行为等。

拦截器的实现

Spring MVC 中的拦截器需要我们手动实现和配置。拦截器可以通过以下两种方式定义

HandleInterceptor 接口

我们主要讲解下实现 HandleInterceptor 接口来创建拦截器。HandleInterceptor 接口定义了三个方法,分别为 preHandle() , postHandle() , afterCompletion(),我们需要重写这三个方法,从而来实现我们定义拦截器的目的。

假设我们现在定义了两个拦截器,xml 配置文件中配置顺序如下内容如下:



 
 
 



 
 

那么这两个拦截器中的处理方法和请求的处理方法的顺序如下图:

Spring MVC拦截器的基本使用方法

实际应用举例

实现开发中,我们会要求一些页面需要登录后才能访问。未登录状态是无法得到访问权限的。这一小功能我们可以直接通过安全框架,类似 Spring Security 或者 shiro 来实现,不过我们现在利用 Spring MVC 这一功能来实现一下:

public class LoginInterceptor implements HandlerInterceptor {
 
 public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
  
  User user = (User) httpServletRequest.getSession().getAttribute("user");

  if (user == null) {
   // 用户未登录,重定向到登录页
   httpServletResponse.sendRedirect("/login");
   return false;
  }

  return true;
 }

 public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {
  
  }
 }

 public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

 }
}

我们还需要在 spring-mvc 中配置拦截器


 
  
  
  
  
 

相关配置说明:

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对创新互联的支持。


网页题目:SpringMVC拦截器的基本使用方法
文章URL:http://www.tsicrk.com/article/gophdj.html

其他资讯

让你的专属顾问为你服务

2.9816s