首页 > 其他分享 >Filter概述及快速入门

Filter概述及快速入门

时间:2023-04-24 16:45:38浏览次数:35  
标签:入门 void 路径 Filter 概述 import 拦截 public

Filter概述及快速入门

Filter概述:

概念: Filter表示过滤器, 是JavaWeb三大组件之一

JavaWeb三大组件: Servlet, Filter, Listener

过滤器可以把对资源的请求拦截下来, 从而实现一些特殊的功能

过滤器一般完成一些通用的操作:

比如: 权限控制, 统一编码处理, 敏感字符处理等

还有就是在访问某个网站的时候要先判断是否登录, 不能直接就通过导航栏直接进入到网站登录之后的页面中, 只要是尝试登录到网站内部的时候我们都应该先进行一个判断, 判断是否已经登录, 如果没有登录的时候就跳转到登录页面, 让其进行登录操作, 这样的操作也应该是在过滤器(Filter)中实现的

快速入门:

1.定义类, 实现Filter接口, 并重写其中所有的抽象方法

>Filter接口全类名: javax.Servlet.Filter
package com.ffyc.filter;

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

//配置拦截路径
@WebFilter("/main5")
public class FilterDemo implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
    }

    @Override
    public void destroy() {
    }
}

2.配置Filter拦截的资源的路径

就是在类上定义@WebFilter注解
这里并不是配置过滤器的访问路径, 而是配置拦截路径, 就是当我们访问的资源的路径满足我们的拦截路径的匹配的时候就会执行对应的过滤器

当将Filter拦截路径的值设置为"/*"之后就表示所有的资源都会拦截

//配置拦截路径
@WebFilter("/main5")
public class FilterDemo implements Filter {

这里就表示拦截访问路径为http://ip:port/工程路径/main5”的资源的请求

这里的/mian5中的/显然是由服务器解析, 如果是服务器解析, 那么"/"就是表示http://ip:port/工程路径

3.在doFilter方法中输出一句话,并放行(这里只是做一个测试, 所以我们选择输出一句话)


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

//配置拦截路径
@WebFilter("/main5")
public class FilterDemo implements Filter {

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        //不具体实现
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        System.out.println("filter被执行了");

        //放行 --- > 放行之后会立即去执行Servlet中的service()方法
        filterChain.doFilter(servletRequest, servletResponse);
    }

    @Override
    public void destroy() {
        //不具体实现
    }
}

标签:入门,void,路径,Filter,概述,import,拦截,public
From: https://www.cnblogs.com/yzx-sir/p/17350029.html

相关文章

  • JDBC概述和原理
    JDBC目录数据库连接池可以优化对数据库的操作,提高效率JDBC的概述jdbc原理图不同的数据库的厂商制作的数据库的底层结构不同,如果使用Java来操作数据库,不同的数据库操作的方法不同。将造成管理困难java定义接口进行改进此时的接口调用由各个数据库实现,java只是负责调用......
  • Apple 的 plist 编辑器入门指南:基础操作与高级功能详解
     PlistEditPro是一款专为macOS编写的最高级属性列表Plist编辑器。对于Mac和IOS开发人员来说,编写应用程序时必须编辑各种列表文件。PlistEditPro通过提供直观且功能强大的界面,使编辑这些文件更加容易。它不仅能够复制和粘贴或拖放属性列表数据,还提供强大的搜索和替换功能,并......
  • python入门编程1
    最近迅速看了以下推荐的两本Python入门书籍:1.Python编程:从入门到实践2.Python编程快速上手——让繁琐工作自动化两本书的前半部分内容相似,都是些简单的基础知识,后半部分是些实践项目,但是从我的感受来看,项目内容组织的还是有点大,比如其中一个web项目开发,对于新手来说,里面包含的......
  • .NET Web入门到高级路线(新版本)
    .NETWeb入门到高级路线C#基础语法.NETCore基础知识ASP.NETCore基础知识概述BlazorASP.NETCore官方文档ORMFreeSqlEntityFrameworkCoreDapperSqlSugar关系型数据库SQLServerMySQLPostgreSQL中间件MongoDBRedisRabbitMQActiveMQSkyWalkingC......
  • Vue2入门之超详细教程七-事件处理
    1、简介事件的基本使用:(1)使用v-on:xxx或者@xxx绑定事件,其中xxx是事件名(2)事件的回调需要配置在methods对象中,最终会在vm上(3)methods中配置的函数,不要用箭头函数!否则this就不是vm了(4)methods中配置的函数,都是被Vue所管理的函数,this指向是Vm或......
  • SpringSecurity从入门到精通:如何查看具体的过滤器&入门案例认证流程图讲解
    如何查看具体的过滤器  入门案例认证流程图讲解 概念速查:Authentication接口:它的实现类,表示当前访问系统的用户,封装了用户相关信息AuthenticationManager接口:定义了认证Authentication的方法UserDetailsService接口:加载用户特定数据的核心接口,里面定义了......
  • Spring Security从入门到精通:入门案例准备工作&入门案例引入Spring Secuirity
    入门案例准备工作我们先要搭建一个简单的SpringBoot工程设置父工程添加依赖<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.5.0</version><......
  • HTML入门学习笔记
    HTML学习笔记详解01初识HTMLHTMLHTML,英文全称为HyperTextMarkupLanguage,中文翻译为超文本标记语言,其中超文本包括:文字,图片,音频,视频,动画等目前目前主流使用的是HTML5+CSS3HTML的优势主流浏览器都支持微软GOOGLE苹果市场的需求跨平台(类似JVM)W3C标准......
  • 上篇:运维人员不得不看的K8S API入门实战,呕心沥血整理得又臭又长,有人看吗
    K8SAPI概述可参考:https://kubernetes.io/zh-cn/docs/concepts/overview/kubernetes-api/KubernetesAPI是Kubernetes控制平面的核心。它是一组RESTAPI,用于与Kubernetes中的各种对象进行交互,如Pods、Namespaces、ConfigMaps和Events等。通过这些API,可以查询和操作Kubernetes中A......
  • SpringSecurity从入门到精通:简介
    SpringSecurity从入门到精通:简介SpringSecurity是Spring家族中的一个安全管理框架,想比另外一个安全框架Shiro,它提供了更丰富的功能,社区资源也比Shiro丰富一般来说中大型的项目都是使用SpringSecurity来做安全框架,小项目有Shiro的比较多,因为想比与SpringSecurity,Shiro的......