当前位置: 首页 > 知识库问答 >
问题:

对于基于Servlet的Java web应用程序,我真的需要web.xml吗?

苏硕
2023-03-14

我没有在现实世界的Web项目上工作。在大学里,我们使用Servlets和Spring进行Java Web开发。在这两个项目中,我们都得到了已经配置的web.xml文件,我们只对它们进行了微小的更改。现在我需要从头开始构建一个 Web 应用。我在Eclipse中创建了新的Servlet类,它没有自动创建任何web.xml。然后我用谷歌搜索,我从几个资源中读到,web.xml并不是真正需要的,但是这个推理被放在几个句子中,所以我不确定使用注释而不是web.xml是否会有问题。如果不需要配置web.xml,我会非常高兴,因为我自己还没有配置一个,我想更多地关注业务逻辑。

提前感谢!

共有3个答案

闾丘德宇
2023-03-14

另一种方式(Spring 3.1)-

<code>WebApplicationInitializer</code>的抽象基类实现名为<code>AbstractDispatcherServletInitializer</code>使得注册DispatchersServlet更加容易,只需重写方法来指定servlet映射和Dispatchers servlet配置的位置-

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[] { "/" };
    }

}
包永新
2023-03-14

从Servlet 3开始,不需要web.xml。您将想要使用像Tomcat 7或8这样的东西(更好的选择)。对于原始servlet,这是一个很好的起点。

如果你想使用现代的Spring,圣杯3是一个很好的方式。它回避所有这些问题,Grails是一个非常高效的Web开发框架。你可以把它想象成建立在Spring和Hibernate之上的Ruby on Rails。

在这一点上,除非您使用需要它的框架,否则您不需要编写任何web.xml来进行设置。我不知道Spring mvc,但Grails不需要您这样做,它使用了您已经习惯使用的大部分内容。

董庆
2023-03-14

您不需要<code>web。xml文件,如果您有一个支持最新j2ee规范的容器。这里是一个使用注释的简单servlet示例的链接,您可以在这里找到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/*");
    }

}

下面是另一个链接,展示了如何使用其他可用的注释(@ServletFilter,@WebServletContextListener);您可以在此处下载规范表单,以便获得通过j2ee提供的注释的更详细视图。

 类似资料:
  • 问题内容: 我正在编写一个servlet(特别是Scalatra)。在servlet中,我在目录中包含许多链接,该目录包含在每个页面中。我希望这些链接相对于应用程序基础。如果我使用诸如“ / foo”之类的链接,那么当从根目录(localhost:8080 /)提供servlet时一切正常,但是如果我从Jetty / Tomcat以及其他servlet(localhost:8080 / servl

  • 我试图将一个spring boot应用程序打包成一场战争。据此,我修改了我的应用程序类: 还在我的pom.xml中添加了以下内容 当我打包项目时,我得到了以下错误: 当我在阅读spring boot应用程序时,我从未看到任何关于创建web.xml的内容。在将spring boot应用程序部署为war时,web.xml是必需的吗?

  • 我正在使用Quarkus设置一个简单的servlet应用程序。我应该把网络放在哪里。xml文件,以及如何使用Quarkus的本机构建功能部署应用程序? 我试过把网页放在网上。xml在project name/src/main/resources/WEB-INF文件夹中,并使用GraalVM docker映像本机构建了它,但构建的文件不起作用。我用于构建的Dockerfile如下所示。 从quay.

  • 主要内容:创建项目,在Eclipse中导入项目,运行项目从这篇文章开始,我们使用Spring-AOP框架编写实际的AOP应用程序。在开始使用Spring-WS框架编写第一个示例之前,必须确保已经按照Spring AOP安装配置教程中的说明正确设置了Spring-AOP开发运行环境。 现在我们继续来编写一个简单的基于控制台的Spring AOP应用程序,它用于演示AOP的概念。 先来看看要创建的项目的目录结构 - 创建项目 打开命令控制台,进入目录并执行

  • 问题内容: 我正在设计一个简单的基于Web的应用程序。我是这个基于Web的领域的新手,我需要您提供有关设计模式的建议,例如应如何在Servlet之间分配职责,创建新Servlet的条件等。 实际上,我主页上的实体很少,而与每个实体相对应,我们几乎没有添加,编辑和删除等选项。之前,我为每个选项使用一个Servlet,例如Servlet1用于添加实体1,Servlet2用于编辑实体1,依此类推,这样我

  • 我有一个Sencha应用程序,用于创建iOS和Android应用程序。我试过cordova,但不太明白为什么人们喜欢phonegap而不是cordova。需要启蒙