码迷,mamicode.com
首页 > 编程语言 > 详细

spring拦截器的定义

时间:2015-08-03 16:33:35      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

(一)、拦截器的定义

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

 

spring拦截器的定义

标签:

原文地址:http://www.cnblogs.com/googlemeoften/p/4699299.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!