以编程方式设置 web.xml 配置
Set web.xml configuration programmatically
自从引入 Servlet 3.0 以来,注释:
@WebListener
@WebServlet
@WebFilter
@WebInitParam
那么是否可以完全删除 web.xml 并以编程方式设置其中包含的所有配置?如果这是真的,这是一个好的做法还是应该避免?
编辑:
在 farrellmr 提供的 link 中使用了 org.springframework.web.WebApplicationInitializer;
,但我正在寻找一种不使用特定框架的通用方法。
Q: So is it possible to completely remove the web.xml and set all
cofigurations contained in it programmatically?
是的,从 Servlet 3.0 开始,您可以拥有一个没有 web.xml
文件的 Web 应用程序。
Q: If this is true, is it a good practice or should it be avoided?
视情况而定。在具有许多 servlet 的大型 Web 应用程序中使用 web.xml
的缺点是该文件变得越来越大,以至于难以维护。另一方面,你可能在你的团队中有一个特定的角色,一个不需要知道如何编程的部署者。使用 web.xml
,他可以很容易地改变例如URL 通过更改文件的内容并简单地重新部署应用程序来删除 servlet。最后,请注意 Servlet 3.0 仅受 Tomcat7+ 和其他 "newer" 应用程序服务器/servlet 容器支持。我们团队曾经有一个使用 Tomcat6 的客户,他们抱怨一些奇怪的错误,你可以猜到,这些错误是由使用注释而不是 web.xml
引起的。也就是说,我仍然更喜欢注释而不是额外的配置文件:)
自从引入 Servlet 3.0 以来,注释:
@WebListener
@WebServlet
@WebFilter
@WebInitParam
那么是否可以完全删除 web.xml 并以编程方式设置其中包含的所有配置?如果这是真的,这是一个好的做法还是应该避免?
编辑:
在 farrellmr 提供的 link 中使用了 org.springframework.web.WebApplicationInitializer;
,但我正在寻找一种不使用特定框架的通用方法。
Q: So is it possible to completely remove the web.xml and set all cofigurations contained in it programmatically?
是的,从 Servlet 3.0 开始,您可以拥有一个没有 web.xml
文件的 Web 应用程序。
Q: If this is true, is it a good practice or should it be avoided?
视情况而定。在具有许多 servlet 的大型 Web 应用程序中使用 web.xml
的缺点是该文件变得越来越大,以至于难以维护。另一方面,你可能在你的团队中有一个特定的角色,一个不需要知道如何编程的部署者。使用 web.xml
,他可以很容易地改变例如URL 通过更改文件的内容并简单地重新部署应用程序来删除 servlet。最后,请注意 Servlet 3.0 仅受 Tomcat7+ 和其他 "newer" 应用程序服务器/servlet 容器支持。我们团队曾经有一个使用 Tomcat6 的客户,他们抱怨一些奇怪的错误,你可以猜到,这些错误是由使用注释而不是 web.xml
引起的。也就是说,我仍然更喜欢注释而不是额外的配置文件:)