过滤器地图ping 在 Web.xml 中
⚡ 智能摘要
过滤器地图ping Web.xml 定义了 JSP 过滤器如何拦截客户端请求和服务器响应。 Java Web应用程序。它会在部署描述符中注册每个过滤器,从而在访问资源之前启用身份验证、日志记录、压缩和加密。
什么是 JSP 过滤器?
- web.xml 中的过滤器用于过滤 Java Web应用程序。
- 他们会在客户端尝试访问资源之前拦截其请求。
- 它们操纵来自服务器的响应并发送到客户端。
过滤器在 web.xml 中定义,它们是到 servlet 或 JSP. 当 JSP 容器随 Web 应用程序启动时,它会在 web.xml 中创建已在部署描述符中声明的每个过滤器的实例。
JSP 中的过滤器类型
JSP 支持多种过滤器类型,每种类型都处理请求-响应周期中的特定问题:
- 身份验证筛选器
- 数据压缩过滤器
- 加密过滤器
- MIME 链过滤器
- 日志过滤器
- 标记过滤器
JSP 过滤方法
了解过滤器类型后,理解控制过滤器生命周期的方法会很有帮助。以下是过滤器方法:
公共 void doFilter(ServletRequest,ServletResponse,FilterChain)
每次当每个客户端向某个资源发出请求/响应时都会调用此函数。
公共无效初始化(FilterConfig)
这表示 JSP 中的过滤器已投入使用。
公共无效销毁()
这表明过滤器已停止使用。
例如:
在这个例子中,我们创建了过滤器并映射到 Java web.xml 过滤器。
Gurufilter.java
package demotest; import java.io.IOException; import java.util.Date; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; public class GuruFilter implements Filter { public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { // TODO Auto-generated method stub HttpServletRequest req = (HttpServletRequest) request; String ipAddress = req.getRemoteAddr(); System.out.println("IP Address "+ipAddress + ", Time is" + new Date().toString()); // pass the request along the filter chain chain.doFilter(request, response); } /** * @see Filter#init(FilterConfig) */ public void init(FilterConfig fConfig) throws ServletException { String guruparam = fConfig.getInitParameter("guru-param"); //Print the init parameter System.out.println("Test Param: " + guruparam); } }
Web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp_ID" version="2.4" 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_4.xsd"> <display-name> test</display-name> <filter> <description> </description> <display-name> GuruFilter</display-name> <filter-name>GuruFilter</filter-name> <filter-class>demotest.GuruFilter</filter-class> <init-param> <param-name>guru-param</param-name> <param-value>This is guru paramter</param-value> </init-param> </filter> <filter-mapping> <filter-name>GuruFilter</filter-name> <url-pattern>/GuruFilter</url-pattern> </filter-mapping>
代码说明
Gurufilter.java
Code 第 17-32 行: 这里我们使用“doFilter”方法,获取请求对象(在本例中,请求对象是req(HttpServletRequest对象)),获取客户端的远程地址,并在控制台上打印出来,同时还在控制台上打印日期和时间。
Code 第 33-37 行: 这里我们使用 init 方法,它接收 init 参数并在控制台中打印该参数。
Web.xml
Code 第 10-11 行: 过滤器地图ping 在 web.xml 中 Guru使用类名进行筛选 GuruFilter.java 文件中,我们有 filter-name 参数。 Guru过滤器和过滤器类,即目录路径 Guru过滤器类。
Code 第 13-15 行: 地图ping 初始化参数名为 guru-param,并获取其值,该值位于 filter 标签下,因此该初始化参数已为 gurufilter 定义。
输出:
执行上述代码时,您将获得以下输出:
- 输出是来自 init 参数的 Test Param
- 并获取其 IP 地址、日期和时间。


