在本節(jié)中,給出了一個(gè)有用的過濾器示例。
這是一個(gè)僅通過過濾器發(fā)送響應(yīng)的示例 -
文件:MyFilter.java
import java.io.*;
import javax.servlet.*;
public class MyFilter implements Filter{
public void init(FilterConfig arg0) throws ServletException {}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
PrintWriter out=res.getWriter();
out.print("<br/>this site is underconstruction..");
out.close();
}
public void destroy() {}
}
計(jì)算單頁訪問次數(shù)的示例
文件:MyFilter.java
import java.io.*;
import javax.servlet.*;
public class MyFilter implements Filter{
static int count=0;
public void init(FilterConfig arg0) throws ServletException {}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
PrintWriter out=res.getWriter();
chain.doFilter(request,response);
out.print("<br/>Total visitors "+(++count));
out.close();
}
public void destroy() {}
}
在過濾器中檢查總響應(yīng)時(shí)間的示例
文件:MyFilter.java
import java.io.*;
import javax.servlet.*;
public class MyFilter implements Filter{
static int count=0;
public void init(FilterConfig arg0) throws ServletException {}
public void doFilter(ServletRequest req, ServletResponse res,
FilterChain chain) throws IOException, ServletException {
PrintWriter out=res.getWriter();
long before=System.currentTimeMillis();
chain.doFilter(request,response);
long after=System.currentTimeMillis();
out.print("<br/>Total response time "+(after-before)+" miliseconds");
out.close();
}
public void destroy() {}
}