我正在尝试学习在Java Web应用程序中使用Web过滤器。在添加过滤器类和编辑web.xml文件之前,欢迎页面(index.html)可以很好地加载并显示用户表单。添加过滤器后,该过滤器似乎可以正常工作,因为我正在获取控制台输出,但是html页现在为空白,浏览器调试显示服务器响应为空白。我已经玩了一段时间了,看不出问题的所在。
web.xml
isInfixOf
WebContent> index.html
cleanUpChars :: [String] -> [String]
cleanUpChars = map (\w -> if "**" `isInfixOf` w then filter (/= '*') w else w)
TrackingFilter
cleanUpChars :: [String] -> [String]
cleanUpChars = map possiblyRemoveAsterisks
where possiblyRemoveAsterisks w = if "**" `isInfixOf` w then filter (/= '*') w else w
编辑: 找到了这篇文章(https://stackoverflow.com/a/22237775/11389578),现在在更改过滤器映射值之后显示index.html。现在,在运行应用程序时,不会打印在过滤器doFilter中指定的控制台输出。
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
version="4.0">
<display-name>My Web App</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<filter>
<filter-name>TrackingFilter</filter-name>
<filter-class>com.MyWebApp.controller.servlet.filters.tracking.TrackingFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>TrackingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>