海阔天空

当前时间为:
欢迎大家来到海阔天空https://www.9713job.com,广告合作以及淘宝商家推广请微信联系15357240395

Maven创建webapp骨架无法使用@WebServlet来实现注解配置解决方案

未分类
2020-12-20 09:59:17
1822677238@qq.com

手机扫码查看

Maven创建webapp骨架无法使用@WebServlet来实现注解配置解决方案

Maven创建webapp骨架无法使用@WebServlet来实现注解配置解决方案

利用maven创建web项目,默认不支持@WebServlet注解配置,甚至不支持El表达式(在web 3.0版本之后才支持),所以在写servlet 时想使用@WebServlet进行url-pattern配置是不能够完成的。

解决方案:

1.改变web.xml文件头来更改web工程版本

在本地仓库找到org\apache\maven\archetypes\maven-archetype-webapp\1.4

然后用压缩软件打开 jar包

修改代码如下

<?xml version="1.0" encoding="UTF-8"?>
<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_4_0.xsd"
         version="4.0"
         metadata-complete="false">
</web-app>

注意一定要将matadata-complete属性改为”false”这样创建的web工程才是web-4.0

2.创建web-4.0工程后实现@WebServlet注解配置

要实现maven 工程的Servlet编写,首先要在pom.xml中使用来导入依赖,代码如下:

servlet -api 依赖有代码中所示的两种版本,已注释的版本不支持@WebServlet注释配解 请务必使用下边未加注释的版本,另外注意在 3.1.0后加上 provided标签,不加此标签也会导致注解配置不能使用。

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>

进行上述更改后maven创建的web项目在可正常使用@WebServlet进行注释配解。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注