Servlet过滤器与Servlet十分相似,但具有拦截客户端(浏览器)请求的功能,可以改变请求中的内容来满足实际开发的需求。对于开发人员而言,过滤器实质就是在Web应用服务器上的一个Web应用组件,用于拦截客户端与目标资源的请求,并执行一定过滤处理后发送给目标资源。 Filter接口的方法: 方法声明 说明 Void init(FilterConfig filterConfig) throws ServletException 过滤器的初始化方法,此方法在初始化过滤器时调用 Void doFilter(ServletRequest request,ServletResponse response,FilterChain chain) throws IOException,ServletException 对请求进行过滤 Void destroy() 销毁方法以释放资源 FilterConfig接口方法: 方法声明 说明 String getFilterName() 用于获取过滤名 ServletContext getServletContext() 获取过滤器的上下文 String getInitParameter(String name) 获取过滤器的初始化参数值 Enumeration getInitParameter() 获取过滤器的所有初始化参数 FilterChain接口方法: Public void doFilter(SertvletRequest request,ServletResponse response) throws IOException,ServletException 此方法用于将过滤后的请求传递给下一个过滤器,如果此过滤器是过滤器链中的最后一个过滤器,那么请求将传送给目标资源。 Web.xml配置文件中配置Filter: <!-- 注册过滤器 --> <filter> <description>注册过滤器MyFilter</description> <!-- 过滤器的名称 --> <filter-name>MyFilter</filter-name> <!-- 过滤器的使用类 --> <filter-class>com.wgh.MyFilter</filter-class> </filter> <!-- 配置过滤器 --> <filter-mapping> <filter-name>MyFilter</filter-name> <!-- 设置过滤器要过滤的页面,如果是指定页面就指定页面 login.jsp --> <url-pattern>/MyFilter</url-pattern> </filter-mapping> 通过注解配置过滤器: @WebFilter(filterName="/MyFilter",urlPatterns={"/First.jsp"}, initParams={@WebInitParam(name="mood",value="KKK")}) filterName:配置过滤器的名称。 urlPatterns:配置过滤器要过滤的页面。 initParams:配置初始化参数。