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

利用maven框架创建web工程

创建 Maven  web 工程
如上图所示,在利用maven骨架创建web项目时,默认选择创建webapp:1.4版本,由于在早期的web工程中并不支持@WebServlet注解配置,甚至不支持El表达式(在web 3.0版本之后才支持),所以在写servlet 时想使用@WebServlet进行url-pattern配置是不能够完成的。

问题解决

1.改变web.xml文件头来更改web工程版本
  • 找到本地仓库文件 如 :E:\maven_repository
  • 打开创建web工程的依赖jar包 路径如下:E:\maven_repository\org\apache\maven\archetypes\maven-archetype-webapp\1.4
  • 在这里插入图片描述
  • 如图用压缩软件打开jar包
注意:不是解压缩

修改web.xml文件
修改代码如下

<?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
  • 此处代码只是一个参考,正确做法是打开TomCat安装路径找到以下文件复制粘贴到上述的jar包web.xml中
  • Tomcat 中路径如下:D:\Tomcat9.0_Tomcat9.2\webapps\ROOT\WEB-INF

修改参数

一定注意要修改metadata-complete参数(重要的话说两遍)

这样就完成了webapp项目版本的升级

2.创建web-4.0工程后实现@WebServlet注解配置
要实现maven 工程的Servlet编写,首先要在pom.xml中使用来导入依赖,代码如下:

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

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

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

  • 11
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值