软件编程
位置:首页>> 软件编程>> java编程>> SpringMVC * 配置及运行流程解析

SpringMVC * 配置及运行流程解析

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

标签:Spring,MVC, , ,配置

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

0
投稿

猜你喜欢

手机版 软件编程 asp之家 www.aspxhome.com