建一个门户网站多少钱,做网站和做网页有啥区别,劳务公司找工程网,wordpress文章太多Servlets Filter 是Servlet 2.3 规范中新增加的#xff0c;它是截取用户从客户端提交的请求#xff0c;在还没有到达需要访问的资源时运行的一个类。它操纵来自客户端的请求#xff0c;在资源还没有初发送到客户端前截取响应#xff0c;并处理这些还没有发送到客户端的响应…Servlets Filter 是Servlet 2.3 规范中新增加的它是截取用户从客户端提交的请求在还没有到达需要访问的资源时运行的一个类。它操纵来自客户端的请求在资源还没有初发送到客户端前截取响应并处理这些还没有发送到客户端的响应。 Filters 有许多的应用场合。Servlet 2.3 规范建议如下的地方可以应用Filter authentication filters logging and auditing filters image conversion filters data compression filters encryption filters tokenizing filters filters that trigger resource access events XSL/T filters that transform XML content MIME-type chain filters编写一个简单的 Filter 学习怎么样写Filter的第一步是看一个非常简单的实例。Filter 是一个实现了 javax.servlet.Filter 接口的类。javax.servlet.Filter 接口定义了三个方法public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) public FilterConfig getFilterConfig() public void setFilterConfig (FilterConfig filterConfig) 创建 javax.servlet.FilterConfig 对象并完成初始化后传递给 Filter 是容器的职责。javax.servlet.FilterConfig 可以被用来 提取 Filter name在配置描述符中定义的 提取初始化变量在配置描述符中定义的 得到 ServletContext 对象的引用 setFilterConfig() 方法可以被用来设置一个对象为某个 Filter 的属性。doFilter() 方法实际上真正要进行 filter 动作的地方。在这里你可以解析用户的请求记录统计到文件处理返回客户端的响应等等。列表1是一人非常简单的例子当它 filter 客户端请求时打印一个消息到控制台然后当它 filter 一个返回客户端的响应时再打印一个消息到控制台。图1是一个示例这个简单的 Filter 怎样处理请求-响应模型的图表。 列表1: 一个非常简单的 Filter (SimpleFilter.java)package com.filters;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import java.io.IOException;import javax.servlet.ServletException;public class SimpleFilter implements Filter{ private FilterConfig filterConfig; public void doFilter (ServletRequest request, ServletResponse response, FilterChain chain) { try { System.out.print (Within Simple Filter ... ); System.out.println (Filtering the Request ...); chain.doFilter (request, response); System.out.print (Within Simple Filter ... ); System.out.println (Filtering the Response ...); } catch (IOException io) { System.out.println (IOException raised in SimpleFilter); } catch (ServletException se) { System.out.println (ServletException raised in SimpleFilter); } } public FilterConfig getFilterConfig() { return this.filterConfig; } public void setFilterConfig (FilterConfig filterConfig) { this.filterConfig filterConfig; }} 以上的代码中可以看出这个 Filter 是一个名为 SimpleFilter.java 类它实现了 javax.servlet.Filter 接口并提供了这个接口中三个方法的实现。 注 意doFilter 可以分为二个部分filter request 与 filter response 。这二部分由 javax.servlet.FilterChain 对象调用 chain 中的下一个对象来隔开这下一个对象可能是一个 Servlet 或者另外的一个 Filter 。 现在我们写好了这样的一个简单的 Filter 需要把它配置到一个容器中看看运行结果。 Apache Jatarka Tomcat4.0 以上版本都支持 Servlet 2.3 规范。本文所有的实例都在此环境下测试通过。 Filters 定义在web应用描述符中即 web.xml 文件。Filters 先被定义然后映射(map)到 Servlet 或者 URL 这与 Servlet 的定义与映射是完全一样的。列表2是 web.xml 文件中配置 SimpleFilter.java 并映射(map)到一个 Servlet 。 Listing 2: web.xml?xml version 1.0 encoding ISO-8859-1?!DOCTYPE web-app PUBLIC -//Sun Microsystems, Inc.//DTD Web Application 2.3//EN http://java.sun.com/j2ee/dtds/web-app_2_3.dtdweb-app !-- Define the filters within the Web Application -- filter filter-name Simple Filter Example /filter-name filter-class com.filters.SimpleFilter /filter-class /filter !-- Map the filter to a Servlet or URL -- filter-mapping filter-name Simple Filter Example /filter-name url-pattern /simple /url-pattern /filter-mapping !-- Define the Servlets within the Web Application -- servlet servlet-name Simple Servlet /servlet-name servlet-class com.servlets.SimpleServlet /servlet-class /servlet !-- Define Servlet mappings to urls -- servlet-mapping servlet-name Simple Servlet /servlet-name url-pattern /simple /url-pattern /servlet-mapping/web-app很可惜后面的东东网上都没有了现在这些网站对自己的内容都太不负责任了不过索性大概开发流程是说出来了具体工作原理就找找别的资料吧 转载于:https://www.cnblogs.com/menghe/articles/188432.html