那末它是怎样完成的呢?
编写一个过滤器的类完成Filter接口
完成接口中还没有完成的要领(偏重完成doFilter要领)
在web.xml中举行设置(主如果设置要对哪些资本举行过滤)
它的事情道理?
Filter接口中有一个doFilter要领,当我们编写好Filter,并设置对哪一个web资本举行阻拦后,WEB服务器每次在挪用web资本的service要领之前,都邑先挪用一下filter的doFilter要领,因而,
在该要领内编写代码可到达以下目的:
挪用目的资本之前,让一段代码实行。
是不是挪用目的资本(即是不是让用户接见web资本)。
挪用目的资本以后,让一段代码实行。
web服务器在挪用doFilter要领时,会通报一个filterChain对象进来,filterChain对象是filter接口中最主要的一个对象,它也供应了一个
doFilter要领,开发人员能够依据需求决议是不是挪用此要领,挪用该要领,则web服务器就会挪用web资本的service要领,即web资本就会被接见,不然web资本不会被接见。
过滤器类型:
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; /** * @author yangcq * @description 过滤器Filter的事情道理 */ public class FilterTest implements Filter{ public void destroy() { System.out.println("----Filter烧毁----"); } public void doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain) throws IOException, ServletException { // 对request、response举行一些预处理 request.setCharacterEncoding("UTF-8"); response.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); System.out.println("----挪用service之前实行一段代码----"); filterChain.doFilter(request, response); // 实行目的资本,放行 System.out.println("----挪用service以后实行一段代码----"); } public void init(FilterConfig arg0) throws ServletException { System.out.println("----Filter初始化----"); } }
在web. xml中设置过滤器:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"> <display-name></display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!--设置过滤器--> <filter> <filter-name>FilterTest</filter-name> <filter-class>com.yangcq.filter.FilterTest</filter-class> </filter> <!--映照过滤器--> <filter-mapping> <filter-name>FilterTest</filter-name> <!--“/*”示意阻拦一切的要求 --> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
以上就是java过滤器怎样完成的细致内容,更多请关注ki4网别的相干文章!