Java WildFly中servlet过滤器处理HTML和JSP的差异

Java WildFly中servlet过滤器处理HTML和JSP的差异,java,jsp,servlets,wildfly,servlet-filters,Java,Jsp,Servlets,Wildfly,Servlet Filters,我有一个简单的静态HTML文件和简单的servlet过滤器,可以在内容中添加页眉和页脚 import javax.servlet.*; import javax.servlet.http.HttpServletRequest; import java.io.IOException; public class HeaderFooterFilter implements Filter { private static Logger logger = LoggerFactory.getLo

我有一个简单的静态HTML文件和简单的servlet过滤器,可以在内容中添加页眉和页脚

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;

public class HeaderFooterFilter implements Filter {

    private static Logger logger = LoggerFactory.getLogger(HeaderFooterFilter.class);

    @Override
    public void init(FilterConfig filterConfig) throws ServletException {
        logger.info("Filter init");
    }

    @Override
    public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
        logger.info("Adding header and footer");

        servletResponse.getWriter().println("<h1>Header from filter</h1><hr>");
        filterChain.doFilter(servletRequest, servletResponse);
        servletResponse.getWriter().println("<hr><p>Footer from filter</p>");

        logger.info("End of filter");
    }

    @Override
    public void destroy() {
        logger.info("Filter destroy");
    }
}
import javax.servlet.*;
导入javax.servlet.http.HttpServletRequest;
导入java.io.IOException;
公共类HeaderFooterFilter实现过滤器{
私有静态记录器Logger=LoggerFactory.getLogger(HeaderFooterFilter.class);
@凌驾
public void init(FilterConfig FilterConfig)抛出ServletException{
logger.info(“过滤器初始化”);
}
@凌驾
public void doFilter(ServletRequest ServletRequest、ServletResponse ServletResponse、FilterChain FilterChain)抛出IOException、ServletException{
logger.info(“添加页眉和页脚”);
servletResponse.getWriter().println(“来自过滤器的头
”; doFilter(servletRequest,servletResponse); servletResponse.getWriter().println(“
来自过滤器的页脚”

”; logger.info(“过滤器结束”); } @凌驾 公共空间销毁(){ logger.info(“过滤器销毁”); } }
HTML包含一行

<p>Some static content</p>
一些静态内容

问题是,只有当静态文件的扩展名是jsp而不是html时,我才看到过滤器添加的页脚。在这两种情况下,标题都会添加到结果页面中。我想容器对html和jsp的处理方式有所不同,但我想找到一个更详细的答案来解释为什么我会有这种奇怪的行为

过滤器映射为“/*”。我使用WildFly部署应用程序


UPD。我只是尝试将同一个应用程序部署到TomCat上,但它工作正常。

我无法告诉您为什么会发生这种情况,但我可以说使用Thymeleaf和布局方言(如果您必须坚持使用JSP,则使用Tiles,这会严重老化)将更加简单和干净。你是对的,但我需要调查这种情况,因为一些原因。我不能告诉你为什么会发生这种情况,但我可以说,使用Thymeleaf和布局方言(或瓷砖,如果你必须坚持使用JSP,这是严重老化的)你是对的,但是我需要调查一下这种情况,因为有些原因。