微信公众号开发--spring HandlerInterceptor的使用

HandlerInterceptor是spring的拦截器他有3个方法
1.boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
2.void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView)
3.void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
执行顺序即1 2 3
1可以用来验证有没有登录,在dispatcherServlet调用controller之前执行,返回true继续执行,false不往下执行
2在dispatcherServlet递交view之前执行,由于有ModelAndView传递进来,所以可以在递交视图之前进行一系列操作
3最后调用

HandlerInterceptorSpring MVC中的拦截器,可以在请求处理之前和之后进行一些操作,比如日志记录、权限验证、参数校验等等。HandlerInterceptor提供了三个方法,分别是preHandle、postHandle和afterCompletion,分别对应请求处理之前、请求处理之后和请求处理完成之后。可以根据需要实现其中的方法。 下面是一个简单的示例: ```java public class MyInterceptor implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { System.out.println("请求处理之前。。。"); return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { System.out.println("请求处理之后。。。"); } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { System.out.println("请求处理完成之后。。。"); } } ``` 在上面的代码中,我们实现了HandlerInterceptor接口,并重写了其中的三个方法。在preHandle方法中,我们输出了一段日志,表示请求处理之前的操作。在postHandle方法中,我们也输出了一段日志,表示请求处理之后的操作。在afterCompletion方法中,我们输出了一段日志,表示请求处理完成之后的操作。 接下来,我们需要将MyInterceptor注册到Spring MVC中。在Spring MVC的配置文件中,可以使用<mvc:interceptors>标签进行注册: ```xml <mvc:interceptors> <mvc:interceptor> <mvc:mapping path="/**"/> <bean class="com.example.MyInterceptor"/> </mvc:interceptor> </mvc:interceptors> ``` 在上面的代码中,我们使用<mvc:interceptor>标签注册了一个拦截器,对所有的请求进行拦截。其中,<mvc:mapping>标签定义了拦截的路径,这里使用了通配符“**”,表示对所有的路径进行拦截。<bean>标签定义了拦截器的具体实现类,这里是com.example.MyInterceptor。 这样,我们就实现了一个简单的拦截器,并将其注册到了Spring MVC中。在请求处理过程中,MyInterceptor的三个方法会被依次调用,从而实现我们需要的操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值