SpringBoot拦截器和过滤器的一起使用
Springboot 使用拦截器拦截请求@Controllert和页面访问
你好! 本人在做一个项目时,要用到拦截器和过滤器 ,目的是为了让用户先登陆再操作,防止用户直接访问页面或者请求。自己就上网找了找,发现有好多方法,自己也总结了一下,结合使用。拦截器和过滤器的区别最大的就是拦截器的范围要大,一般来说过滤器过滤的时页面,不能过滤请求,拦截器不但能拦截请求还能拦截页面。代码如下:
package com.ysd.util;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;@Component
public class MyInterceptor implements HandlerInterceptor {@Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object o) throws Exception {HttpSession session = request.getSession();String uri = request.getRequestURI();System.out.println("filter url:"+uri);System.out.println("----------开始进行拦截-----------");if (session.getAttribute("user") != null) {System.out.println("-----------拦截通过----------");return true;}else {System.out.println("-----------拦截不通过----------");// 跳转登录String url = request.getContextPath() + "/login2.html";response.sendRedirect(url);return false;}}@Override public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,ModelAndView modelAndView) throws Exception {System.out.println("myinterc posthandler");}@Override public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o,Exception e) throws Exception {System.out.println("myinterc aftercompletion");}
}
这就定义了一个拦截器 ,只需implements HandlerInterceptor就行 ,重写方法,其中需要修改的是preHandle()方法。然后可以使用@Component把类配置一个bean,
之后在创建一个类AddInterceptor(名字自己起) 实现implements WebMvcConfigurer(Springboot 2.0版本之后的使用,之前的话使用WebMvcConfigurerAdapter,这个需要自己重写方法)在类上加注解@Configuration,代码如下
package com.ysd.util;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Configuration
public class AddInterceptor implements WebMvcConfigurer{@Autowiredprivate MyInterceptor myInterceptor;public void addInterceptors(InterceptorRegistry registry){registry.addInterceptor(myInterceptor).addPathPatterns("/**").excludePathPatterns("/login2.html","/js/**","/img/**","/login/denglu");}
}
具体的过滤可以自己定义,之间使用逗号(“,”)分隔,addPathPatterns()是要过滤的页面,**代表所有,excludePathPatterns()时除了什么不拦截 ,登陆页面肯定不拦截,要不一直重定向,当然还有css样式,图片img。本人萌新,有什么不对的欢迎指教!!!
SpringBoot拦截器和过滤器的一起使用相关推荐
- SpringBoot 拦截器和过滤器
拦截器和过滤器 时光飞逝,最近也是很忙,但是忙到最后发现在自己并没有太多的成长 工作 学习 生活 没想到成长是不经意间的,像是被 推着,让你身不由己 午休时间,写写博客,也是保留一些自己的时间和空间 ...
- springboot拦截器和过滤器的区别与使用
拦截器与过滤器的区别 spring的拦截器与servlet的filter有相似之处,比如二者都是AOP编程思想的体现,都能实现权限检查.日志记录等,不同的是: 适用范围不同:filter是servle ...
- 区分Java拦截器和过滤器
今天带大家分析java拦截器和过滤器的区别,文中有非常详细的解释说明,对正在学习java的小伙伴们有很好的帮助,需要的朋友可以参考下 一.过滤器(filter) 过滤器处于客户端与Web资源(Serv ...
- 拦截器和过滤器之间有很多相同之处,但是两者之间存在根本的差别
转自:https://www.cnblogs.com/shangc/p/5939708.html 拦截器和过滤器之间有很多相同之处,但是两者之间存在根本的差别.其主要区别为以下几点: 1)拦截器是基于 ...
- struts2中拦截器和过滤器的比较
拦截器和过滤器的区别: 1.拦截器是基于java的反射机制的,而过滤器是基于函数回调 2.过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3.拦截器只能对action请求起作用,而 ...
- 【SpringMVC】拦截器和过滤器
拦截器: 拦截器是springmvc中的一种,需要实现HandlerInterceptor接口. 拦截器和过滤器类似,功能方向侧重点不同. 过滤器是用来过滤器请求参数,设置编码字符集等工作. 拦截器是 ...
- 关于SSM框架设置拦截器和过滤器
我们知道拦截器和过滤器都是在项目中起到拦截过滤请求的功能,所以可能在设置的时候会傻傻分不清.这里我们先来比较它们的区别. 过滤器Filter是JavaEE标准,在Servlet的规范中定义的,是Ser ...
- 详解拦截器和过滤器的区别
拦截器和过滤器的区别 过滤器和拦截器的区别: ①拦截器是基于java的反射机制的,而过滤器是基于函数回调. ②拦截器不依赖与servlet容器,过滤器依赖与servlet容器. ③拦截器只能对acti ...
- java 拦截器和过滤器的区别
介绍 在 Java Web 应用程序中,拦截器和过滤器是两种不同的机制,用于在请求/响应处理过程中进行拦截和过滤.两者都可以用来在请求到达目标资源之前对其进行预处理.修改或拦截. 但是,拦截器和过滤器 ...
- 拦截器和过滤器有什么区别?
首先了解什么是过滤器什么是拦截器 ①过滤器(Filter) 过滤器通过直接实现Filter接口实现,也可以通过@WebFilter注解实现特定的URL拦截 在Filter接口中定义了三个方法: ini ...
最新文章
- 我们单位里新来的应届毕业生(转贴)
- BZOJ1001[BeiJing2006]狼抓兔子——最小割
- 【转】Asp.net控件开发学习笔记整理篇 - Asp.net客户端状态管理
- 虚方法、重写方法和抽象方法[转载]
- oracle siplugincol表,ORACLE 经常使用的命令工具-第三章:表
- 去除下拉框的默认样式
- Linux学习-15-学习LVM逻辑卷
- SpringCloud面试题分享
- BasKet Note Pads-利用软件作条记
- JAVA 正则表达式 RegexUtil
- 传智Python视频_基础班+就业班
- Python考试基础知识
- yii配置mysql_YII2中配置MySQL读写分离
- this指向问题(call、apply、blind),自我理解的
- python 图形库介绍_数据分析Python手绘图形库有哪些
- c语言 python rsa库_python如何调用libcrypto实现RSA解密?
- android 渠道商,【华为怒斥渠道商】
- 小米note3如何打开usb调试
- Tomcat崩溃排查
- 盘点招招毙命的29种USB攻击方式
热门文章
- 【SQL学习】select语句使用实例
- win8需要计算机管理员权限才能删除,win8系统使用管理员权限无法删除部分文件怎么办...
- windows下支持H265的rtmp ffplay播放器 ffmpeg的编译
- 梦网云科技的短信接口怎么样,真实体验
- html实例,实现表单
- 偏导数,雅可比矩阵(jacobi matrix),黑塞矩阵(Hessian matrix)
- 个人微信api接口调用代码
- c语言程序设计超市会员卡管理系统,c语言程序设计超市管理系统.doc
- 切身体验的优秀时间管理法——番茄时间工作法!
- UE4动画蒙太奇位移