Servlet过滤器(FilterConfig用法)

Web容器创建FilterConfig的对象。该对象可用于从web.xml文件获取配置信息。
FilterConfig接口的方法FilterConfig界面中有以下4种方法。

  1. public void init(FilterConfig config):仅在将init()方法用于初始化过滤器后才调用它。
  2. public String getInitParameter(String parameterName):返回指定参数名称的参数值。
  3. public java.util.Enumeration getInitParameterNames():返回包含所有参数名称的枚举。
  4. public ServletContext getServletContext():返回ServletContext对象。
FilterConfig的示例
在此示例中, 如果将param-value更改为no, 则请求将被转发到servlet, 否则过滤器将创建带有以下消息的响应:该页面正在处理中。让我们看一下FilterConfig的简单示例。在这里, 我们创建了4个文件:
  • index.html
  • MyFilter.java
  • HelloServlet.java
  • web.xml
index.html
< a href="http://www.srcmini.com/servlet1"> click here< /a>

MyFilter.java
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.*; public class MyFilter implements Filter{ FilterConfig config; public void init(FilterConfig config) throws ServletException { this.config=config; }public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws IOException, ServletException { PrintWriter out=resp.getWriter(); String s=config.getInitParameter("construction"); if(s.equals("yes")){ out.print("This page is under construction"); } else{ chain.doFilter(req, resp); //sends request to next resource }} public void destroy() {} }

HelloServlet.java
import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.http.*; public class HelloServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.print("< br> welcome to servlet< br> "); }}

web.xml
< web-app> < servlet> < servlet-name> HelloServlet< /servlet-name> < servlet-class> HelloServlet< /servlet-class> < /servlet> < servlet-mapping> < servlet-name> HelloServlet< /servlet-name> < url-pattern> /servlet1< /url-pattern> < /servlet-mapping> < filter> < filter-name> f1< /filter-name> < filter-class> MyFilter< /filter-class> < init-param> < param-name> construction< /param-name> < param-value> no< /param-value> < /init-param> < /filter> < filter-mapping> < filter-name> f1< /filter-name> < url-pattern> /servlet1< /url-pattern> < /filter-mapping> < /web-app>

下载此示例(使用Myeclipse IDE开发)
下载此示例(使用Eclipse IDE开发)
【Servlet过滤器(FilterConfig用法)】下载此示例(使用Netbeans IDE开发)

    推荐阅读