tomcat - tomcat 和 jetty 中的 url 模式

标签 tomcat jetty servlet-filters

在我的 java web 应用程序中,我有以下过滤器的 url-pattern:

<url-pattern>*-template</url-pattern>

它在 jetty 9 中工作正常,但 tomcat 8 拒绝它说它无效。怎么会?另外,我无法让 tomcat 理解像 /*/*-template 这样的 url-pattern(如果我指定了确切的 url /foo/bar-template,只有 tomcat 使用我的过滤器。但我不想指定每个网址。我有哪些选择?

最佳答案

可能是因为 Tomcat 正在更严格地执行规范。来自 Java Servlet 规范 3.1(第 12.2 节):

In the Web application deployment descriptor, the following syntax is used to define mappings:

  • A string beginning with a ‘/’ character and ending with a ‘/*’ suffix is used for path mapping.
  • A string beginning with a ‘*.’ prefix is used as an extension mapping.
  • The empty string ("") is a special URL pattern that exactly maps to the application's context root, i.e., requests of the form http://host:port/<contextroot>/. In this case the path info is ’/’ and the servlet path and context path is empty string (““).
  • A string containing only the ’/’ character indicates the "default" servlet of the application. In this case the servlet path is the request URI minus the context path and the path info is null.
  • All other strings are used for exact matches only.

关于tomcat - tomcat 和 jetty 中的 url 模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24652893/

相关文章:

java - 如何使用Filter对servlet生成的cookie进行加密?

Java webapp添加版本到应用程序静态内容以进行缓存

java: 如何在 jboss 平台中对用户隐藏 html 和图像等静态资源?

java - 使用 Jenkins 通过 SSH 发送文件或执行命令时脚本不退出

java - Idea 中的 Tomcat。 war 爆炸 : Server is not connected. 部署不可用

java - @WebParam 在 jetty 服务 SOAP 中始终为空

java - 如何在 Jetty 中启用 SSL 调试?

java - 过滤涉及安全约束的请求

tomcat - 可以在 Jetty 上配置 WebDav 访问吗?

java - 如何更改 Tomcat 中 JSESSIONID 和 jvmRoute 的定界符/分隔符?