我没有在真实世界的网络项目上工作。在大学时,我们使用Servlet和Spring进行Java Web开发。在这两个项目中,我们都获得了已配置的web.xml文件,我们只对它们进行了微小的更改。现在我需要从头开始构建一个Web应用程序。我在Eclipse中创建了新的Servlet类,并没有自动创建任何web.xml。然后我用谷歌搜索,我从几个资源中读到了不需要web.xml,但是这个推理被放在了几个句子中,所以我不确定使用注释而不是web.xml是没有问题的。如果不需要配置web.xml,我会很高兴,因为我没有自己配置,我想更多地关注业务逻辑。
先感谢您!
如果您有一个支持最新j2ee规范的容器,则不需要web.xml
文件。 Here是一个简单的servlet示例的链接,使用注释和here,你可以找到相同的Spring MVC;为方便起见,我在这里发布了这个例子
public class MyWebApplicationInitializer implements WebApplicationInitializer {
@Override
public void onStartup(ServletContext container) {
ServletRegistration.Dynamic registration = container.addServlet("dispatcher", new DispatcherServlet());
registration.setLoadOnStartup(1);
registration.addMapping("/example/*");
}
}
Here是另一个链接,显示如何使用其他可用的注释(@ServletFilter,@ WebServletContextListener);您可以从here下载规格,以便更详细地了解j2ee提供的注释。
从Servlet 3开始,不需要web.xml。你会想要使用像Tomcat 7或8这样的东西(更好的选择)。对于原始servlet this is a good starting point。
如果你想使用现代的Spring,Grails 3是一个很好的方式。它可以解决所有这些问题,Grails是一个非常高效的Web开发框架。您可以将其视为基于Spring和Hibernate构建的Ruby on Rails。
此时,除非使用需要它的框架,否则不必编写任何web.xml来进行设置。我不知道spring mvc,但是Grails并不要求你这样做,它使用了你已经习惯使用的大部分内容。
另一种方式(春季3.1+) -
名为WebApplicationInitializer
的AbstractDispatcherServletInitializer
的抽象基类实现通过简单地重写方法来指定servlet映射和DispatcherServlet配置的位置,从而更容易注册DispatcherServlet -
public class MyWebAppInitializer extends AbstractDispatcherServletInitializer {
@Override
protected WebApplicationContext createRootApplicationContext() {
return null;
}
@Override
protected WebApplicationContext createServletApplicationContext() {
XmlWebApplicationContext cxt = new XmlWebApplicationContext();
cxt.setConfigLocation("/WEB-INF/spring/dispatcher-config.xml");
return cxt;
}
@Override
protected String[] getServletMappings() {
return new String[] { "/" };
}
}
是否需要web.xml取决于您在应用程序中声明的servlet规范。如果您将使用spec 3.0构建应用程序,则可以使用注释来声明servlet,并将其部署到容器而无需web.xml文件。这是作为JSR-315的一部分完成的。
使用Spring Boot,它将为您管理容器和所有样板配置。您可以使用Initializr生成可立即启动的骨架。
不,如果您使用servlet版本web.xml
和servlet based application
,则不需要>3.0
用于tomcat 7
,因为它不会在以前版本的tomcat中运行。
注释表示元数据。如果使用注释,则不需要部署描述符(web.xml文件)。查看所有可用注释的Here。
在这里,我发现了一个Web应用程序的示例,而不使用部署描述符文件(web.xml)。这里唯一要考虑的是这将适用于最新的tomcat版本> = 7.0
访问http://java-demos.blogspot.com/2014/01/servlet-web-application-without-webxml.html