java拦截器

本文介绍了Java三大器之一的拦截器。拦截器可动态拦截action调用,能在action执行前后执行代码或阻止其执行。实现时需定义类实现Interceptor接口或继承AbstractInterceptor,并在配置文件注册。还阐述了拦截器与Spring框架的结合,通过实现HanderInterceptorAdaper抽象类来实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java三大器之一 -拦截器

拦截器的定义

java里的拦截器是动态拦截action调用的对象。提供一种机制可以定义在action执行的前后执行的代码,也可以action执行前阻止其执行,同时提供了一种可以提取action中可重用部分的方式。在aop中拦截器用在某个方法或字段被访问之前,在拦截后在其之前或之后执行一些操作。

 

拦截器实现

定义一个java类,实现Interceptor接口,或者继承抽象类AbstractInterceptor

在配置文件中注册拦截器。

在需要action中引用上述定义的拦截器,如果定义为默认拦截器,不加特殊说明,所有action都会被这个拦截器拦截。

 

 

拦截器与框架的结合

1、拦截器和spring

在spring框架中,通过实现HanderInterceptorAdaper抽象类来实现拦截器,HanderInterceptorAdaper继承了抽象接口HanderInterceptorAdaper。

HandlerInterceptorAdaper代码

 

package org.springframework.web.servlet.handler;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import org.springframework.web.servlet.HandlerInterceptor;  
import org.springframework.web.servlet.ModelAndView;  
public abstract class HandlerInterceptorAdapter implements HandlerInterceptor{  
    // 在业务处理器处理请求之前被调用  
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception{  
        return true;  
    }  
    // 在业务处理器处理请求完成之后,生成视图之前执行  
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)  
      throws Exception{  
    }  
    // 在DispatcherServlet完全处理完请求之后被调用,可用于清理资源  
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)  
      throws Exception{  
    }  
}

拦截器的配置 <mvc:interceptors>
        <mvc:interceptor>
            <!-- 拦截所有的请求,这个必须写在前面,也就是写在【不拦截】的上面 -->
            <mvc:mapping path="/**" />
            <!-- 但是排除下面这些,也就是不拦截请求 -->
            <mvc:exclude-mapping path="/login.html" />
            <mvc:exclude-mapping path="/account/login.do" />
            <mvc:exclude-mapping path="/account/regist.do" />
            <bean class="com.msym.cloudnote.interceptors.SessionInterceptor" />
        </mvc:interceptor>

</mvc:interceptors>

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值