0
点赞
收藏
分享

微信扫一扫

JavaWeb-Filter过滤器

慎壹 2022-03-30 阅读 52
java

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()销毁

举报

相关推荐

【后端】javaweb过滤器Filter

JavaWeb笔记(8):Filter过滤器

JavaWeb_09_Filter过滤器

【JavaWeb】Filter过滤器 的使用

过滤器filter

Filter过滤器

过滤器-filter

0 条评论