2.FilterConfig的作用讲解

 

 

 

/booksStore/src/com/exp/filter/MyFilter.java

复制代码
package com.gyf.web.filter;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

public class MyFilter implements Filter{

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        // TODO Auto-generated method stub
        System.out.println("过滤器的初始化");
        System.out.println("过滤器的名称:" + filterConfig.getFilterName());
        System.out.println("username:" + filterConfig.getInitParameter("username"));
        System.out.println("password:" + filterConfig.getInitParameter("password"));
        System.out.println("application:" + filterConfig.getServletContext());
    }

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {
        System.out.println("拦截请求");
        
        //放行请求
        chain.doFilter(request, response);
    }

    @Override
    public void destroy() {
        System.out.println("过滤器销毁");
    }

}
复制代码

 

/booksStore/WebContent/WEB-INF/web.xml

复制代码
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
  <display-name>day17-20180402</display-name>
  
  <!-- 1.配置一个ServletContext监听器 -->
 <!--  <listener>
      <listener-class>com.gyf.web.listener.MyServletContextListener</listener-class>
  </listener> -->
  
  <!-- 2.配置一个Session监听器 -->
 <!--  <listener>
      <listener-class>com.gyf.web.listener.MyHttpSessionListener</listener-class>
  </listener> -->
  
  <!-- 3.配置一个Request监听器 -->
  <!-- <listener>
      <listener-class>com.gyf.web.listener.MyHttpRequestListener</listener-class>
  </listener> -->
  
  <!-- 4.配置一个ServletContext属性监听器 -->
 <!--  <listener>
      <listener-class>com.gyf.web.listener.MyServletContextAttributeListener</listener-class>
  </listener> -->

    <!-- 5.配置一个过滤器,用于拦截请求 -->
    <filter>
        <filter-name>myfilter</filter-name>
        <filter-class>com.gyf.web.filter.MyFilter</filter-class>
        <!-- 初始化参数 -->
        <init-param>
            <param-name>username</param-name>
            <param-value>zhagsan</param-value>
        </init-param>
        <init-param>
            <param-name>password</param-name>
            <param-value>123456abcdefg</param-value>
        </init-param>
    </filter>

    <!-- 过滤器的拦截规则 -->
    <filter-mapping>
        <filter-name>myfilter</filter-name>
        <!-- 拦截任何一个请求 -->
        <!-- <url-pattern>/*</url-pattern> -->
        
        <!-- 只拦截jsp请求 不能写成【/*.jsp】,否则就会报错  -->
        <!-- <url-pattern>/*.jsp</url-pattern> -->
        
        <!-- 只想拦截某一个Servlet -->
        <url-pattern>/PersonListServlet</url-pattern>
        
        <!--  配置拦截的方式-->
        <dispatcher>FORWARD</dispatcher>
    </filter-mapping>
  
  <!-- 6.多个过滤器 -->
  <!-- <filter>
      <filter-name>myfilter1</filter-name>
      <filter-class>com.gyf.web.filter.MyFilter1</filter-class>
  </filter>
  <filter>
      <filter-name>myfilter2</filter-name>
      <filter-class>com.gyf.web.filter.MyFilter2</filter-class>
  </filter>

    <filter-mapping>
        <filter-name>myfilter1</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>myfilter2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping> -->

   
  
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.htm</welcome-file>
    <welcome-file>default.jsp</welcome-file>
  </welcome-file-list>
</web-app>
复制代码

 

posted @   expworld  阅读(1514)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示