• springMVC之拦截器


    有两种方法配置spring的拦截器

    1. 实现接口: HandleInterceptor

    public class MyInterceptor1 implements HandlerInterceptor {
    
    	@Override
    	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object obj, Exception e) throws Exception {
    		System.out.println("最后运行。!!一般用于释放资源。。");
    	}
    
    	@Override
    	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object obj, ModelAndView model) throws Exception {
    		System.out.println("Action运行之后,生成视图之前运行!!");
    	}
    
    	@Override
    	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object obj) throws Exception {
    		System.out.println("action之前运行!

    !"); return true; // 继续运行action } }

    a)  preHandle

    该方法在action运行前运行。能够实现对数据的预处理。比方:编码、安全控制等。

    假设方法返回true,则继续运行action。

    b)  postHandle

    该方法在action运行后,生成视图前运行。在这里。我们有机会改动视图层数据。

    c)  afterCompletion

    最后运行。通经常使用于释放资源,处理异常。

    我们能够依据ex是否为空,来进行相关的异常处理。

    由于我们在平时处理异常时,都是从底层向上抛出异常。最后到了spring框架从而到了这种方法中。


    2. 继承适配器: HandleInterceptorAdapter

    public class MyInterceptor2 extends HandlerInterceptorAdapter {
    
    	@Override
    	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
    		System.out.println("MyInterceptor2.preHandle()");
    		return true; // 继续运行action
    	}
    
    }

    3. 配置user-servlet.xml

    方案1:

    <!-- 配置自己定义拦截器 -->
    <mvc:interceptors>
    	<bean class="com.zdp.interceptor.MyInterceptor1"></bean> <!-- 拦截全部的url!

    --> </mvc:interceptors>

    方案2:

    <!-- 配置自己定义拦截器 -->
    <mvc:interceptors>
    	<mvc:interceptor>
    		<mvc:mapping path="/user/add" /> <!-- 仅仅拦截加入用户 -->
    		<bean class="com.zdp.interceptor.MyInterceptor2"></bean>
    	</mvc:interceptor>
    </mvc:interceptors>






  • 相关阅读:
    目标检测评价指标
    DALSA相机SDK不完全教程
    windows 安装pycocotools
    keras第二课:后端函数
    Python中os.mkdir()与os.makedirs()的区别
    ARM知识
    神经网络结构
    PIL 中的 Image 模块
    Matplotlib使用
    keras第一课:Cifar分类
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6920333.html
Copyright © 2020-2023  润新知