url - payara glassfish web xml过滤url解析

标签 url servlets glassfish filtering payara

我有一种下面的过滤器映射我的 web xml。但是部署失败。有其他选择吗?谢谢

<filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>*.js</url-pattern>
</filter-mapping> <!-- this works -->

<filter-mapping>
    <filter-name>TestFilter</filter-name>
    <url-pattern>/Application/*.html</url-pattern>
</filter-mapping> <!-- this doesn't work with parsing error as below-->

错误

java.lang.IllegalArgumentException: Invalid URL Pattern: [{0}]
at org.glassfish.web.deployment.node.WebResourceCollectionNode.setElementValue(WebResourceCollectionNode.java:136)
at com.sun.enterprise.deployment.node.SaxParserHandler.endElement(SaxParserHandler.java:583)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609)

最佳答案

恐怕不支持通过后缀和前缀混合映射,如在 /Application/*.html 中。您需要使用以下模式之一进行映射:

  • /Application/*(所有带有/Application前缀的都将被映射)
  • /*.html(所有带有html后缀的内容都会被映射)

如果你想将它们混合在一起,你可以通过前缀(第一个选项)映射到一个代理 servlet,它会解析请求中的 URL 并将它转发到带有 ServletContext.html#getNamedDispatcher 的适当的 servlet。和 forward(req, resp),对于名为 application-html 的 servlet 就像这样:

if (request.getRequestURI().endsWith(".html")) {
  request.getServletContext()
    .getNamedDispatcher("application-html")
    .forward(request, response)
}

关于url - payara glassfish web xml过滤url解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43423608/

相关文章:

python - 我如何确定给定网址中是否存在任何内容

java - 哪些 servlet 是预初始化的好成员?

java - Glassfish4 gzip 编码问题(响应损坏)

php - 从 mysql 数据库中提取 URL 并设置为单个单词可点击链接

apache - 使用 .htaccess 时出现 seo 友好 url 错误

html - Swift 如何使用包含 # 的 URL 加载 HTML 页面

java - 无法加载 JDBC 领域的组

spring - 如何将 log4j 输出重定向到 HttpServletResponse 输出流?

java - Eclipse:仅 "Run As > Run On Server"调用 web.xml

java - 通过 EclipseLink 使用 derby 内置 glassfish4