springmvc拦截器
时间:2019-06-17
本文章向大家介绍springmvc拦截器,主要包括springmvc拦截器使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
SpringMVC 中的Interceptor 拦截器也是相当重要和相当有用的,它的主要作用是拦截用户的请求并进行相应的处理。
比如通过它来进行权限验证,或者是来判断用户是否登陆,或者是像12306 那样子判断当前时间是否是购票时间。
配置步骤:
1、实现org.springframework.web.servlet.HandlerInterceptor接口,自定义拦截器(处理被拦截请求)。
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.web.servlet.HandlerInterceptor; import org.springframework.web.servlet.ModelAndView; import cn.zj.ssm.pojo.User; public class CheckLoginInterceptor implements HandlerInterceptor { /* * 控制器方法执行之前执行 * 返回结果为true表示放行,如果返回为false,表示拦截(可以做权限拦截,登录检查拦截). */ public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //1.获取sesison中共享的user对象 User user = (User) request.getSession().getAttribute("user"); if(user ==null) { //使用重定向跳转到登录页面 login.jsp response.sendRedirect(request.getContextPath()+"/login.jsp"); //不放行 return false; } //放行 return true; } /* * 控制器方法执行后,视图渲染之前执行(可以加入统一的响应信息). */ @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } /* * 视图渲染之后执行(处理Controller异常信息,记录操作日志,清理资源等) */ @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { // TODO Auto-generated method stub } }
2、在springmvc配置文件中配置拦截器
<mvc:interceptors> <!--配置检查登录拦截器 --> <mvc:interceptor> <!-- 配置拦截的规则 只会拦截 控制器请求,不会拦截jsp页面 /* 只能拦截一级 如 : /list.do /delete.do 如:/user/list.do , /user/delete.do 二级 不能拦截 /** 可以拦截多级 无论几级都可以 如 /a/b/c/d/list.do --> <mvc:mapping path="/**"/> <!-- 排除拦截的地址,多个地址使用逗号隔开 /user/login.do --> <mvc:exclude-mapping path="/user/login.do"/> <!-- 拦截器的类型 --> <bean class="cn.zj.ssm.interceptor.CheckLoginInterceptor"/> </mvc:interceptor> </mvc:interceptors>
原文地址:https://www.cnblogs.com/cdeelen/p/11042003.html
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- A little fun with InnoDB multi-versioning(14.有关InnoDB多版本中的一个小问题)
- 聊聊java中的哪些Map:(八)ConcurrentSkipListMap源码分析
- littlevgl(Lvgl)最新版V7.4移植
- TiKV 源码解析系列文章(二十)Region Split 源码解析
- 轻松构建Tomcat源码
- Flutter中Contrainer 组件的宽高限制分析
- 10张图带你深入理解Docker容器和镜像
- 手摸手教你撸一个微服务框架-关于服务端的处理
- 聊聊claudb的string command
- windows下安装nodejs
- 【Java面试总结】Java集合
- 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式1
- 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式2
- 5000字 | 24张图带你彻底理解21种并发锁
- JavaScript-变量