JavaWeb--HTTP与Maven


前言

  • Java Web 其实就是一个技术的总和,把Web看成一个容器而已主要使用JavaEE技术来实现.在加上各种中间件。
  • 整个javaWeb阶段的内容通过实际的案例贯穿学习, 所涉及到的技术知识点会在案例中根据不同的需求引入。
  • 首先了解javaWEB的整个技术体系,掌握常用的技术知识点。

我会将JavaWeb分为8篇左右的文章来记录自己的学习过程,也方便大家逐级递增难度的学习,如有错误或遗漏欢迎大家指出。

注:本篇文章承接上一篇JavaWeb文章
下面我们进入正题!

4、HTTP

4.1、什么是HTTP

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

http端口:80 https端口:443 (s代表安全)

  • 文本:html,字符串,...
  • 超文本:图片,音乐,视频,定位,地图....

4.2、两个时代

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

4.3、HTTP请求

  • 客户端------发请求(request)-----服务器

    Request URL: https://www.baidu.com/                      //请求地址(以百度为例)
    Request Method: GET                                      //GET/POST方法
    Status Code: 200 OK                                      //状态码:200代表OK
    Remote Address: 110.242.68.3:443                         //地址
    Referrer Policy: strict-origin-when-cross-origin         //协议
    
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    Accept-Encoding: gzip, deflate, br
    Accept-Language: zh-CN,zh;q=0.9//语言
    Cache-Control: max-age=0
    Connection: keep-alive
    
  • 请求行

  • 消息头

    Accept:             //告诉浏览器它所支持的数据类型
    Accept-Encoding:    //支持哪种编码格式   GBK   UTF-8    GB2312   ISO8859-1
    Accept-Language:    //告诉浏览器他的语言环境
    Cache-Control:      //缓存控制
    Connection:         //告诉浏览器,请求完是断开还是保持连接
    HOET:               //主机
    

4.4、HTTP响应

  • 服务器-----响应(response)-----客户端
Cache-Control: private                           // 缓存控制
Connection: keep-alive                           // 连接
Content-Encoding: gzip                           // 编码
Content-Type: text/html;charset=utf-8            // 类型
  • 响应体
Accept:             //告诉浏览器它所支持的数据类型
Accept-Encoding:    //支持哪种编码格式   GBK   UTF-8    GB2312   ISO8859-1
Accept-Language:    //告诉浏览器他的语言环境
Cache-Control:      //缓存控制
Connection:         //告诉浏览器,请求完是断开还是保持连接
HOET:               //主机
REFRESH:            //告诉客户端多久刷新一次
Location:           //让网页重新定位
  • 响应头

    200:请求响应成功

    202:接受

    3**:

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

    400:错误的请求

    404:找不到资源

    5**:服务器代码错误(502网关错误)

5、Maven

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

5.1、Maven项目架构管理工具

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

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

  • 有约束不要去违反

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

5.2、下载安装Maven

这里尤其要注意Maven版本与IDEA版本对应的问题

官网;https://maven.apache.org/
这里我保存的位置是:E:\JavaBackend\Maven\apache-maven-3.5.2

5.3、配置环境变量

在我们的系统环境变量中

配置如下配置:

  • M2_HOME maven目录下的bin目录
  • MAVEN_HOME maven的目录
  • 在系统的path中配置%MAVEN_HOME%\bin

测试是否安装成功

5.4、阿里云镜像

  • 镜像:mirrors,可以加速我们的下载

setting.xml配置文件位置


    nexus-aliyun
    central
    Nexus aliyun
    http://maven.aliyun.com/nexus/content/groups/public

5.5、本地仓库

本地仓库 localRepository,远程仓库

建立一个仓库:

  • 原来的地址:
C:\Users\86134\.m2\repository
  • 修改后的地址:
 E:/JavaBackend/Maven/apache-maven-3.5.2/maven_repository

5.6、在IDEA中使用Maven

  1. 启动IDEA

  2. 创建一个Mavenweb项目



3.等待项目初始化完毕

4.观察maven仓库中多了哪些东西

5.idea中的maven设置(idea中经常使用自带的maven,需要手动修改,退出项目在最开始的页面可以修改默认设置)

5.7、创建一个普通maven项目

5.8、标记文件夹功能

(1)

(2)

5.9、在idea中配置Tomcat

(1)
(2)

(3)警告问题:我们访问一个网站的时候,需要指定一个文件夹名字


(4)启动测试

5.10、pom文件

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

pom.xml

<?xml version="1.0" encoding="UTF-8"?>


  4.0.0

  org.example
  Javaweb-01-maven
  1.0-SNAPSHOT

  war

  Javaweb-01-maven Maven Webapp
  
  http://www.example.com

  

    UTF-8

    1.7
    1.7
  
  

  
      
    
      junit
      junit
      4.11
      test
    
  

  
    Javaweb-01-maven
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  


在build中配置resources,来防止我们资源导出失败的问题

  
    
        
            
                src/main/resources
                
                    **/*.properties
                    **/*.xml
                
            
            
                src/main/java
                
                    **/*.properties
                    **/*.xml
                
            
        
    

5.11、Maven仓库的使用

Maven仓库

常见的问题

  • maven版本与jdk版本不相容(jdk1.8 maven3.5)

  • Tomcat闪退

  • IDEA中每次都要重复配置Maven(修改全局)

  • Maven项目中Tomcat无法配置

  • Maven默认web项目中的web.xml版本问题

      • 替换为webapp4.0版本和Tomcat一致
      <?xml version="1.0" encoding="UTF-8"?>
      
      
               
      
      

到这里关于Http和Maven知识就结束啦≧ω≦,希望大家都有所收获!