自从Servlet 3.0引入了注释:
@WebListener
@WebServlet
@WebFilter
@WebInitParam
那么可以完全删除web.xml并以编程方式设置其中包含的所有cofiguration吗?如果这是真的,这是一个好的做法还是应该避免?
修改
在farrellmr提供的链接中使用org.springframework.web.WebApplicationInitializer;
,但我正在寻找一种不使用特定框架的通用方法。
答案 0 :(得分:3)
问:因此可以完全删除web.xml并设置全部 以编程方式包含在其中的配置?
是的,从Servlet 3.0开始,您可以拥有一个没有web.xml
文件的Web应用程序。
问:如果这是真的,这是一个好习惯还是应该避免?
这取决于。在具有许多servlet的大型Web应用程序中使用web.xml
的缺点是该文件变得越来越大,难以维护。另一方面,您可能在您的团队中有一个特定的角色,一个部署者,他不需要知道如何编程。使用web.xml
,他可以轻松更改,例如通过更改文件内容并简单地重新部署应用程序来实现servlet的URL。最后,请注意,只有Tomcat7 +和其他“更新”的应用程序服务器/ servlet容器才支持Servlet 3.0。我们的团队曾经有一个Tomcat6的客户端,他们抱怨一些奇怪的错误,你可以猜到,这是由于使用注释而不是web.xml
引起的。也就是说,我仍然更喜欢注释而不是额外的配置文件:)