首页 > 其他分享 >SpringBoot学习笔记--过滤器Filter

SpringBoot学习笔记--过滤器Filter

时间:2023-08-05 18:01:12浏览次数:28  
标签:web SpringBoot -- springframework Filter import 过滤器 org public

一、普通过滤器

Filter是Servlet规范中的过滤器,可以处理请求,对请求的参数、属性进行调整。常常在过滤器中处理字符编码。

1、创建自定义过滤器类

package com.cqjtu.vo;


import javax.servlet.*;
import java.io.IOException;

// 自定义过滤器类
public class MyFilter implements Filter
{

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException
    {
        System.out.println("执行了MyFilter");
        // 过滤器链,让请求能够传递下去
        filterChain.doFilter(servletRequest,servletResponse);
    }
}

2、注册Filter过滤器对象

package com.cqjtu.controller;

import com.cqjtu.vo.MyFilter;
import com.cqjtu.vo.MyServlet;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration // Configuration注解标识的类中声明了1个或者多个@Bean方法,Spring容器可以使用这些方法来注入Bean
public class WebApplicationConfig
{
    @Bean
    public FilterRegistrationBean filterRegistrationBean()
    {
        FilterRegistrationBean bean = new FilterRegistrationBean();
        bean.setFilter(new MyFilter());
        // 指定过滤的URL地址
        bean.addUrlPatterns("/user/*");
        return bean;
    }

}

3、添加Controller

package com.cqjtu.controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class CustomFilterController
{
    @RequestMapping("user/account")
    @ResponseBody
    public String userAccount()
    {
        return "user/account";
    }
    @RequestMapping("/query")
    @ResponseBody
    public String queryAccount()
    {
        return "/query";
    }
}

二、字符集过滤器

CharacterEncodingFilter:解决post请求中的乱码问题

在properties文件中配置如下

SpringBoot学习笔记--过滤器Filter_spring

标签:web,SpringBoot,--,springframework,Filter,import,过滤器,org,public
From: https://blog.51cto.com/u_16200991/6977001

相关文章

  • 创建一个基于SpringBoot的web项目
    1、使用国内地址创建SpringBoot项目国内地址:https://start.springboot.io/2、项目结构1:Java目录下放Java相关文件2:static目录下放.css.html.js等文件,包括图片之类的3:templates目录下放模板文件4:放SpringBoot主要配置文件3、创建基于SpringBoot的web案例在上面基础之上,进行下......
  • 台达伺服电机(Delta ASDA - B3 - E)报错解决方式
    一硬件设备三台台达伺服驱动器(DeltaASDA-B3-E)树莓派4B伺服电机型号(ECM-B3M-CA0604RS1),输入2.4A110V,输出0.4KW1.27N.M3000r/min 二DeltaASDA-B3-E常见报错解决方式1恢复出厂设置(绝大部分报错都可以用以下方式处理)  P2.008修改数值为10断电重启2AL......
  • 《VTK图形图像开发进阶》第2章——三维场的基本要素
    2.1灯光剧场里有各式各样的灯光,三维渲染场景中也一样,可以有多个灯光存在。灯光和相机是三维渲染场景必备的要素,如果没有指定,vtkRenderer会自动创建默认的灯光和相机。VTK里用类vtkLight来表示渲染场景中的灯光。与现实中的灯光类似,VTK中的vtkLight示例也可以打开、关闭,设置灯光......
  • JAVA SE基础《八》 ---- 面对对象编程
    目录一、面向对象编程快速入门二、深刻认识面向对象三、对象在计算机中的执行原理四、类和对象的一些注意事项五、其他语法:this六、其他语法:构造器七、其他语法:封装八、其他语法:实体JavaBean九、面向对象编程综合案例十、补充知识:成员变量、局部变量的区别小结 前言......
  • Docker启动运行Redis
    Docker安装Redis服务并以配置文件方式启动1)镜像获取#搜索镜像dockersearchredis#拉取镜像dockerpullredis#查看镜像dockerimages2)启动Redis一、从Redis.io官网获取redis.conf配置文件二、在/usr/local/创建redis文件夹,并把redis.conf文件拷贝进来三、修改red......
  • Blinn-Phong
    为什么出现Blinn-Phong虽然Phong性能较高,但是在某些镜面反射条件下就会失效。比如下图,我们明显发现了一条明显的亮暗边界线,这在实际场景中是不应该发生的(实际场景中不会出现这种明显的过渡带)。出现这个问题的原因就是,我们使用Phong的时候,视线和反射光线的夹角值一旦大于90度,这......
  • 最小割树 学习笔记
    最小割树(Gomory-HuTree)是一种可以在\(O(Vf)\)的时间里求出一个图中全源最小割的算法,其中\(f\)为一次最大流的时间。记原图为\(G=(V,E)\),其最小割树为\(G'=(V,E')\).在最小割树中,任两点间的最小割等于它们在原图中的最小割,且\(\forall(u,v)\inE'\),\(E'\setminus\{u......
  • idea java maven 项目 符号找不到
    描述:新建了一个springboot项目项目正常引入了maven依赖在实体类中引入了额@Setter@Getter注解在前端传递赋值或者new实体类给属性赋值提示找不到符号:网上找了好多的办法,都不太使用我的场景pom中引入了插件导致的问题,移除插件重试一下看看效果  ......
  • post时间盲注注入脚本之查询表字段数--草稿
    importrequestsimportsysimporttimeimportpdbimportthreadingfromconcurrent.futuresimportThreadPoolExecutorclassInjection():def__init__(self):self.url=""#self.scheNum=0self.scheNum=7#sel......
  • 硬链接和软链接的区别
    硬链接和软链接的区别1、本质不同硬链接:同一个文件,多个名称。​软链接:不同的文件。2、跨分区硬链接:不支持跨分区。软链接:支持跨分区。3、目录硬链接:不支持对目录创建。​软链接:支持对目录创建。4、相互关系​硬链接:删除某一个硬链接,另一个硬链接不影响使用。​软链......