spring拦截器的定义

(一)、拦截器的定义

  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="...">表示你要拦截的文件路径,配置路径的时候需要注意:/**的意思是所有文件夹以及其子文件夹,而/*是所有文件夹,不包括子文件夹

 

posted @ 2015-08-03 14:43  googlemeoften  阅读(881)  评论(3编辑  收藏  举报