【JavaWeb】Java Web三大组件之Filter过滤器

简介: JavaWeb中的过滤器:当浏览器访问服务器资源时,过滤器就会拦截浏览器发过来的请求,实现一些特别的功能。作用:一般用于完成通用的操作,如登录验证,身份验证,统一字符编码和敏感字过滤等。

本文只是先做下简单的介绍,文章会持续更新.......


Java Web三大组件(Servlet、Filter、Listener)


一、Filter过滤器概念


生活中的过滤器:净水器,空气净化器,大山里的土匪等。


JavaWeb中的过滤器:当浏览器访问服务器资源时,过滤器就会拦截浏览器发过来的请求,实现一些特别的功能。


作用:一般用于完成通用的操作,如登录验证,身份验证,统一字符编码和敏感字过滤等。


二、Filter过滤器快速入门

2.1 步骤

   1. 定义一个类,实现接口Filter

   2. 复写方法

   3. 配置拦截路径

            1. web.xml

            2. 注解

2.2 代码


@WebFilter("/*")//访问所有资源之前,都会执行该过滤器publicclassFilterDemo1implementsFilter {
@Overridepublicvoidinit(FilterConfigfilterConfig) throwsServletException {
    }
@OverridepublicvoiddoFilter(ServletRequestservletRequest, ServletResponseservletResponse, FilterChainfilterChain) throwsIOException, ServletException {
// 拦截之后执行这里System.out.println("filterDemo1被执行了....");
//放行filterChain.doFilter(servletRequest,servletResponse);  
    }
@Overridepublicvoiddestroy() {
    }
}


三、过滤器细节

3.1 web.xml配置


<filter><filter-name>demo1</filter-name><filter-class>com.jiaoyu.web.filter.FilterDemo1</filter-class></filter><filter-mapping><filter-name>demo1</filter-name><!--注意这里是拦截路径--><url-pattern>/*</url-pattern></filter-mapping>


3.2 过滤器执行流程

> 1. 执行过滤器

> 2. 执行放行后的资源

> 3. 回来执行过滤器放行代码下边的代码

3.3 过滤器生命周期方法

> 1. init:在服务器启动后,会创建Filter对象,然后调用init方法。只执行一次。用于加载资源

> 2. doFilter:每一次请求被拦截资源时,会执行。执行多次

> 3. destroy:在服务器关闭后,Filter对象被销毁。如果服务器是正常关闭,则会执行destroy方法。只执行一次。用于释放资源

四、过滤器配置详解

4.1 拦截路径配置:

> 1. 具体资源路径: /index.jsp   只有访问index.jsp资源时,过滤器才会被执行

> 2. 拦截目录: /user/*    访问/user下的所有资源时,过滤器都会被执行

> 3. 后缀名拦截: *.jsp        访问所有后缀名为jsp资源时,过滤器都会被执行

> 4. 拦截所有资源:/*        访问所有资源时,过滤器都会被执行

4.2 拦截方式配置:资源被访问的方式

4.2.1 注解配置:设置dispatcherTypes属性

> 1. REQUEST:默认值。浏览器直接请求资源

> 2. FORWARD:转发访问资源

> 3. INCLUDE:包含访问资源

> 4. ERROR:错误跳转资源

> 5. ASYNC:异步访问资源

4.2.2 web.xml配置

设置`<dispatcher></dispatcher>`标签即可

             

五、过滤器链(配置多个过滤器)

5.1 执行顺序:如果有两个过滤器:过滤器1和过滤器2

> 1. 过滤器1

> 2. 过滤器2

> 3. 资源执行

> 4. 过滤器2

> 5. 过滤器1  

5.2 过滤器先后顺序问题:

> 1. 注解配置:按照类名的字符串比较规则比较,值小的先执行

>                        如: AFilter 和 BFilter,AFilter就先执行了。

> 2. web.xml配置: `<filter-mapping>`谁定义在上边,谁先执行

 

 

到这里本文就结束了,希望对大家有帮助;


如果感觉写的好,确实帮助了你,那就麻烦帮忙点个赞,多谢!



**本文首发于CSDN,为博主原创文章,如果需要转载,请注明出处,谢谢!**



完结!

相关文章
|
22天前
|
监控 JavaScript 前端开发
《理解 WebSocket:Java Web 开发的实时通信技术》
【4月更文挑战第4天】WebSocket是Java Web实时通信的关键技术,提供双向持久连接,实现低延迟、高效率的实时交互。适用于聊天应用、在线游戏、数据监控和即时通知。开发涉及服务器端实现、客户端连接及数据协议定义,注意安全、错误处理、性能和兼容性。随着实时应用需求增加,WebSocket在Java Web开发中的地位将更加重要。
|
1月前
|
Web App开发 SQL Java
javaweb实现分页(二)
javaweb实现分页(二)
19 1
|
1月前
|
SQL 关系型数据库 MySQL
javaweb实现分页查询(一)
javaweb实现分页查询(一)
19 0
|
1月前
|
SQL 关系型数据库 MySQL
javaweb中实现分页,持续更新……
javaweb中实现分页,持续更新……
17 1
|
2天前
|
设计模式 存储 前端开发
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
Java从入门到精通:2.2.1学习Java Web开发,了解Servlet和JSP技术,掌握MVC设计模式
|
11天前
|
Web App开发 Java 应用服务中间件
【Java Web】在 IDEA 中部署 Tomcat
【Java Web】在 IDEA 中部署 Tomcat
|
20天前
|
安全 前端开发 Java
Java Web开发知识点学习总结
Java Web开发涉及Java基础、Servlet、JSP、数据库操作(SQL+JDBC)、MVC设计模式、Spring框架、Hibernate ORM、Web服务(SOAP&RESTful)、安全认证(HTTP Basic/Digest/OAuth)及性能优化(缓存、异步、负载均衡)。
18 3
|
23天前
|
XML JSON JavaScript
使用JSON和XML:数据交换格式在Java Web开发中的应用
【4月更文挑战第3天】本文比较了JSON和XML在Java Web开发中的应用。JSON是一种轻量级、易读的数据交换格式,适合快速解析和节省空间,常用于API和Web服务。XML则提供更强的灵活性和数据描述能力,适合复杂数据结构。Java有Jackson和Gson等库处理JSON,JAXB和DOM/SAX处理XML。选择格式需根据应用场景和需求。
|
23天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
25天前
|
Java
销售业务管理系统【Web系统】(Java课设)
销售业务管理系统【Web系统】(Java课设)
13 5