第三章使用Maven:命令行环境-实验四:创建Maven版的Web工程-《Java学习知识库》

admin 2025-11-02 01:13:55 编程 来源:ZONE.CI 全球网 0 阅读模式
  • 1、说明
  • 2、操作
  • 3、生成的pom.xml
  • 4、生成的Web工程的目录结构
  • 5、创建 Servlet
    • ①在 main 目录下创建 java 目录
    • ②在 java 目录下创建 Servlet 类所在的包的目录
    • ③在包下创建 Servlet 类
    • ④在 web.xml 中注册 Servlet
  • 6、在 index.jsp 页面编写超链接
  • 7、编译
  • 8、配置对 servlet-api.jar 包的依赖
  • 9、将 Web 工程打包为 war 包
  • 10、将 war 包部署到 Tomcat 上运行

    1、说明

    使用 mvn archetype:generate 命令生成 Web 工程时,需要使用一个专门的 archetype。这个专门生成 Web 工程骨架的 archetype 可以参照官网看到它的用法:实验四:创建 Maven 版的 Web 工程 - 图1参数 archetypeGroupId、archetypeArtifactId、archetypeVersion 用来指定现在使用的 maven-archetype-webapp 的坐标。

    2、操作

    注意:如果在上一个工程的目录下执行 mvn archetype:generate 命令,那么 Maven 会报错:不能在一个非 pom 的工程下再创建其他工程。所以不要再刚才创建的工程里再创建新的工程,请回到工作空间根目录来操作。然后运行生成工程的命令:

    1. mvn archetype:generate -DarchetypeGroupId=org.apache.maven.archetypes -DarchetypeArtifactId=maven-archetype-webapp -DarchetypeVersion=1.4

    下面的操作按照提示执行:TIPDefine value for property ‘groupId’: com.atguigu.maven Define value for property ‘artifactId’: pro02-maven-web Define value for property ‘version’ 1.0-SNAPSHOT: :【直接回车,使用默认值】Define value for property ‘package’ com.atguigu.maven: :【直接回车,使用默认值】 Confirm properties configuration: groupId: com.atguigu.maven artifactId: pro02-maven-web version: 1.0-SNAPSHOT package: com.atguigu.maven Y: :【直接回车,表示确认】

    3、生成的pom.xml

    确认打包的方式是war包形式

    1. <packaging>war</packaging>

    4、生成的Web工程的目录结构

    image.pngwebapp 目录下有 index.jspWEB-INF 目录下有 web.xml

    5、创建 Servlet

    ①在 main 目录下创建 java 目录

    image.png

    ②在 java 目录下创建 Servlet 类所在的包的目录

    image.png

    ③在包下创建 Servlet 类

    1. package com.atguigu.maven;
    2. import javax.servlet.http.HttpServlet;
    3. import javax.servlet.http.HttpServletRequest;
    4. import javax.servlet.http.HttpServletResponse;
    5. import javax.servlet.ServletException;
    6. import java.io.IOException;
    7. public class HelloServlet extends HttpServlet{
    8. protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    9. response.getWriter().write("hello maven web");
    10. }
    11. }

    ④在 web.xml 中注册 Servlet

    1. <servlet>
    2. <servlet-name>helloServlet</servlet-name>
    3. <servlet-class>com.atguigu.maven.HelloServlet</servlet-class>
    4. </servlet>
    5. <servlet-mapping>
    6. <servlet-name>helloServlet</servlet-name>
    7. <url-pattern>/helloServlet</url-pattern>
    8. </servlet-mapping>

    6、在 index.jsp 页面编写超链接

    1. <html>
    2. <body>
    3. <h2>Hello World!</h2>
    4. <a href="helloServlet">Access Servlet</a>
    5. </body>
    6. </html>

    TIPJSP全称是 Java Server Page,和 Thymeleaf 一样,是服务器端页面渲染技术。这里我们不必关心 JSP 语法细节,编写一个超链接标签即可。

    7、编译

    此时直接执行 mvn compile 命令出错:DANGER程序包 javax.servlet.http 不存在程序包 javax.servlet 不存在找不到符号符号: 类 HttpServlet……上面的错误信息说明:我们的 Web 工程用到了 HttpServlet 这个类,而 HttpServlet 这个类属于 servlet-api.jar 这个 jar 包。此时我们说,Web 工程需要依赖 servlet-api.jar 包。实验四:创建 Maven 版的 Web 工程 - 图5

    8、配置对 servlet-api.jar 包的依赖

    对于不知道详细信息的依赖可以到https://mvnrepository.com/网站查询。使用关键词搜索,然后在搜索结果列表中选择适合的使用。实验四:创建 Maven 版的 Web 工程 - 图6比如,我们找到的 servlet-api 的依赖信息:

    1. <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
    2. <dependency>
    3. <groupId>javax.servlet</groupId>
    4. <artifactId>javax.servlet-api</artifactId>
    5. <version>3.1.0</version>
    6. <scope>provided</scope>
    7. </dependency>

    这样就可以把上面的信息加入 pom.xml。重新执行 mvn compile 命令。

    9、将 Web 工程打包为 war 包

    运行 mvn package 命令,生成 war 包的位置如下图所示:image.png

    10、将 war 包部署到 Tomcat 上运行

    将 war 包复制到 Tomcat/webapps 目录下image.png启动 Tomcat:image.pngimage.png通过浏览器尝试访问:http://localhost:8080/pro02-maven-web/index.jsp

    以太坊cppgolang区别 编程

    以太坊cppgolang区别

    以太坊是一种去中心化的开源平台,它采用智能合约技术,旨在构建和运行不受干扰的分布式应用程序。作为目前最受欢迎的区块链平台之一,以太坊提供了多种编程语言的支持,其
    progolang 编程

    progolang

    Go语言(Golang)是由Google开发的一门静态类型编程语言。作为一名专业的Golang开发者,我深知这门语言的优势和特点。在本文中,我将介绍Golang
    golangn个发送者 编程

    golangn个发送者

    Golang是一种开源的编程语言,由Google团队开发,旨在提高程序的并发性和简化软件开发过程。在Go语言中,有时需要向多个接收者发送信息。本文将介绍如何在G
    golang技能图谱 编程

    golang技能图谱

    从互联网行业的快速发展到人工智能技术的日益成熟,各种编程语言也应运而生。而在这众多的编程语言中,Golang(即Go)作为一门强大且高效的开发语言备受关注。Go
    评论:0   参与:  0