SpringMVC如何实现一个拦截器功能

  介绍

本篇文章为大家展示了SpringMVC如何实现一个拦截器功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>拦截器的实现

1,编写拦截器类实现HandlerInterceptor接口。

2,将拦截器注册进SpringMVC框架中,

3,配置拦截器的拦截规则。

<强>其他实现方法

WebRequestInterceptor接口:

与上一个的区别是参数区别和prehandle的方法没有返回值。没有上一个功能全,因此常用第一个。

<强>拦截器的使用场景

处理所有请求共性问题:

1,乱码问题:用请求,响应参数去设置编码;

2,解决权限验证问题(是否登陆,取会话对象查看),

<强>拦截器与过滤器的区别

1,拦截器拦截依赖于框架容器,基于反射机制,只过滤请求;

2,过滤器过滤依赖于Servlet容器,基于回调函数,过滤范围大;

例子

进口javax.servlet.http.HttpServletRequest;
  进口javax.servlet.http.HttpServletResponse;
  进口org.springframework.web.servlet.HandlerInterceptor;
  进口org.springframework.web.servlet.ModelAndView;
  
  公共类TestInterceptor实现HandlerInterceptor {/* *
  *返回值说明是否需要将当前的请求拦截下来
  *错误:请求将被终止
  *:请求会被继续运行
  *对象处理程序表示的是被拦截的请求的目标对象
  */@Override
  公共布尔preHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序)
  抛出异常{
  System.out.println (“TestInterceptor.preHandle ()“);
  返回true;
  }/* *
  * modelAndView:
  *可以通过modelAndView参数改变显示的视图,或者修改发往视图的方法
  */@Override
  公共空白postHandle (HttpServletRequest请求,HttpServletResponse响应对象处理程序,
  {ModelAndView ModelAndView)抛出异常
  System.out.println (“TestInterceptor.postHandle ()“);
  
  }/* *
  *在视图加载完毕之后调用
  *常用于作于资源的销毁,流等
  *类似于析构函数
  */@Override
  公共空间afterCompletion (HttpServletRequest请求,HttpServletResponse响应、对象处理程序异常交货)
  抛出异常{
  System.out.println (“TestInterceptor.afterCompletion ()“);
  }
  }
  
  

注册方式:

在springmvc的Dispatcherservlet配置文件中加入拦截器代码;

& lt; !——注册拦截器——比;   & lt; mvc: interceptors>   & lt; !——单个拦截器:设置具体的拦截路径——比;   & lt; mvc: interceptor>   & lt; mvc:=映射路径“/课程/view2/*“/比;   & lt; bean类=癱om.cc.mvcdemo.interceptor.TestInterceptor"祝辞& lt;/bean>   & lt;/mvc: interceptor>      & lt; !——第二种方式:拦截经过当前Dispatcherservlet的所有请求——比;   & lt; bean类=癱om.cc.mvcdemo.interceptor.TestInterceptorTwo"祝辞& lt;/bean>      & lt;/mvc: interceptors>

上述内容就是SpringMVC如何实现一个拦截器功能,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

SpringMVC如何实现一个拦截器功能