Servlet过滤器——创建过滤器

1.概述

介绍如何创建一个过滤器,并使用过滤器在打开页面的同时输出信息,此功能是由过滤器处理完成的。

2.技术要点

Serlvet过滤器实现了Filter接口,在Filter接口中定义了以下几个方法:

a. Init().程序启动时调用此方法,用于初始化该Filter。

b. doFilter().客户请求服务器时会经过这里,是具体执行过滤器代码。

c. destroy().程序关闭时调用此方法,用于销毁一些资源。

以上三个方法反映了Filter的生命周期,其中init()和destroy()方法只会被调用一次,分别在web程序加载和卸载的时侯调用,而doFilter()方法每次有客户端请求都会被调用一次。

3.具体实现

(1)创建过滤器类FirstFilter,主要代码如下:

package com.mr;
public class FirstFilter implements Filter {
      private FilterConfig filterConfig;
      //初始化方法
      public void init(FilterConfig filterConfig) throws ServletException {
      this.filterConfig = filterConfig;
      }
      //具体执行的方法
      public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException{
            try {
                  System.out.println("客户端的请求经过这里!!!!");
                  filterChain.doFilter (request, response);
                  System.out.println("帐号和密码请求处理经过这里");
            } catch (ServletException e) {
                  System.out.println("客户端请求失败");
            }catch(IOException io){
                  System.out.println("帐号和密码请失败");
            }
      }
      //销毁过滤器
      public void destroy() {
            this.filterConfig=null;
      }
}

(2)在web.xml中配置过滤器,关键代码如下:

<filter>
     <filter-name>FirstFilter</filter-name><!--过滤器名称 -->
     <filter-class>com.mr.FirstFilter</filter-class><!--过滤器的实现类 -->
</filter>
<filter-mapping>
     <filter-name>firstFilter</filter-name>    <!--映射过滤器名称 -->
     <url-pattern>/*</url-pattern>       <!--使用通配符*什么请求都经过滤器 -->
</filter-mapping>
时间: 2024-10-30 20:56:52

Servlet过滤器——创建过滤器的相关文章

Servlet过滤器,Servlet过滤器创建和配置

第一:Servlet的过滤器的创建和配置,创建一个过滤器对象需要实现javax.servlet.Filter接口,同时实现Filter的3个方法.        第一方法是过滤器中的init()方法用于对过滤器的初始值进行处理,第二个是destory()方法是过滤器的销毁方法,主要用于释放资源,对于过滤处理的业务逻辑需要编写到doFilter()方法中,在请求过滤处理后,需要调用chain参数的doFilter()方法将请求向下传递给下一个过滤器或者目标资源. (过滤器和Servlet十分相似哟

【转载】Servlet Filter(过滤器)、Filter是如何实现拦截的、Filter开发入门

Servlet Filter(过滤器).Filter是如何实现拦截的.Filter开发入门 Filter简介 Filter也称之为过滤器,它是Servlet技术中最激动人心的技术,WEB开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能.例如实现URL级别的权限访问控制.过滤敏感词汇.压缩响应信息等一些高级功能. Servlet API中提供了一个Filter接口,开发web应用时

Servlet中的过滤器Filter详解

转自: http://blog.csdn.net/sd0902/article/details/8395641 web.xml中元素执行的顺序listener->filter->struts拦截器->servlet. 1.过滤器的概念 Java中的Filter 并不是一个标准的Servlet ,它不能处理用户请求,也不能对客户端生成响应. 主要用于对HttpServletRequest 进行预处理,也可以对HttpServletResponse 进行后处理,是个典型的处理链. 优点:过滤

Java 创建过滤器 解析xml文件

今天写了一个过滤器demo,现在是解析actions.xml文件,得到action中的业务规则:不需要导入任何jar包 ActionFilter过滤器类: package accp.com.xh.utils; import java.io.IOException; import java.io.InputStream; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.Filte

ASP.NET Web API 过滤器创建、执行过程(二)

前言 前面一篇中讲解了过滤器执行之前的创建,通过实现IFilterProvider注册到当前的HttpConfiguration里的服务容器中,当然默认的基础服务也是有的,并且根据这些提供程序所获得的的过滤器信息集合进行排序.本篇就会对过滤器在创建完之后所做的一系列操作进行讲解. ASP.NET Web API 过滤器创建.执行过程(二) FilterGrouping过滤器分组类型 FilterGrouping类型是ApiController类型中的私有类型,它的作用就如同它的命名一样,用来对过

ASP.NET Web API 过滤器创建、执行过程(一)

前言 在上一篇中我们讲到控制器的执行过程系列,这个系列要搁置一段时间了,因为在控制器执行的过程中包含的信息都是要单独的用一个系列来描述的,就如今天的这个篇幅就是在上面内容之后所看到的一个知识要点之一. ASP.NET Web API 过滤器创建.执行过程(一) 下面就来讲解一下在ASP.NET Web API框架中过滤器的创建.执行过程. 过滤器所在的位置 图1 图1所示的就是控制器执行过程很粗略的表示. 通过上一篇内容我们了解到控制器方法选择器最后返回的并不是控制器方法,而是对于控制器方法描述

Myeclipse中Servlet的创建

Myeclipse中Servlet的创建 myeclipse中Servlet的创建困扰了我一个晚上,在web.xml中创建我是可以做的,就是在用注解方式进行时地址访问永远出现404错误,我总结了下错误的原因: 1:浏览器输入的url地址不对,如下 http://localhost:8080/LoginServlet 忽略了自己创建的web工程名 2:jdk的版本不对,servlet3.0是要求jdk6.0以上的版本 3:注解中没有导入该导入的包 1 import javax.servlet.an

Servlet过滤器创建与配置

例1 创建一个过滤器,实现网站访问计数器的功能,并在web.xml文件的配置中,将网站访问量的初始值设置为5000. (1)创建名称为CountFilter的类,该类实现javax.servlet.Filter接口,是一个过滤器对象,通过该过滤器实现统计网站访问人数的功能.关键代码如下: package com.cn.gao; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterC

Servlet字符编码过滤器

在Java Web程序开发中,由于Web容器内部使用编码格式并不支持中文字符集,所以,处理浏览器请求中的中文数据就会出现乱码的现象.由于Web容器使用了ISO-8859-1的编码格式,所以在Web应用的业务处理中也会使用ISO-8859-1编码格式.虽然浏览器提交的请求使用的是中文编码格式UTF-8,但经过业务处理中的ISO-8859-1编码,仍然会出现中文乱码现象.解决此问题的方法非常简单,在业务处理中重新指定中文字符集进行编码即可解决.在实际的开发过程中,如果通过每一个业务处理指定中文字符集