【叶凡网络】关于Servlet中的doFilter方法

2014-01-15 10:17:14 | 新闻来源:叶凡网络 | 点击量:547

整洁地嵌套在javax.servlet包中那 3个接口分别是FilterFilterChain和 FilterConfig从编程的角度看,过滤器 API包括 3个简单的接口。过滤器类将实现 Filter 接口,然后使用这个过滤器类中的FilterChain和 FilterConfig接口。该过滤器类的一个引用将传递给 FilterChain对象,以允许过滤器把控制权传送给链中的下一个资源。FilterConfig对象将由容器提供给过滤器,以允许访问该过滤器的初始化数据。

过滤器必需运用三个方法,为了与我三步模式坚持一致。以便完全实现 Filter 接口:主要设计用于使过滤器为处置做准备。该方法接受一个 FilterConfig类型的对象作为输入。init这个方法在容器实例化过滤器时被调用。过滤器拥有单个用于处置请求和响应的方法—doFilt方法。这个方法接受三个输入参数:一个 ServletRequestrespons和一个 FilterChain对象。doFilt与 servlet拥有一个 servic方法(这个方法又调用 doPost或者 doGet来处置请求一样。

这个方法执行任何清理操作,destroi正如您想像的那样。这些操作可能需要在自动垃圾收集之前进行。跟踪满足一个客户机的Web请求所花的大致时间。清单 1展示了一个非常简单的过滤器。

清单 1.一个过滤器类实现

importjavax.servlet.*; 

importjava.util.*; 

importjava.io.*; 

publicclassTimeTrackFiltimplementFilter{ 

privatFilterConfigfilterConfig=null; 

publicvoidinitFilterConfigfilterConfigthrowServletExcept{ 

this.filterConfig=filterConfig; 

publicvoiddestroi{ 

this.filterConfig=null; 

ServletResponsresponse,publicvoiddoFiltServletRequestrequest.

ServletExcept{ FilterChainchainthrowIOException.

endTime; DatestartTime.

doubltotalTime; 

startTim=newDate;//Forwardtherequesttothenextresourcin

wrapper; thechainchain.doFiltrequest.

//--Processtherespons--\\ 

//Calculthedifferbetweenthestarttimeandendtime 

endTim=newDate; 

totalTim=endTime.getTim-startTime.getTim; 

totalTimetotalTim=totalTim/1000;//Convertfrommillisecondto

secondStringWritsw=newStringWrit; 

PrintWritwriter=newPrintWritsw; 

writer.println; 

writer.println"==============="; 

writer.println"Totalelapstimeis:"+totalTim+"seconds.";

writer.println"===============";//Logtheresultstringwriter.flush;

filterConfig.getServletContext.logsw.getBuff.toStr; 

}

不管怎样,这个过滤器的生命周期很简单。还是研究一下它吧:init方法将被调用。该类在这个方法中包含了一个指向 FilterConfig对象的引用。过滤器实际上并不需要这样做,当容器第一次加载该过滤器时。因为其中没有使用初始化信息,这里只是出于演示的目的同时传入分别指向这个请求/响应链中的ServletRequestServletRespons和 FilterChain对象的引用。然后过滤器就有机会处理请求,过滤器的大多数时间都消耗在这里。doFilt方法被容器调用。将处置任务传送给链中的下一个资源(通过调用 FilterChain对象引用上的doFilt方法)之后在处置控制权返回该过滤器时处理响应。

上一篇:【叶凡网络】日本民间组织称安倍参拜无道理可言要求安倍下台 下一篇:【叶凡网络】中央明确禁入提拔考察为裸官跑官等6类人