web.xml中配置过滤器
在 web.xml 文件中配置过滤器 在 Java Servlet 编程中,过滤器是一个非常重要的概念,它允许开发者截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP 页面发出的响应。在 web.xml 文件中配置过滤器是实现这个功能的关键一步骤。 在 Servlet API 版本 2.3 中引入了过滤器的概念,所有支持 Servlet API 版本 2.3 的服务器都支持过滤器。但是,为了使用与过滤器有关的元素,必须在 web.xml 文件中使用版本 2.3 的 DTD。 过滤器可以截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP页面发出的响应。在执行一个 Servlet 或 JSP页面之前,必须执行第一个相关的过滤器的 doFilter 方法。在该过滤器对其 FilterChain 对象调用 doFilter 时,执行链中的下一个过滤器。如果没有其他过滤器,Servlet 或 JSP页面被执行。 过滤器具有对到来的 ServletRequest 对象的全部访问权,因此,它们可以查看客户机名、查找到来的 cookie 等。为了访问 Servlet 或 JSP 页面的输出,过滤器可将响应对象包裹在一个替身对象(stand-in object)中,比方说把输出累加到一个缓冲区。在调用 FilterChain 对象的 doFilter 方法之后,过滤器可检查缓冲区,如有必要,就对它进行修改,然后传送到客户机。 在 web.xml 文件中,过滤器可以使用 filter 元素来声明。filter 元素中可以包含 filter-name、filter-class 和 init-params 子元素。filter-name 元素用来指定过滤器的名称,filter-class 元素用来指定过滤器的完全限定类名,init-params 元素用来指定过滤器的初始参数。 例如,下面是一个简单的过滤器声明: ```xml <filter> <filter-name>Reporter</filter-name> <filter-class>moreservlets.ReportFilter</filter-class> </filter> ``` 在这个例子中,过滤器的名称是 Reporter,它对应的类是 moreservlets.ReportFilter。 在 web.xml 文件中,filter 元素必须出现在任意 filter-mapping 元素之前,filter-mapping 元素又必须出现在所有 servlet 或 servlet-mapping 元素之前。 例如,下面是一个完整的 web.xml 文件: ```xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.3" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_3.xsd"> <filter> <filter-name>Reporter</filter-name> <filter-class>moreservlets.ReportFilter</filter-class> </filter> <filter-mapping> <filter-name>Reporter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>moreservlets.MyServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> </web-app> ``` 在这个例子中,我们首先声明了一个名为 Reporter 的过滤器,然后声明了一个名为 MyServlet 的 Servlet。我们使用 filter-mapping 元素将过滤器与 Servlet 关联起来。 在 web.xml 文件中配置过滤器是实现 Servlet 编程中的一个重要步骤。通过正确地配置过滤器,我们可以截取和修改进入一个 Servlet 或 JSP 页面的请求或从一个 Servlet 或 JSP 页面发出的响应。
- zhongkeruan112013-07-30还可以,问题解决了,通过别的方式
- -tomcat-2013-01-06不错不错 值得拥有 很有帮助
- 粉丝: 0
- 资源: 7
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助