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>






  • 相关阅读:
    验证整数 Double 转 int 两种写法
    0 can't find referenced pointcut declarePointExpress
    nested exception is java.lang.IllegalArgumentException: Pointcut is not well-formed
    org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML doc
    嵌入式系统(胡威)2019年春第一次作业 参考答案
    PAT(B) 1021 个位数统计(Java)
    PAT(B) 1020 月饼(Java)
    PAT(B) 1019 数字黑洞(Java)
    PAT(B) 1018 锤子剪刀布(C:20分,Java:18分)
    PAT(B) 1017 A除以B(Java)
  • 原文地址:https://www.cnblogs.com/blfbuaa/p/6920333.html
Copyright © 2011-2022 走看看