FilterConfig

FilterConfig的对象是由Web容器创建的。这个对象可以用来从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="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>  

标签: java, Java Servlet, Java Servlet语言, Java Servlet开发, Java Servlet语法, Java Servlet脚本, Java Servlet教程, Java Servlet入门, Java Servlet入门教程, Java Servlet进阶, Java Servlet宝典, Java Servlet学习, Java Servlet指南, Java Servlet大全