zoukankan      html  css  js  c++  java
  • 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>






  • 相关阅读:
    2010.10.10 第九课 函数(二)(递归)(汉诺塔)
    2020.10.8第八课函数(一)(4种函数)
    2020.9.29 第七课 字符串函数与字符数组
    2020.9.26第六节课数组
    2020.9.22 第四课 运算符表达式和语句
    2020.9.19 第三课 字符串格式化输出与输入
    2020.9.17 第二课 C语言中数据类型 2,8,10进制转换 计算机内存数值存储方式(补码转换)
    2020.9.15 第一课,概念
    spring架构解析--入门(一)
    JAVA对象实例化方式总结
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6920333.html
Copyright © 2011-2022 走看看