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>






  • 相关阅读:
    呵呵,庆祝偶的blog开张了~
    把.NET程序部署到没有安装.NETFramwork的机器上
    1842005 日记
    So In Love
    windows网络编程经典入门
    水木穿梭
    c++智能指针的使用,shared_ptr,unique_ptr,weak_ptr
    c++的左值(lvalue),右值(rvalue),移动语义(move),完美转发(forward)
    (一)深入理解JVM第三版JDK的发展历史
    处理在多参数情况下分页参数的完整性
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6920333.html
Copyright © 2011-2022 走看看