我會將JavaWeb分為8篇左右的文章來記錄自己的學習過程,也方便大家逐級遞增難度的學習,如有錯誤或遺漏歡迎大家指出。
注:本篇文章承接上一篇JavaWeb文章JavaWeb--基本概念、Web伺服器與Tomcat
下面我們進入正題!
超文字傳輸協定(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應協定,它通常執行在TCP之上。
http埠:80 https埠:443 (s代表安全)
使用者端------發請求(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: //主機
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閘道器錯誤)
我們目前用來就是方便匯入jar包的
Maven的核心思想:約定大於設定
Maven會規定好你該如何去編寫我們的Java程式碼,必須要按照規範
具體下載步驟大家可以參考這篇部落格maven安裝及設定(詳細版)
這裡尤其要注意Maven版本與IDEA版本對應的問題
官網;https://maven.apache.org/
這裡我儲存的位置是:E:\JavaBackend\Maven\apache-maven-3.5.2
在我們的系統環境變數中
設定如下設定:
測試是否安裝成功
setting.xml組態檔位置
<mirror>
<id>nexus-aliyun</id>
<mirrorOf>central</mirrorOf>
<name>Nexus aliyun</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>
本地倉庫 localRepository,遠端倉庫
建立一個倉庫:
C:\Users\86134\.m2\repository
<localRepository>E:/JavaBackend/Maven/apache-maven-3.5.2/maven_repository</localRepository>
啟動IDEA
建立一個Mavenweb專案
3.等待專案初始化完畢
4.觀察maven倉庫中多了哪些東西
5.idea中的maven設定(idea中經常使用自帶的maven,需要手動修改,退出專案在最開始的頁面可以修改預設設定)
(1)
(2)
(1)
(2)
(3)警告問題:我們存取一個網站的時候,需要指定一個資料夾名字
(4)啟動測試
pom.xml是maven的核心組態檔
pom.xml
<?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>
<!--packaging打包方式
java:jar
Javaweb:war
-->
<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.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<!--專案依賴-->
<dependencies>
<!--maven會幫你匯入這個jar包所依賴的其他jar包 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</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>
在build中設定resources,來防止我們資源匯出失敗的問題
<!-- 在build中設定resources , 來防止我們資源匯出失敗的問題-->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
maven版本與jdk版本不相容(jdk1.8 maven3.5)
Tomcat閃退
IDEA中每次都要重複設定Maven(修改全域性)
Maven專案中Tomcat無法設定
Maven預設web專案中的web.xml版本問題
<?xml version="1.0" encoding="UTF-8"?>
<web-app metadata-complete="true" version="4.0"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://xmlns.jcp.org/xml/ns/javaee">
</web-app>
到這裡關於Http和Maven知識就結束啦≧ω≦,希望大家都有所收穫!