Springboot06配制拦截器
1 创建拦截器 SessionInterceptor
import com.springboot.demo.pojo.UserModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class SessionInterceptor implements HandlerInterceptor {private static final Logger log = LoggerFactory.getLogger(SessionInterceptor.class);/*** 进入controller层之前拦截请求* @param request* @param response* @param o* @return* @throws Exception*/@Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {log.info("---------------------开始进入请求地址拦截----------------------------");UserModel user = (UserModel) request.getSession().getAttribute("user");if (user == null) {response.sendRedirect(request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+request.getContextPath() + "/login");return false;}return true;}@Overridepublic void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {log.info("--------------处理请求完成后视图渲染之前的处理操作---------------");}@Overridepublic void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {log.info("---------------视图渲染之后的操作-------------------------0");}}
2 配制拦截器以及拦截规则
import com.springboot.demo.interceptor.SessionInterceptor;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;@Configuration
public class SessionConfiguration extends WebMvcConfigurerAdapter {/*** 添加拦截器* @param registry*/@Overridepublic void addInterceptors(InterceptorRegistry registry) {/*** addPathPatterns 用于添加拦截规则* excludePathPatterns 用于排除拦截*/registry.addInterceptor(new SessionInterceptor()).addPathPatterns("/**").excludePathPatterns("**/app/**");}/*** 配置静态资源* @param registry*/@Overridepublic void addResourceHandlers(ResourceHandlerRegistry registry) {super.addResourceHandlers(registry);registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");registry.addResourceHandler("/templates/**").addResourceLocations("classpath:/templates/");}
}
3 目录结构
4 启动服务 访问 http://localhost:8080/users/list
Springboot06配制拦截器相关推荐
- struts2自定义拦截器一——模拟登陆权限验证
1.http://localhost:8083/struts2/user.jsp 表示用户已登陆,存放session对象 2.http://localhost:8083/struts2/quit.js ...
- [JAVA EE] 拦截器
拦截器 ◼ 拦截器(Interceptor)主要用于拦截用户请求并作相应的处理. ◼ 基于Java的反射机制,属于面向切面编程(AOP)的一种运用. ◼ 应用场景:验证用户登录状态.权限验证.记录系统 ...
- SpringBoot2.0 基础案例(05):多个拦截器配置和使用场景
一.拦截器简介 1.拦截器定义 拦截器,请求的接口被访问之前,进行拦截然后在之前或之后加入某些操作.拦截是AOP的一种实现策略. 拦截器主要用来按照指定规则拒绝请求. 2.拦截器中应用 Token令牌 ...
- spring 两次进入拦截器_4.SpringBoot 拦截器Fliter,Interceptor,Controller……
在项目的开发中,在某些情况下,我们需要对客户端发出的请求进行拦截,常用的API拦截方式有Fliter,Interceptor,ControllerAdvice以及Aspect. 上面的图是Spring ...
- MySQL拦截器获取xml id_关于mybatis拦截器,有谁知道怎么对结果集进行拦截,将指定字段查询结果进行格式化...
用MyBatis结果集拦截器做过这样一个需求: 由于项目需求经常变动,项目MySQL数据库都是存放JSON字符串,例如:用户的基本信息随着版本升级可能会有变动 数据表 CREATE TABLE `ac ...
- list mybatis 接收 类型_基于mybatis拦截器实现的一款简易影子表自动切换插件
近期因工作需要,小编基于mybatis拦截器开发了一款简易影子表自动切换插件,可以根据配置实现动态修改表名,即将对原source table表的操作自动切换到对target table表的操作.该插件 ...
- Struts2的拦截器只允许有权限用户访问action
1.定义拦截器,继承MethodFilterInterceptor package com.life.stuts.interceptor;import java.util.Map;import com ...
- php 类中的各种拦截器
1.__get( $property ) 访问未定义的属性时调用 class lanjie {function __get($name){echo $name." property not ...
- druid拦截器_CMS基于SpringBoot+Shiro+Mybatis+Druid+layui后台管理系统
contentManagerSystem后台管理系统 简介 contentManagerSystem,后台管理系统,采用SpringBoot构建整个项目框架,apacheShiro权限验证,mybat ...
最新文章
- Python判断一个字符串是否包含子串的几种方法
- vue 监听表格里的数据变化_vue中监听数据变化 watch
- VC++实现恢复SSDT
- linux 查看sql进程id,根据进程的ID取得该进程的SQL脚本
- 约瑟夫环的数学优化方法
- tcp ip协议笔记(1)——简单介绍
- jq查找字段忽略html标签,jQuery过滤HTML标签并高亮显示关键字的方法
- python数据分类方法_Python数据挖掘—分类—贝叶斯分类
- Linux服务器备份mySQL数据库_远程linux服务器mysql数据库定期备份和删除
- 茶百科 android代码,基于android平台手机茶百科开发设计---学位论文.doc
- cf1063A Oh Those Palindromes (贪心)
- mkfs.ext3 快速格式化_求救!固态硬盘格式化不了!
- Spring AOP中Introduction的使用
- JS简单实现京东网页轮播图
- leetcode第一题
- 做个自己站内搜索引擎
- 质量体系建设——质量sense
- 二进制空间权重矩阵_白话空间统计之二十五:空间权重矩阵(三)解构空间权重矩阵...
- <Input />输入框及input的相关属性
- 弹性盒子display:flex——justify-content主轴方向对齐方式、align-items交叉轴对齐方式、 flex-direction修改主轴方向、flex-wrap换行
热门文章
- DivideMix: Salesforce提出使用半监督学习大幅改进含噪声标签的学习
- NeurlPS 2019丨微软亚洲研究院 5 篇精选论文解读
- 视觉推理新杀器!英特尔新一代VPU性能翻10倍,反超英伟达
- 游戏美术是什么?真的有“钱”景吗?
- 顶尖学府 加州伯克利大学开发高效机器人操纵框架
- 《Python编程从入门到实践》记录之类存储在模块及其导入
- 译文 | 与TensorFlow的第一次接触 第四章:单层神经网络
- 自动驾驶车辆转向控制(通过支持转角控制的EPS实现角速度控制)
- oracle表与表之间更新,Oracle 两个表之间更新的实现
- 常见数据库默认端口号