Filter:过滤器,用来过滤网站数据
1.处理乱码
2.登录验证
......
Filer编程:web.xml配置代码
<filter>
   <filter-name>test13Filter</filter-name>
   <filter-class>FilterWeb.test13Filter</filter-class>
   </filter>
   <filter-mapping>
   <filter-name>test13Filter</filter-name>
   <url-pattern>/FilterWeb/*</url-pattern>
   </filter-mapping>
1.编写好以下连段代码test13,test14,我们直接访问test14的时候会有编码问题,导致输出乱码
package FilterWeb;
import java.io.IOException;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
public class test14 extends HttpServlet{
   @Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
                  resp.getWriter().println("你好吗?");
}
   
   @Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		// TODO Auto-generated method stub
	   doGet(req, resp);
	}
}package FilterWeb;
import java.io.IOException;
import jakarta.servlet.Filter;
import jakarta.servlet.FilterChain;
import jakarta.servlet.FilterConfig;
import jakarta.servlet.ServletException;
import jakarta.servlet.ServletRequest;
import jakarta.servlet.ServletResponse;
public class test13Filter implements Filter {
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)throws IOException, ServletException {
		
		request.setCharacterEncoding("utf-8");
		response.setContentType("text/html;charset=utf-8");
		
		/*
		 * chain:链
		 * 过滤中的所有代码,再过滤特定请求的时候都会被执行
		 * 必须要让过滤器继续执行:
		 * 		chain.doFilter(request, response);
		 */
		
		chain.doFilter(request, response);
		
	}
	public void init(FilterConfig filterConfig) throws ServletException {
		System.out.println("test13初始化");
	}
	public void destroy() {
		System.out.println("test13销毁");
	}
}
2.web.xml配置映射
  <filter>
   <filter-name>test13Filter</filter-name>
   <filter-class>FilterWeb.test13Filter</filter-class>
   </filter>
   <filter-mapping>
  <filter-name>test13Filter</filter-name>
<在FilterWeb/下的所有程序都会走过滤器>
   <url-pattern>/FilterWeb/*</url-pattern>
   </filter-mapping>
   
//以下对test14配置两个地址,是为了方便测试,showtest14并不会走过滤器
    <servlet>
   <servlet-name>test14</servlet-name>
   <servlet-class>FilterWeb.test14</servlet-class>
   </servlet>
   <servlet-mapping>
   <servlet-name>test14</servlet-name>
   <url-pattern>/showtest14</url-pattern>
   </servlet-mapping>
   
    <servlet>
   <servlet-name>test14</servlet-name>
   <servlet-class>FilterWeb.test14</servlet-class>
   </servlet>
   <servlet-mapping>
   <servlet-name>test14</servlet-name>
   <url-pattern>/FilterWeb/test14</url-pattern>
   </servlet-mapping>

 
3.Filter启动和销毁
启动:服务器启动init就初始化
销毁:当服务器关闭,调用destory()销毁










