我是靠谱客的博主 自觉发带,最近开发中收集的这篇文章主要介绍2022年5月17日 【狂神说Java】JavaWeb入门到实战4 HTTP Maven4 HTTP5 Maven,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前面试加改简历,都是外包公司,搞得心乱也没有个好offer。
找工作最重要的还是要自己能力强啊!
继续学习吧。

4 HTTP

4.1 什么是http

HTTP(超文本传输协议) 是一个简单的请求- 响应协议, 它通常运行在TCP之上.

  • 文本:html, 字符串…
  • 超文本:图片, 音乐, 视频, 定位, 地图…
  • 80
  • Https:安全的 端口 :443

4.2 两个时代

  • http1.0
    • HTTP/1.0 :客户端可以与web服务器连接后, 只能获得一个web资源, 断开连接
  • http2.0
    • HTTP/1.1: 客户端可以与web服务器连接后, 可以获得多个web资源

4.3 HTTP请求

  • 客户端 – 发请求–服务器
GET scheme https    //get方法/post方法
host www.baidu.com
filename /
Address 110.242.68.3:443	
Status 200 OK
VersionHTTP/1.1
Transferred105.51 KB (436.31 KB size)
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:99.0) Gecko/20100101 Firefox/99.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.8,zh-CN;q=0.5,zh;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
  1. 请求行

    • 请求行中的请求方式: GET
    • 请求方式: Get , Post, HEAD,DELETE,PUT,TRACT
      • GET: 请求能够携带的参数比较少, 大小有限制, 会在浏览器的地址栏显式数据内容, 不安全, 但是高效
      • POST: 请求能够携带的参数没有限制, 大小没有限制, 不会在浏览器的地址栏显式数据内容, 安全, 但不高效
  2. 消息头

    Accept: 告诉浏览器, 他所支持的数据格式
    Accept-Encoding: 支持哪种编码格式  GBK UFT8 GB2312 ISO8859-1
    Accept-Language:告诉浏览器它的语言环境
    Cache-control:缓存控制
    Connection 告诉浏览器, 请求万是断开还是保持连接
    Host: 主机..
    

4.4 HTTP响应

  • 服务器 – 响应 – 客户端

    百度: 响应

    Cache-Control private	// 缓存控制
    Connection keep-alive	// 连接 保持
    Content-Encoding gzip	// 编码
    Content-Type text/html;charset=utf-8	// 类型
    

    1.响应体

    Accept: 告诉浏览器, 他所支持的数据格式
    Accept-Encoding: 支持哪种编码格式  GBK UFT8 GB2312 ISO8859-1
    Accept-Language:告诉浏览器它的语言环境
    Cache-control:缓存控制
    Connection 告诉浏览器, 请求万是断开还是保持连接
    Host: 主机..
    Refresh:告诉客户端 多久刷新一次
    Location: 让网页重新定位;
    

    2.响应状态码(重点)

    200: 响应成功

    3xx: 请求重定向

    • ​ 重定向: 到重新给你的新位置

    4xx: 资源不存在; 404

    5xx:服务器代码错误 500 , 502网关错误

    常见面试题:

    当浏览器中地址栏输入地址并回车的一瞬间到页面能够展示回来, 经历了什么?

5 Maven

为什么 学习这个技术?

  1. 在JavaWeb开发中, 需要使用大量的Jar包 我们手动导入
  2. 如何能够让一个东西自动帮我们导入和配置这个jar包

由此Maven诞生了!

5.1 Maven项目架构管理工具

我们目前用来就是方便导入jar包的!

Maven核心思想: 约定大于配置

  • 有约束, 不要去违反

Maven会规定好你该如何去编写我们的Java代码, 必须按照这个规范来.

5.2 下载安装Maven

官网: https://maven.apache.org/download.cgi

maven下载

下载 Binary zip archive的link, windows下载zip文件.

友情建议:电脑上的所有环境都放在一个文件夹下, 方便管理

镜像:方便下载使用

Maven国外的, 国内有墙,我们访问外网会非常的慢, 翻墙VPN

5.3 配置环境变量

高级系统设置>环境变量>

配置如下配置:

  • M2_HOME: MAVEN目录下的bin目录(springboot或springcloud会用到)
  • MAVEN_HOME: maven的目录
  • 在系统的path中配置MAVEN_HOME

测试Maven是否安装成功 保证必须配置完毕: mvn -version

5.4 阿里云镜像

  • 镜像: mirrors
    • 作用: 加速我们的下载
  • 国内建议使用:阿里云镜像(自己百度)
<mirrors>
    <mirror>
          <id>alimaven</id>
          <name> 阿里云仓库地址 maven public</name>
          <url>
            https://maven.aliyun.com/repository/public
          </url>
          <mirrorOf>*</mirrorOf>
    </mirror>
</mirrors>

5.5 本地仓库

在本地的仓库, 远程仓库

建立一个本地仓库: localRepository

  <localRepository>D:.m2repository</localRepository>

5.6 在IDEA中使用Maven

1 启动IDEA

2 创建一个MavenWeb项目
在这里插入图片描述

在这里插入图片描述

  1. Group Id : com.kuang
  2. ArtifactId: javaweb-01-maven
    设置maven目录

设置maven地址, 用户设置文件, 本地仓库

在这里插入图片描述

3 等待项目初始化完毕

4 观察maven项目中有什么变化

5 IDEA中的Maven设置

注意:IDEA项目创建成功后, 看一眼Maven的配置

在这里插入图片描述

IDEA中配置Maven

注意: 经常在IDEA中会出现一个问题, 就是项目自动创建完成后, MavenHome会使用IDEA默认地址, 如果发现这个问题, 我们手动改为本地的.

6 到这里, Maven在IDEA中的配置和使用就ok了

5.7 创建一个普通的Maven项目

IDEA中不勾选create from archetype中的maven- web模板, 直接创建一个普通的maven项目.

所有项目:

srcmainjava :放置源代码的

srcmainresources: 放置一些配置文件

srctestjava :测试代码

在这里插入图片描述

web项目里面:

srcmainwebappWEB-INF: Web的配置

srcmainindex.jsp: 网页

在这里插入图片描述

5.8 在IDEA中标记文件夹功能

在之前的web项目里手动添加两个文件夹java 跟resources,然后更改为相应的文件夹模式.

在这里插入图片描述

在这里插入图片描述

5.9 在IDEA中配置Tomcat

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

解决警告问题:

必须要的配置: 为什么会有这个问题: 我们访问一个网站,需要指定一个文件夹的名字

在这里插入图片描述

在这里插入图片描述

Application Context: 可以写,也可以不写

不写:默认访问路径为localhost:8008

假如写了/kuang: 访问路径就成了localhost:8080/kuang

这个过程叫做:虚拟路径映射

5.10 Pom文件

Maven的界面

pom.xml是Maven的核心配置文件

在这里插入图片描述

<?xml version="1.0" encoding="UTF-8"?>
<!--Maven版本和头文件-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <!--这里是我们开始配置的GAV-->
  <groupId>org.example</groupId>
  <artifactId>javaweb-01-maven</artifactId>
  <version>1.0-SNAPSHOT</version>
  <!--Package: 项目的打包方式
  jar:java应用
  war: javaWeb应用
  -->
  <packaging>war</packaging>

  <name>javaweb-01-maven Maven Webapp</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <!--配置-->
  <properties>
    <!--项目的默认构建编码-->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <!--编码版本-->
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <!--项目依赖-->
  <dependencies>
    <!--具体依赖的jar包配置文件-->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.11</version>
      <scope>test</scope>
    </dependency>

    <!--maven的高级之处在于,它能帮你导入这个jar包依赖的其他jar包-->
    <!-- https://mvnrepository.com/artifact/org.springframework/spring-webmvc -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>5.3.19</version>
    </dependency>

  </dependencies>

  <!--项目构建用的东西-->
  <build>
    <finalName>javaweb-01-maven</finalName>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.2.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

在这里插入图片描述

Maveny由于它的约定大于配置, 我们之后可能会碰到我们写的配置文件,无法被导出或者生效的问题。我们解决方案:

  <!--在build中配置resources, 防止我们资源导出失败的问题-->
  <resources>
    <resource>
      <directory>src/main/resources</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.properties</include>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
  </resources>

5.11 IDEA中的操作

生成目录树

在这里插入图片描述

5.13 解决遇到的问题

  1. Maven 3.6.2 : 无法导入Maven project :JDK问题
    在这里插入图片描述

  2. 解决方法:降级为3.6.1,可能是版本兼容问题

  3. Tomcat闪退

  4. 问题:没有配置JAVA_HOME或者是JRE_HOME的环境变量

  5. IDEA每次都要重复配置Maven

  6. 在IDEA中的全局默认配置中去配置

  7. Maven项目中Tomcat无法配置

  8. 全局变量配置

  9. Maven默认Web项目中的web.xml版本太老了

  10. 参考tomcat里面的设置,替换为tomcat web.xml里面的4.0版本

<?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="true">

</web-app>
  1. Maven仓库的使用
  • 地址mvnrepository.com
  • tomcat能够使用就说明tomcat的lib包里面是有这个包的,在lib里面可以找一下

最后

以上就是自觉发带为你收集整理的2022年5月17日 【狂神说Java】JavaWeb入门到实战4 HTTP Maven4 HTTP5 Maven的全部内容,希望文章能够帮你解决2022年5月17日 【狂神说Java】JavaWeb入门到实战4 HTTP Maven4 HTTP5 Maven所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(37)

评论列表共有 0 条评论

立即
投稿
返回
顶部