SpringMVC * 配置及运行流程解析
作者:shouyaya 时间:2023-03-30 15:38:57
1.与过滤器filter的区别
2.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>
其次 * 里的方法顺序:
来源: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