Servlet过滤器

Java过滤器

课程内容
1 Java 过滤器概述
2 案例实现
中文编码字符集预处理
实现系统用户登陆安全控制

过滤器的作用

实现对web资源请求的拦截,完成特殊的操作,尤其是对请求预处理。
过滤器的应用场景
Web资源权限访问控制
请求字符编码处理
内容敏感字符词汇过滤
响应信息压缩
Java过滤器概述:
工作流程 生命周期特点 开发步骤 过滤器链
1、 web应用程序启动时,web服务器创建Filter的实例对象,以及对象的初始化
2、当请求访问与过滤器关联的Web资源时,过滤器拦截请求,完成指定功能
3、Filter对象创建后会驻留在内存,在web应用移除或者服务器停止时才销毁

Java过滤器概述

过滤器的实现步骤
1、编写java类实现Filter接口,并实现doFilter方法。
2、web.xml文件中对filter类进行注册,并设置所有拦截的资源。
过滤器链:
在一个web应用中,多个过滤器组合起来称之为一个过滤器链。
过滤器的调用顺序取决于过滤器在web.xml文件中的顺序客户端发送请求后,
Java过滤器对请求做预处理,预处理完成之后请求会传递到servlet.service()方法,
对请求进行处理并产生处理的结果,紧接着Java过滤器会拦截响应结果并对响应
结果做后处理,然后再将响应结果返回给客户端。
此处需要注意,java过滤器在对请求做预处理和后处理的过程中,需要调用到
过滤器的doFilter方法来进行,而预处理完成之后,就会将请求传递给系统做
出来,即调用servlet.service()方法进行请求的正式处理。

过滤器的使用:

首先写一个Class类,让它继承Filter的接口,接口中有三个方法
destory() doFilter(request,response,FilterChain) init();
/destory()是拦截器的销毁方法,每当服务器关闭的或重启的时候,
tomcat服务器自动调用destroy方法销毁实例化的对象。
/doFilter()是实现拦截的方法,其中有三个参数,前两个分别是
服务器的请求与响应,可以分别对服务器的请求做预处理,对
响应做后处理。第三个参数是过滤器链对象,对所有的过滤器
做了一个封装,它提供了一个doFilter()的方法,当我们过滤器
完成了doFilter()方法的时候,可以调用过滤器链的foFilter()方法
来通知过滤器,我的请求预处理完成了,可以接下来进行下一步
的操作了。
/在web服务器中的过滤器对象只会创建一个,并且会在服务器中
一直存在,过滤器对象在创建的时候只会调用执行init()方法一次,
后续在进行使用的时候不会在自行创建对象,除非对象被销毁。

  <filter>
  	<filter-name>characterEncodingFilter</filter-name>
  	<filter-class>filter.CharacterEncodingFilter</filter-class>
  	<init-param>	//初始化参数
  		<param-name>systemName</param-name>
  		<param-value>filter Encoding</param-value>
  	</init-param>
	
	<init-param>
		<param-name>charset</param-name>
  		<param-value>UTF-8</param-value>
	</init-param>
  	
  </filter>
  
  <filter-mapping>
  	<filter-name>characterEncodingFilter</filter-name>
  	<url-pattern>/*</url-pattern>   //接受任何请求的拦截
  </filter-mapping>

在实现Filter的接口的类中:
init()方法中有一个config参数,可以将参数保存在字段中。
doFilter()方法中使用:
String define = config.getInitParameter("define");
//获取web.xml中配置的字符集编码
request.setCharacterEncoding(config.getInitParameter("charset")); chain.doFilter(request, response);

过滤器的生命周期:
  • web应用程序启动时,创建Filter的实例化对象,以及初始化对象。
  • 当请求访问关联的Web资源时,过滤器拦截请求,完成指定功能。
  • Filter对象创建后驻留内存,Web应用移除或者服务器停止时才销毁过滤器的创建和销毁有WEB服务器负责
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值