Filter开发

Filter开发
本章将详细介绍Filter的定义和作用,还将介绍如何配置Filter。将详细介绍Filter的生命周期,以及一些常用的Filter,如非法文字过滤器、字符编码过滤器以及登录验证过滤器。
通过本章的学习,读者应该能够完成如下几个目标。
熟练掌握如何定义并配置Filter
理解Filter的生命周期
熟练掌握如何添加非法文字过滤器
熟练掌握如何添加字符编码过滤器
熟练掌握如何添加登录验证过滤器

1.1Filter简介
Filter的中文译名为过滤器。从字面名称就可以看出来Filter是用来进行过滤的。借助于过滤器可以实现如下功能。
(1)过滤非法文字和信息。
(2)设置统一字符编码。
(3)对用户进行登录验证。
(4)改变图片文件格式。
(5)对相应做压缩处理。
(6)对XML的输出使用XSLT来进行转换。
在Servlet 2.3之后,如果要添加Filter只需在web.xml中配置相关设定即可。可以非常方便的为Web项目添加新的Filter和修改现有的Filter,而不需要修改原有的Servlet、JSP以及其他静态页面文件。

1.2第一个Filter程序
Filter同Servlet类似同样也是一个Java类,所以其添加方式和普通的Java类完全相同。自定义的Filter类必须实现Filter接口,还必须实现Filter接口中定义的init()方法、doFilter()方法和destroy()方法。
其中init()方法和destroy()方法分别用来初始化和销毁时调用。doFilter()方法用来实现过滤,所有的处理代码都放置在该方法中。doFilter()方法接受三个参数,分别是request、response和chain。其中request和response用来传递给下一个Filter(如果有多个Filter)或者JSP和Servlet。chain则通过调用其doFilter方法来调用下一个Filter,获得调用原始的JSP或者Servlet等其他内容。

1.3Filter生命周期
Filter同Servlet类似也具有生命周期。Filter从生成到销毁必须进过如下几个步骤。
(1)生成Filter,并通过调用其init()方法来进行初始化。
(2)过滤用户请求,调用其doFilter()方法。
(3)调用destroy()方法进行销毁,并通过垃圾收集器进行收集清理。

2 常用Filter
本节将介绍一些常用的Filter,如非法文字过滤器、字符编码过滤器、登录验证器。

2.1非法文字过滤器
实现非法文字过滤器非常简单,首先通过Filter类中doFilter()方法的request参数来获得客户端的输入。然后通过对输出的文字进行判断并进行处理,如替换该非法文字或者提示输出非法文字要求重新输出等等。最后通过chain的doFilter方法来调用下一个Filter,获得调用原始的JSP或者Servlet等其他内容。

2.2字符编码过滤器
可以通过Filter来定义一个字符编码过滤器,这时就不需要在每个JSP页面中添加设置参数字符编码格式代码了。

2.3登录验证过滤器
可以通过Filter来定义一个登录验证过滤器,这时就不需要在每个JSP页面中添加判断用户合法性代码了。

具体配置:

静态及默认通过文件路径配置
<!-- 訪問路徑過濾及session登录校验过滤 -->

<filter>
<filter-name>Filter</filter-name>
<filter-class>com.***.filter.FilterDemo</filter-class>
<init-param>
<param-name>allowed</param-name>
<param-value>***.jsp,***.jpg</param-value>
</init-param>
</filter>

<filter-mapping>
<filter-name>Filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

<!-- 字符转码 -->
<filter>
<filter-name>EncodChar</filter-name>
<filter-class>com.***.filter.EncodChar</filter-class>
<init-param>
<param-name>ChangeWord</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodChar</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

------------------java类-------------------------
public class FilterDemo implements Filter{
public void doFilter(ServletRequest req, ServletResponse resp,
FilterChain chain) throws IOException, ServletException {

*****
}

public void init(FilterConfig config) throws ServletException {

*****
}
}
【直流微电网】径向直流微电网的状态空间建模与线性化:一种耦合DC-DC变换器状态空间平均模型的方法 (Matlab代码实现)内容概要:本文介绍了径向直流微电网的状态空间建模与线性化方法,重点提出了一种基于耦合DC-DC变换器状态空间平均模型的建模策略。该方法通过对系统中多个相互耦合的DC-DC变换器进行统一建模,构建出整个微电网的集中状态空间模型,在此基础上实施线性化处理,便于后续的小信号分析与稳定性研究。文中详细阐述了建模过程中的关键步骤,包括电路拓扑分析、状态变量选取、平均化处理以及雅可比矩阵的推导,最终通过Matlab代码实现模型仿真验证,展示了该方法在动态响应分析和控制器设计中的有效性。; 适合人群:具备电力电子、自动控制理论基础,熟悉Matlab/Simulink仿真工具,从事微电网、新能源系统建模与控制研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①掌握直流微电网中多变换器系统的统一建模方法;②理解状态空间平均法在非线性电力电子系统中的应用;③实现系统线性化用于稳定性分析与控制器设计;④通过Matlab代码复现和扩展模型,服务于科研仿真与教学实践。; 阅读建议:建议读者结合Matlab代码逐步理解建模流程,重点关注状态变量的选择与平均化处理的数学推导,同时可尝试修改系统参数或拓扑结构以加深对模型通用性和适应性的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值