部署描述文件web.xml解析(五) 声明过滤器
来源:互联网 发布:unity3d awake 编辑:程序博客网 时间:2024/06/05 05:21
简介
过滤器的基本概念是拦截和修改servlet或JSP页面的输入请求和输出响应。本文将介绍如何在web.xml中配置过滤器。
过滤器实例
在一个servlet或JSP页面执行之前,第一个关联的过滤器的doFilter方法率先执行。该过滤器调用FilterChain对象doFilter方法之后,下一个过滤器将被执行。如果没有其它过滤器,就执行servlet或JSP页面。过滤器已经完全访问进入ServletRequest对象,所以他们可以查找客户端的主机名,查找进入的cookie等。为访问servlet或者JSP页面的输出,过滤器可以将响应对象封装到一个替代的对象中,如将内容输出集中到缓存中。在调用FilterChain对象的doFilter方法之后,这个过滤器可以检查缓存,并在必要时修改,然后将输出到客户端。
package coreservlets;import java.io.*;import javax.servlet.*;import javax.servlet.http.*;import java.util.*;/** * Simple filter that prints a report on the standard output whenever the * associated servlet or JSP page is accessed. */public class ReportFilter implements Filter {public void doFilter(ServletRequest request, ServletResponse response,FilterChain chain) throws ServletException, IOException {HttpServletRequest req = (HttpServletRequest) request;System.out.println(req.getRemoteHost() + " tried to access "+ req.getRequestURL() + " on " + new Date() + ".");chain.doFilter(request, response);}public void init(FilterConfig config) throws ServletException {}public void destroy() {}}
声明过滤器
一旦创建好了过滤器,就需要在web.xml文件中使用filter元素和filter-name(任意名)、filter-class(完全限定类名)、可选的init-param子元素来声明过滤器。
<!-- Register the name "Reporter" for ReportFilter. --><filter><filter-name>Reporter</filter-name><filter-class>coreservlets.ReportFilter</filter-class></filter>一旦为过滤器命名,就可以通过filter-mapping元素将它与一个或多个servlet或JSP页面相关联。此时有两个选择:
第一种,可以使用filter-name和servlet-name子元素将过滤器与一个指定的servlet名(必须在同一个web.xml文件中使用servlet元素声明)相关联。
<!-- Apply the Reporter filter to the servlet named "PageName". --><filter-mapping><filter-name>Reporter</filter-name><servlet-name>SomeServletName</servlet-name></filter-mapping>第二种,可以使用filter-name和url-pattern子元素与一组servlet,JSP页面或静态内容相管理。
<!-- Apply the Reporter filter to the servlet named "PageName". --><filter-mapping><filter-name>Reporter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
参考资料
1. Servlet与JSP核心编程 卷2
阅读全文
0 0
- 部署描述文件web.xml解析(五) 声明过滤器
- 部署描述文件web.xml解析(一)总述
- 部署描述文件web.xml解析(二) Servlet生命周期
- 部署描述文件web.xml解析(三) 默认主页
- 部署描述文件web.xml解析(六) 配置应用程序监听器
- web部署描述文件web.xml
- 部署描述文件web.xml解析(四) 分配名称和自定义URL
- java web项目的部署描述文件--web.xml
- WEB.XML(servlet的部署描述符文件)
- web.xml 部署描述符文件元素节点顺序
- web.xml配置详解 部署描述符文件
- JavaWeb里面web.xml配置部署描述符文件详解
- web.xml部署描述符
- 部署描述符:web.xml
- Web应用部署描述符 web.xml
- web.xml文件元素描述
- web.xml 部署描述符元素
- web.xml 部署描述符元素
- Java语言基础——数据类型与数据类型转换
- PHP上传文件
- C语言主要应用领域,C和C++的区别,自上向下和自下向上设计思想
- 【深度学习笔记002 神经网络与主流框架】
- mt3
- 部署描述文件web.xml解析(五) 声明过滤器
- 【Struts2】Session的获取
- Windows10 和 Ubuntu 16.04 双系统 系统时间不统一解决
- 关于开发工具不能找到系统中已经存在的字体
- swift 基础学习回顾(一)
- 【Leetcode】200. Number of Island
- NYOJ 255
- llinux文件编程2
- mt4