zoukankan      html  css  js  c++  java
  • IDEA使用Maven创建webapp骨架无法创建Servlet文件与无法使用@WebServlet实现注解问题解决

    目录

    问题一(无法创建Servlet文件)

    问题一解决:

    问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)

    问题二解决:

    实现@WebServlet注解


    使用Maven创建web工程(使用webapp骨架)

    问题一(无法创建Servlet文件)

    一路next之后,这时我们需要创建第一个servlet,却发现自己无法创建Servlet文件(问题一),WTF!

    问题一解决:


    使用快捷键 Ctrl + Shift + Alt + S  打开项目结构或按如下操作:

    这时我们发现可以创建Servlet文件了


    问题二(创建好的Servlet文件并不能使用@WebServlet实现注解配置)

    当然,这好解决,最让人无语的是:当你创建完之后体会默认在web.xml文件中对你的Servlet进行配置,而并非创建的是一个@WebServlet注解。问题二

    原因:

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


    问题二解决:

    • 找到本地仓库目录路径:D: epo
    • 依次打开:D: epoorgapachemavenarchetypesmaven-archetype-webapp1.4

    • 找到 maven-archetype-webapp-1.4.jar 这个jar包
    • 使用压缩软件打开:archetype-resourcessrcmainwebappWEB-INF不要解压缩

    • 打开web.xml文件,里面是这样的

    • 找到本地Tomcat目录路径,依次打开:D:Tomcat 9.0.24apache-tomcat-9.0.24webappsROOTWEB-INF

    • 我们需要将Tomcat中web.xml里的部分配置复制粘贴到Maven骨架webapp的那个web.xml文件中

    • 即上述内容复制粘贴到Maven骨架webapp的那个web.xml文件中

    并添加一行:metadata-complete="false"           (very important)

    保存退出,压缩软件提示是否把更改内容压缩到文件中,选择是!

    实现@WebServlet注解

    在Maven工程中的pom.xml文件中导入依赖

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

    导入依赖后重新加载Maven变更即可!

    @WebServlet注解正常使用

  • 相关阅读:
    运算符优先级
    Tips—查询某结构体
    在线词典--(一、流程分析)
    数据库—SQLite3
    回调函数(转载)
    UNIX域套接字
    进程间通信小结
    HDU_oj_2027 统计元音
    HDU_oj_2026 首字母变大写
    HDU_oj_2025 查找最大字母
  • 原文地址:https://www.cnblogs.com/itjiangpo/p/14181229.html
Copyright © 2011-2022 走看看