(一)、拦截器的定义
1、为什么需要拦截器:在做身份认证或者是进行日志的记录时,我们需要通过拦截器达到我们的目的
2、什么事拦截器:在AOP(Aspect-Oriented Programming)中用于在某个方法或字段被访问之前,进行拦截然后在之前或之后加入某些操作。拦截是AOP的一种实现策略
3、如何用拦截器:在spring中用拦截器需要实现HandlerInterceptor接口或者它的实现子类:HandlerInterceptorAdapter,同时在applicationContext.xml文件中配置拦截器
package edu.mybatis.interceptor; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; public class MyHandlerIntercepter implements HandlerInterceptor{ //进入handler之前 //身份认证,身份授权 public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception { System.out.println("lanjie=====1"); return true; } //进入handler之后,返回modelandview之前 //ModelAndView:将公用的模型数据(菜单导航)传到视图 public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3) throws Exception { System.out.println("lanjie=====1"); } //执行完handler之后 //统一异常处理,统一日志处理 public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3) throws Exception { System.out.println("lanjie=====1"); } }
4、配置applicationContext.xml文件
<!--拦截器 --> <mvc:interceptors> <!--多个拦截器,顺序执行 --> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="edu.mybatis.interceptor.HandlerIntercepter"/> </mvc:interceptor> </mvc:interceptors>
在这里<mvc:mapping path="...">表示你要拦截的文件路径,配置路径的时候需要注意:/**的意思是所有文件夹以及其子文件夹,而/*是所有文件夹,不包括子文件夹
时间: 2024-08-02 23:52:07