SpringMvc拦截器

SpringMVC 中的拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。比如通过它来进行权限验证,或者是来判断用户是否登陆。
Spring MVC 的拦截器类似于Servlet中的拦截器!需要先定义一个类实现HandlerInterceptor接口。添加未实现的方法,在springmvc配置中配置,具体实现步骤如下:乱码过滤

package com.lx.controller;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyInterceptor implements HandlerInterceptor {
	/**
     * 该方法在目标方法之前被调用
     * 若返回值为true,则继续调用后去的拦截器和目标方法
     * 若返回值为false,则不会再调用后续的拦截器和方法
     * 可以考虑做权限.日志,事务,等.
     */

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
       request.setCharacterEncoding("utf-8");
       response.setCharacterEncoding("text/htm;charset=utf-8");
        System.out.println("ddddd");
        return true;
    }
	/**
     * 调用目标方法之后,但渲染视图之前.
     * 有modelAndView对象,可以对请求域中的属性或视图做出修改.
     */
    @Override
    public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

    }

  * 渲染视图之后调用,释放资源.
     */

    @Override
    public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

    }
}

-boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler):在请求到达Handler之前,先执行这个前置处理方法.当该方法返回false时,请求直接返回,不会传递到链中的下一个拦截器,更不会传递到链尾的Handler,只有返回true时,请求才会向链中的下一个处理节点传递!

  • void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView); 在相应已经被渲染后,执行该方法.

  • void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex); 在响应已经被渲染后,执行该方法!
    在这里插入图片描述

SpringMVC的配置

  <mvc:interceptors>
        <mvc:interceptor>
             <mvc:mapping path="/**" />
            <bean class="com.lx.controller.MyInterceptor" />
        </mvc:interceptor>
    </mvc:interceptors>

注意其中的mvc:interceptor标签,子标签下有<mvc:mapping path="" />,<mvc:exclude-mapping path=""/>,分别是作用路径和不作用路径。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值