SpringMVC * 配置及运行流程解析

作者:shouyaya 时间:2023-03-30 15:38:57 

1.与过滤器filter的区别

SpringMVC * 配置及运行流程解析

2.springMVC中 * 的必须实现的三个方法:

SpringMVC * 配置及运行流程解析

SpringMVC * 配置及运行流程解析

3. * 类的编写:


package com.imooc.core;

import com.imooc.bean.User;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginInterceptor implements HandlerInterceptor {

//在业务处理器被调用前的方法,若是返回false则不会继续进入业务处理器
 public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
   User user = (User)request.getSession().getAttribute("session_user");
   if(user==null) {
     response.sendRedirect(request.getContextPath()+"/login");
     return false;//会终止所有的请求
   }
   return true;
 }

//在业务处理器被调用后,dispatcher响应客户端前的方法,一般用于生成日志文件时调用
 public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {

}

//dispatcher响应客户端后的方法,一般用于资源的清理
 public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {

}
}

4.在spring的配置文件中注册 * :


<!-- * 的注册 -->
 <mvc:interceptors>
   <mvc:interceptor>
      <!--**表示往后的所有子目录也包括进来-->
     <mvc:mapping path="/user/**"></mvc:mapping>
     <!--exclude-mapping在所有拦截中进行排除,一般在通配符会有意义。-->
     <!--即以下的方法不会被拦截-->
     <mvc:exclude-mapping path="/user/updatepwd"></mvc:exclude-mapping>
     <mvc:exclude-mapping path="/user/updatebackground/*"></mvc:exclude-mapping>
     <!--填写之前配置好的 * -->
     <bean class="com.imooc.core.LoginInterceptor"></bean>
   </mvc:interceptor>
 </mvc:interceptors>

注意:要是有多个 * 执行顺序以spring的配置文件中的注册 * 顺序执行:


<!-- * 的注册 -->
 <mvc:interceptors>

<!--先注册先执行-->
   <mvc:interceptor>
     <mvc:mapping path="/user/**"/>
     <bean class="com.imooc.core.LogInterceptor"></bean>
   </mvc:interceptor>

<mvc:interceptor>
     <mvc:mapping path="/user/**"></mvc:mapping>
     <!--exclude-mapping在所有拦截中进行排除,一般在通配符会有意义。-->
     <mvc:exclude-mapping path="/user/updatepwd"></mvc:exclude-mapping>
     <mvc:exclude-mapping path="/user/updatebackground/*"></mvc:exclude-mapping>
     <bean class="com.imooc.core.LoginInterceptor"></bean>
   </mvc:interceptor>
 </mvc:interceptors>

其次 * 里的方法顺序:

SpringMVC * 配置及运行流程解析

来源:https://www.cnblogs.com/shouyaya/p/13047129.html

标签:Spring,MVC, , ,配置
0
投稿

猜你喜欢

  • C#中fixed关键字的作用总结

    2023-07-17 09:43:44
  • Android实现悬浮窗体效果

    2023-03-12 01:04:02
  • Android实战教程第五篇之一键锁屏应用

    2023-12-03 18:47:36
  • Android开发实现横向列表GridView横向滚动的方法【附源码下载】

    2021-07-13 17:27:26
  • 深入理解Java序列化与反序列化

    2023-01-24 00:27:53
  • Android SQLite数据库操作代码类分享

    2022-03-03 06:43:25
  • SpringBoot详细讲解异步任务如何获取HttpServletRequest

    2023-01-04 18:01:09
  • 简单谈谈java的异常处理(Try Catch Finally)

    2021-08-01 12:40:02
  • Java Class 加密工具 ClassFinal详解

    2023-02-10 14:58:48
  • 新手学习Java对Redis简单操作

    2023-09-10 05:05:41
  • @Configuration与@Component作为配置类的区别详解

    2023-03-09 19:50:15
  • 简单的一次springMVC路由跳转实现

    2023-01-09 10:05:11
  • Java使用arthas修改日志级别详解

    2023-02-04 23:09:26
  • Android 验证码功能实现代码

    2023-06-12 23:19:06
  • Android VelocityTracker使用案例详解

    2023-08-29 13:32:03
  • 基于Java利用static实现单例模式

    2021-12-20 06:07:32
  • SpringBoot使用Spring Security实现登录注销功能

    2023-01-05 13:19:54
  • Android中通过Notification&NotificationManager实现消息通知

    2023-01-01 16:57:05
  • c# 实现语音聊天的实战示例

    2021-11-18 06:29:20
  • Android 5秒学会使用手势解锁功能

    2023-07-11 13:48:32
  • asp之家 软件编程 m.aspxhome.com