JavaWeb开发_Day04
2024-7-18
| 2024-7-19
0  |  阅读时长 0 分钟
type
status
date
slug
summary
tags
category
icon
password
参考课程:
黑马程序员 JavaWeb开发教程】
@ZZHow(ZZHow1024)

Maven

  • 简介:Maven 是 Apache 旗下的一个开源项目,是一款用于管理和构建 Java 项目的工具。
    • Apache Maven 是一个项目管理和构建工具,它基于项目对象模型(Project Object Model, POM)的概念,通过一小段描述信息来管理项目的构建。
      💡
      Apache 软件基金会
      成立于 1999 年 7 月,是目前世界上最大的最受欢迎的开源软件基金会,也是一个专门为支持开源项目而生的非盈利性组织。 开源项目:https://www.apache.org/index.html#projects-list
  • 作用:
    • 方便的依赖簑理
      • 方便快捷的管理项目依赖的资源(jar 包),避免版本冲突问题。
    • 统一的项目结构
      • 提供标准、统一的项目结构。
    • 标准的项目构建流程
      • 标准跨平台(Linux、Windows 和 MacOS)的自动化项目构建方式。
        清理 → 编译 → 测试 → 打包 → 发布
  • Maven 项目的目录结构:
    • 文件夹 main ——— 实际项目资源
      • 文件夹 java ——— Java 源代码目录
      • 文件夹 resources ——— 配置文件目录
    • 文件夹 test ——— 测试项目资源
    • 文件 pom.xml ——— 项目配置文件
  • 仓库:用于存储资源,管理各种 jar 包。
    • 本地仓库:自己计算机上的一个目录。
    • 中央仓库:由 Maven 团队维护的全球唯一的。仓库地址:https://repo1.maven.org/maven2/
    • 远程仓库(私服):一般由公司团队搭建的私有仓库。
  • 安装
      1. 解压 zip 压缩包。
      1. 配置本地仓库:修改 conf/settings.xml 中的 <localRepository> 为一个指定目录。
        1. 配置阿里云私服:修改 conf/settings.xml 中的 <mirrors> 标签,为其添加如下子标签:
          1. 配置环境变量:MAVEN_HOME 为 maven 的解压目录,并将其 bin 目录加入 PATH 环境变量。
      • 配置 Maven 环境(当前工程)
        • 选择 IDEA中 File --> Settings --> Build,Execution,Deployment --> Build Tools -->Maven
        • 设置IDEA 使用本地安装的 Maven,并修改配置文件及本地仓库路径
      • 配置 Maven 环境(全局)
        • Close Project 后再进行配置
      • 使用 IDEA 创建 Maven 项目
          1. 创建模块,选择 Maven,点击 Next。
          1. 填写模块名称,坐标信息,点击 finish,创建完成。
          1. 编写 HelloWorld,并运行。
      • Maven 坐标
        • 什么是坐标
          • Maven 中的坐标是资源的唯一标识,通过该坐标可以唯一定位资源位置。
          • 使用坐标来定义项目或引入项目中需要的依赖。
        • Maven 坐标主要组成
          • groupld:定义当前 Maven 项目隶属组织名称(通常是域名反写,例如:com.itheimg)。
          • artifactld:定义当前 Maven 项目名称(通常是模块名称,例如 Order-service、goods-service)。
          • version:定义当前项目版本号。
      • IDEA 导入 Maven 项目
        • 方式一:打开 IDEA,选择右侧 Maven 面板,点击 + 号,选中对应项目的 pom.xml 文件,双击即可。
        • 方式二:打开 IDEA,选择 File - Project Structure - Modules,点击 + 号,选中对应项目的 pom.xml 文件,双击即可。
      • 依赖传递(依赖具有传递性)
        • 直接依赖:在当前项目中通过依赖配置建立的依赖关系。
        • 间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。
      • 排除依赖
        • 排除依赖指主动断开依赖的资源,被排除的资源无需指定版本
        • 依赖范围
          • 依赖的 jar 包,默认情况下,可以在任何地方使用。可以通过<scope>xxx</scope>设置其作用范围。
          • 作用范围:
            • 主程序范围有效(main 文件夹范围内)。
            • 测试程序范围有效(test 文件夹范围内)。
            • 是否参与打包运行(package 指令范围内)。
            • scope 值
              主程序
              测试程序
              打包(运行)
              示例
              compile(默认)
              Log4j
              test
              ×
              ×
              JUnit
              provided
              ×
              Servlet-API
              runtime
              ×
              JDBC 驱动
        • 生命周期
          • Maven 的生命周期就是为了对所有的 Maven 项目构建过程进行抽象和统一。
          • Maven 中有 3 套相互独立的生命周期:
            • clean:清理工作。
            • default:核心工作,如:编译、测试、打包、安装、部署等。
            • site:生成报告、发布站点等。
            💡
            在同一套生命周期中,当运行后面的阶段时,前面的阶段都会运行。
          • Java 程序员需要关注的 5 个 Maven 生命周期
            • clean(清理):移除上一次构建生成的文件。
            • compile(编译):编译项目源代码。
            • test(测试):使用合适的单元测试框架运行测试(JUnit)。
            • package(打包):将编译后的文件打包,如:jar、war等。
            • install(安装):安装项目到本地仓库。
          • 执行指定生命周期的两种方式:
            • 在 IDEA 中,右侧的 Maven 工具栏,选中对应的生命周期,双击执行。
            • 在命令行中,通过命令执行。

          SpringBootWeb入门

          • Spring 发展到今天已经形成了一种开发生态圈,Spring 提供了若干个子项目,每个项目用于完成特定的功能。
          • 步骤:
              1. 创建 SpringBoot 工程,并勾选 Web 开发相关依赖。
              1. 定义 HelloController 类,添加方法 hello,并添加注解。
              1. 运行启动类,打开浏览器测试。

          HTTP协议

          • 概念:
            • Hyper Text Transfer Protocol,超文本传输协议,规定了浏览器和服务器之间数据传输的规则。
          • 特点:
              1. 基于 TCP 协议:面向连接,安全。
              1. 基于请求-响应模型的:一次请求对应一次响应。
              1. HTTP 协议是无状态的协议:对于事务处理没有记忆能力。每次请求-响应都是独立的。
                  • 缺点:多次请求间不能共享数据。
                  • 优点:速度快。
          • HTTP 请求协议
            • 请求数据格式
              • 请求行:请求数据第一行(请求方式、资源路径、协议)。
              • 请求头:第二行开始,格式 key: value。
              • 请求体:POST 请求特有的,存放请求参数
              • 💡
                GET 与 POST
                请求方式 - GET:请求参数在请求行中,没有请求体,如:/brand/findAll?name=OPPO&status=1。 GET 请求大小是有限制的。 请求方式 - POST:请求参数在请求体中,POST 请求大小是没有限制的。
            • 常见的请求头
              • 字段名
                含义
                Host
                请求的主机名
                User-Agent
                浏览器版本,例如 Chrome 浏览器的标识类 Mozilla/5.0 … Chrome/79,IE 浏览器的标识类似Mozilla/5.0(Windows NT …) like Gecko
                Accept
                表示浏览器能接收的资源类型,如text/*,image/* 或 /* 表示所有
                Accept-Language
                表示浏览器偏好的语言,服务器可以据此返回不同语言的网页
                Accept-Encoding
                表示浏览器可以支持的压缩类型,例如 gzip,deflate 等
                Content-Type
                请求主体的数据类型
                Content-Length
                请求主体的大小(单位:字节)
          • HTTP 响应协议
            • 响应数据格式
              • 响应行:响应数据第一行(协议、状态码、描述)。
              • 响应头:第二行开始,格式 key: value。
              • 响应体:最后一部分,存放响应数据。
            • 状态码大致分类
              • 状态码
                含义
                1xx
                响应中 - 临时状态码,表示请求已经接收,告诉客户端应该继续请求或者如果它已经完成则忽略它
                2xx
                成功 - 表示请求已经被成功接收,处理已完成
                3xx
                重定向 - 重定向到其他地方;让客户端再发起一次请求以完成整个处理
                4xx
                客户端错误 - 处理发生错误,责任在客户端。如:请求了不存在的资源、客户端未被授权、禁止访问等
                5xx
                服务器错误 - 处理发生错误,责任在服务端。如:程序抛出异常等
              • 最常见的三个状态码
                • 状态码
                  含义
                  200
                  客户端请求成功
                  404
                  请求资源不存在,般是 URL 输入有误,或者网站资源被删除了
                  500
                  服务器发生不可预期的错误
              • 状态码大全:
            • 常见的响应头
              • 字段名
                含义
                Content-Type
                表示该响应内容的类型,例如:text/html,application/json
                Content-Length
                表示该响应内容的长度(字节数)
                Content-Encoding
                表示该响应压缩算法,例如 gzip
                Cache-Control
                指示客户端应如何缓存,例如 max-age=300 表示可以最多缓存 300 秒
                Set-Cookie
                告诉浏览器为当前页面所在的域设置 cookie
          • HTTP 协议解析
            • 客户端:浏览器。
            • 服务器端:Web 服务器软件(当前最受欢迎的是 Apache Tomcat)。
              • Web 服务器
                • 对 HTTP 协议操作进行封装,简化 Web 程序开发。
                • 部署 Web 项目,对外提供网上信息浏览服务。

          Tomcat

          • 基本使用
            • 下载:官网下载。
            • 安装:绿色版,直接解压。
            • 卸载:直接删除目录。
            • 启动:
              • Windows:双击 bin\startup.bat
                • 控制台中文乱码:修改 conf\logging.properties
              • macOS/Linux:sh startup.sh 或 ./startup.sh
            • 关闭:
              • Windows:
                • 直接 x 掉运行窗口:强制关闭
                • bin\shutdown.bat: 正常关闭
                • Ctrl + C:正常关闭
              • macOS/Linux:
                • 直接 x 掉运行窗口:强制关闭
                • sh shutdown.sh 或 ./shutdown.sh:正常关闭
                • Ctrl + C:正常关闭
            • 文件目录:
              • 文件夹 bin → 可执行文件
              • 文件夹 conf → 配置文件
              • 文件夹 lib → Tomcat 依赖的 jar 包
              • 文件夹 logs → 日志文件
              • 文件夹 temp → 临时文件
              • 文件夹 webapps → 应用发布目录
              • 文件夹 work → 工作目录
            • 常见问题:
              • 启动窗口一闪而过:检查 JAVA_HOME 环境变量是否正确配置
              • 端口号冲突:找到对应程序,将其关闭掉
            • 配置 Tomcat 端口号(conf/server.xml)
              • 💡
                HTTP 协议默认端口号为 80,如果将 Tomcat 端口号改为 80,则将来访问 Tomcat 时,将不用输入端口号。
            • Tomcat 部署项目:
              • 将项目放置到 webapps 目录下,即部署完成。
          • 入门程序解析(内嵌 tomcat)
            • 起步依赖
              • spring-boot-starter-web
              • spring-boot-starter-test
            • 内嵌 Tomcat 服务器
              • 基于 Springboot 开发的 Web 应用程序,内置了 tomcat 服务器,当启 动类运行时,会自动启动内嵌的 tomcat 服务器。
        • Java
        • JavaWeb
        • 学技术
        • JavaWeb开发_Day05JavaWeb开发_Day03
          Loading...
          目录