maven生成的项目,更改web.xml头成servlet 3.1配置

本文介绍如何在Maven项目中配置Servlet 3.1,并解决配置过程中可能遇到的问题。包括引入servlet-api依赖、更新web.xml文件以及调整项目设置。
新建maven project, 选择maven-archetype-webapp, 生成项目 

打开pom.xml中引入3.1的servlet-api
              <servlet.version>3.1.0</servlet.version>

              <!-- servlet -->
              <dependency>
                     <groupId>javax.servlet</groupId>
                     <artifactId>javax.servlet-api</artifactId>
                     <version>${servlet.version}</version>
                     <scope>provided</scope>
              </dependency>

更改web.xml头成一下内容
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="w3.org/2001/XMLSchema-instance"
       xmlns="xmlns.jcp.org/xml/ns/javaee"
       xsi:schemaLocation="xmlns.jcp.org/xml/ns/javaee xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
       id="WebApp_ID"
       version="3.1">

然后maven update一下

如果出现一下异常信息
Cannot change version of project facet Dynamic Web Module to 3.1.    springmvc        line 1    Maven Java EE Configuration Problem


右键项目, properties->Project Facets 
更改java的版本成1.7或以上, 去掉Dynamic Web Module的勾选, 然后apply 

然后重新勾选Dynamic Web Module, 再选择3.1版本, apply
再次maven update一下, 就OK了




### 关于Maven项目中 `web.xml` 文件的配置Maven 项目中,`web.xml` 是 Java EE 应用程序中的部署描述符文件,用于定义 Web 应用的行为和结构。它通常位于项目的 `src/main/webapp/WEB-INF/` 目录下[^1]。 以下是关于如何正确配置 `web.xml` 的详细说明: #### 配置目录结构 确保 Maven 项目的标准目录结构如下所示: ``` my-maven-web-project/ ├── pom.xml └── src └── main ├── java │ └── com/example/app │ └── MyServlet.java ├── resources └── webapp ├── index.jsp └── WEB-INF └── web.xml ``` 其中,`web.xml` 必须放置在 `src/main/webapp/WEB-INF/` 路径下。 #### 基本配置示例 下面是一个典型的 `web.xml` 配置文件示例,展示了 Servlet 和过滤器的基本设置: ```xml <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1"> <!-- 定义欢迎页面 --> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <!-- 配置 Servlet --> <servlet> <servlet-name>MyServlet</servlet-name> <servlet-class>com.example.app.MyServlet</servlet-class> </servlet> <!-- 映射 URL 到 Servlet --> <servlet-mapping> <servlet-name>MyServlet</servlet-name> <url-pattern>/myservlet</url-pattern> </servlet-mapping> <!-- 配置上下文参数 --> <context-param> <param-name>appName</param-name> <param-value>MyWebApp</param-value> </context-param> <!-- 配置监听器 --> <listener> <listener-class>com.example.app.AppListener</listener-class> </listener> </web-app> ``` 上述 XML 中的关键部分解释如下: - **`<welcome-file>`**: 设置默认加载的首页文件。 - **`<servlet>` 和 `<servlet-mapping>`**: 将特定路径映射到指定的 Servlet 类。 - **`<context-param>`**: 定义全局可用的应用程序级参数。 - **`<listener>`**: 注册应用生命周期事件的监听器类。 #### 使用 Maven 插件验证配置 可以通过运行以下命令来验证 `pom.xml` 是否正确配置了依赖项并生成有效的 WAR 文件: ```bash mvn clean package ``` 如果一切正常,则会在目标目录下生成一个 `.war` 文件,该文件包含了完整的 Web 应用及其资源文件(包括 `web.xml`)。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

run_zheng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值