Servlet过滤器,Servlet过滤器创建和配置
Step_1:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的 3个方法。其中过滤器中的init()方法用于对过滤器的初始值进行处理,destory()方法是过滤器的销毁方法,主要用于释放资源,对于过滤处理的业务逻辑需要编写到doFilter()方法中,在请求过滤处理后,需要调用chain参数的doFilter()方法将请求向下传递给下一个过滤器或者目标资源。
(过滤器和Servlet十分相似哟,在创建之后同样需要对其进行配置,过滤器的配置主要分为两个步骤,分别位声明过滤器和创建过滤器映射)
Step_2:过滤器的配置简单说下,分为两个步骤,一是声明过滤器对象,二是创建过滤器映射。
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
<!-- 过滤器声明 -->
<filter>
<filter-name>CountFilter</filter-name><!-- 过滤器名称 -->
<filter-class>com.filter.CountFilter</filter-class><!-- 过滤器的完整类名 -->
<init-param>
<param-name>count</param-name>
<param-value>5000</param-value>
</init-param>
</filter>
<!-- 过滤器的映射 -->
<filter-mapping>
<!-- 过滤器的名字 -->
<filter-name>CountFilter</filter-name>
<!-- 过滤器的URL映射 -->
<url-pattern>/index.jsp</url-pattern>
</filter-mapping>
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
下面我们以项目为例,创建一个filter过滤器,对网页来访量进行统计。
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
项目结构如下图所示:
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
web.xml文件中filter过滤器的配置
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
CountFilter类的逻辑处理
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
前端页面index.jsp的编写
<---------------------------------------------------------------------------------------------------------------------------------------------------------------------->
运行结果如下: