可以将WebFilter打包到库中吗
如果是这样,你该怎么做?
是的,听起来像是我的最后一个问题。这本质上是同一个问题。我有一个 @javax.servlet.annotation.WebFilter
,当直接打包到 war 中时它可以正常工作。现在我想将过滤器移到库中。但如果我这样做,它就不会再被调用了。
我必须注意哪些陷阱还是根本不可能?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
设置
。这意味着此 Web 应用程序的元数据不限于此特定 xml(以及 Web 应用程序的类),而是可以使用第 3 方库的元数据。
另请查看“网络片段”。您可以在 jar 的
META-INF
中定义web-fragment.xml
,并将所有 servlet 和过滤器映射到那里。看看这个演示。
Set
<web-app metadata-complete="false">
.This means that the metadata for this web application is not limited to this particular xml (and the classes of the webapp), but can use metadata by 3rd party libraries.
Also take a look at "web fragments". You can define a
web-fragment.xml
inMETA-INF
of your jar, and map all servlets and filters there.Take a look at this demo.
只需将一个空的 Servlet 3.0 兼容的
web.xml
文件放入 JAR 项目的/META-INF
文件夹中即可。默认情况下,Servlet 3.0 容器将扫描 JAR 中是否存在
/META-INF/web.xml
文件,如果存在,则扫描 JAR 中的所有类以获取 Servlet 3.0 注释。无需其他设置。顺便说一下,JSF 2.0 采用了与
/META-INF/faces-config.xml
类似的技术。Just drop an empty Servlet 3.0 compatible
web.xml
file in/META-INF
folder of your JAR project.A Servlet 3.0 container will by default scan JARs for presence of
/META-INF/web.xml
file and when present, then scan all classes in the JAR for Servlet 3.0 annotations. No other settings are necessary.JSF 2.0 has by the way a similar technique with
/META-INF/faces-config.xml
.