springboot中添加自定义filter
时间:2019-10-30
本文章向大家介绍springboot中添加自定义filter,主要包括springboot中添加自定义filter使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
springboot中的filter
第一种情况,自定义的filter
方式1
1.实现javax.servlet.Filter
2.重写init,doFilter,destory方法
3.添加component注解
package com.warofcode.securitydemo.filter;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import java.io.IOException;
@Component
public class MyFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
System.out.println(" myfilter init");
}
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
System.out.println("myfilter execute");
}
@Override
public void destroy() {
System.out.println("myfilter destroy");
}
}
方式2
1.实现javax.servlet.Filter
2添加webfilter注解,可以设定过滤的路径
3在配置类加上注解@ServletComponentScan
1.编写过滤器代码
package com.mrsaber.security; import org.springframework.core.annotation.Order; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; @Order(1) @WebFilter(filterName = "MSecurity",urlPatterns = {"*.html"}) public class MSecurityFilter implements Filter { @Override public void init(FilterConfig filterConfig) throws ServletException { } @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response= (HttpServletResponse) servletResponse; System.out.println(request.getRequestURI()); //检查是否是登录页面 if(request.getRequestURI().equals("/web/index.html")) filterChain.doFilter(servletRequest,servletResponse); //检测用户是否登录 HttpSession session =request.getSession(); String status= (String) session.getAttribute("isLogin"); if(status==null || !status.equals("true")) { try{ response.sendRedirect("/web/index.html");}catch (Exception e){} } filterChain.doFilter(servletRequest,servletResponse); } @Override public void destroy() { } }
说明:
重点在于两个注解!
When using an embedded container, automatic registration of
@WebServlet
,@WebFilter
, and@WebListener
annotated classes can be enabled using@ServletComponentScan
.使用嵌入式容器时,可以使用@ServletComponentScan启用@WebServlet,@ WebFilter和@WebListener注释类的自动注册。
@ServletComponentScan will have no effect in a standalone container, where the container’s built-in discovery mechanisms will be used instead.
如果使用外置容器的话,容器的内置发现机制将会被使用,而不需要使用这条注解。
2.添加@ServletComponentScan注解
@SpringBootApplication @ServletComponentScan(basePackages = "com.mrsaber.security") public class MsSupplyAndSaleApplication { public static void main(String[] args) { SpringApplication.run(MsSupplyAndSaleApplication.class, args); } }
原文地址:https://www.cnblogs.com/dousnl/p/11764498.html
- Silverlight 3 创建一个简单的Behavior
- Nodejs学习笔记(六)--- Node.js + Express 构建网站预备知识
- Silverlight 3.0 中的 Local Connection
- 学习Spark——那些让你精疲力尽的坑
- 学习Spark——那些让你精疲力尽的坑
- Silverlight 3.0 中的 WriteableBitmap
- WCF后续之旅(10): 通过WCF Extension实现以对象池的方式创建Service Instance
- Silverlight菜单控件 — CurveMenu
- 实力终端撑腰 两枚域名均五位数被秒
- Silverlight制作逐帧动画 v2 - part2
- Nodejs学习笔记(四)--- 与MySQL交互(felixge/node-mysql)
- 学习Spark——环境搭建(Mac版)
- 离线网络环境下一键式部署
- WCF后续之旅(17):通过tcpTracer进行消息的路由
- 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 文档注释
- Android Studio 3.6 正式版终于发布了,快来围观
- android使用ViewPager实现图片自动切换
- Android Studio 3.6 调试 smali的全过程
- Android 10 适配攻略小结
- Android P实现静默安装的方法示例(官方Demo)
- Android studio实现滑动开关
- Android实现TCP客户端支持读写操作
- Android通过命令连接wifi的方法(解决usb不能用问题)
- android studio使用SQLiteOpenHelper()建立数据库的方法
- Android自定义View绘制彩色圆弧
- android canvas使用line画半圆
- 说说Android的UI刷新机制的实现
- Android仿直播类app赠送礼物功能
- android自定义imageview实现圆角图片
- 基于android实现五子棋开发