JavaWeb Java Web 1、基本概念 1.1、前言 web開發: web,網頁的意思 , www.baidu.com 靜態web html,css 提供給所有人看的數據始終不會發生變化! 動態web 淘寶,幾乎是所有的網站; 提供給所有人看的數據始終會發生變化,每個人在不同的時間,不同的地 ...
JavaWeb
Java Web
1、基本概念
1.1、前言
web開發:
- web,網頁的意思 , www.baidu.com
- 靜態web
- html,css
- 提供給所有人看的數據始終不會發生變化!
- 動態web
- 淘寶,幾乎是所有的網站;
- 提供給所有人看的數據始終會發生變化,每個人在不同的時間,不同的地點看到的信息各不相同!
- 技術棧:Servlet/JSP,ASP,PHP
在Java中,動態web資源開發的技術統稱為JavaWeb;
1.2、web應用程式
web應用程式:可以提供瀏覽器訪問的程式;
- a.html、b.html......多個web資源,這些web資源可以被外界訪問,對外界提供服務;
- 你們能訪問到的任何一個頁面或者資源,都存在於這個世界的某一個角落的電腦上。
- URL
- 這個統一的web資源會被放在同一個文件夾下,web應用程式-->Tomcat:伺服器
- 一個web應用由多部分組成 (靜態web,動態web)
- html,css,js
- jsp,servlet
- Java程式
- jar包
- 配置文件 (Properties)
web應用程式編寫完畢後,若想提供給外界訪問:需要一個伺服器來統一管理;
1.3、靜態web
- .htm, .html,這些都是網頁的尾碼,如果伺服器上一直存在這些東西,我們就可以直接進行讀取。通絡;
- 靜態web存在的缺點
- Web頁面無法動態更新,所有用戶看到都是同一個頁面
- 輪播圖,點擊特效:偽動態
- JavaScript [實際開發中,它用的最多]
- VBScript
- 它無法和資料庫交互(數據無法持久化,用戶無法交互)
- Web頁面無法動態更新,所有用戶看到都是同一個頁面
1.4、動態web
頁面會動態展示: “Web的頁面展示的效果因人而異”;
缺點:
- 加入伺服器的動態web資源出現了錯誤,我們需要重新編寫我們的後臺程式,重新發佈;
- 停機維護
優點:
- Web頁面可以動態更新,所有用戶看到都不是同一個頁面
- 它可以與資料庫交互 (數據持久化:註冊,商品信息,用戶信息........)
新手村:--魔鬼訓練(分析原理,看源碼)--> PK場
2、web伺服器
2.1、技術講解
ASP:
微軟:國內最早流行的就是ASP;
在HTML中嵌入了VB的腳本, ASP + COM;
在ASP開發中,基本一個頁面都有幾千行的業務代碼,頁面極其換亂
維護成本高!
C#
IIS
<h1> <h1><h1> <h1> <h1> <h1> <h1> <% System.out.println("hello") %> <h1> <h1> <h1><h1> <h1>
php:
- PHP開發速度很快,功能很強大,跨平臺,代碼很簡單 (70% , WP)
- 無法承載大訪問量的情況(局限性)
JSP/Servlet :
B/S:瀏覽和伺服器
C/S: 客戶端和伺服器
- sun公司主推的B/S架構
- 基於Java語言的 (所有的大公司,或者一些開源的組件,都是用Java寫的)
- 可以承載三高問題帶來的影響;
- 語法像ASP , ASP-->JSP , 加強市場強度;
.....
2.2、web伺服器
伺服器是一種被動的操作,用來處理用戶的一些請求和給用戶一些響應信息;
IIS
微軟的; ASP...,Windows中自帶的
Tomcat
面向百度編程;
Tomcat是Apache 軟體基金會(Apache Software Foundation)的Jakarta 項目中的一個核心項目,最新的Servlet 和JSP 規範總是能在Tomcat 中得到體現,因為Tomcat 技術先進、性能穩定,而且免費,因而深受Java 愛好者的喜愛並得到了部分軟體開發商的認可,成為目前比較流行的Web 應用伺服器。
Tomcat 伺服器是一個免費的開放源代碼的Web 應用伺服器,屬於輕量級應用伺服器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程式的首選。對於一個Java初學web的人來說,它是最佳的選擇
Tomcat 實際上運行JSP 頁面和Servlet。Tomcat最新版本為9.0。
....
工作3-5年之後,可以嘗試手寫Tomcat伺服器;
下載tomcat:
- 安裝 or 解壓
- 瞭解配置文件及目錄結構
- 這個東西的作用
3、Tomcat
3.1、 安裝tomcat
tomcat官網:http://tomcat.apache.org/
3.2、Tomcat啟動和配置
文件夾作用:
啟動。關閉Tomcat
可能遇到的問題:
- Java環境變數沒有配置
- 閃退問題:需要配置相容性
- 亂碼問題:配置文件中設置
3.3、配置
可以配置啟動的埠號
- tomcat的預設埠號為:8080
- mysql:3306
- http:80
- https:443
<Connector port="8081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
可以配置主機的名稱
- 預設的主機名為:localhost->127.0.0.1
- 預設網站應用存放的位置為:webapps
<Host name="www.qinjiang.com" appBase="webapps"
unpackWARs="true" autoDeploy="true">
高難度面試題:
請你談談網站是如何進行訪問的!
輸入一個功能變數名稱;回車
檢查本機的 C:\Windows\System32\drivers\etc\hosts配置文件下有沒有這個功能變數名稱映射;
有:直接返回對應的ip地址,這個地址中,有我們需要訪問的web程式,可以直接訪問
127.0.0.1 www.qinjiang.com
沒有:去DNS伺服器找,找到的話就返回,找不到就返回找不到;
- 可以配置一下環境變數(可選性)
3.4、發佈一個web網站
不會就先模仿
- 將自己寫的網站,放到伺服器(Tomcat)中指定的web應用的文件夾(webapps)下,就可以訪問了
網站應該有的結構
--webapps :Tomcat伺服器的web目錄
-ROOT
-kuangstudy :網站的目錄名
- WEB-INF
-classes : java程式
-lib:web應用所依賴的jar包
-web.xml :網站配置文件
- index.html 預設的首頁
- static
-css
-style.css
-js
-img
-.....
HTTP協議 : 面試
Maven:構建工具
- Maven安裝包
Servlet 入門
- HelloWorld!
- Servlet配置
- 原理
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請求
- 客戶端---發請求(Request)---伺服器
百度:
Request URL:https://www.baidu.com/ 請求地址
Request Method:GET get方法/post方法
Status Code:200 OK 狀態碼:200
Remote(遠程) Address:14.215.177.39:443
Accept:text/html
Accept-Encoding:gzip, deflate, br
Accept-Language:zh-CN,zh;q=0.9 語言
Cache-Control:max-age=0
Connection:keep-alive
1、請求行
- 請求行中的請求方式:GET
- 請求方式:Get,Post,HEAD,DELETE,PUT,TRACT…
- get:請求能夠攜帶的參數比較少,大小有限制,會在瀏覽器的URL地址欄顯示數據內容,不安全,但高效
- post:請求能夠攜帶的參數沒有限制,大小沒有限制,不會在瀏覽器的URL地址欄顯示數據內容,安全,但不高效。
2、消息頭
Accept:告訴瀏覽器,它所支持的數據類型
Accept-Encoding:支持哪種編碼格式 GBK UTF-8 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 類型
1.響應體
Accept:告訴瀏覽器,它所支持的數據類型
Accept-Encoding:支持哪種編碼格式 GBK UTF-8 GB2312 ISO8859-1
Accept-Language:告訴瀏覽器,它的語言環境
Cache-Control:緩存控制
Connection:告訴瀏覽器,請求完成是斷開還是保持連接
HOST:主機..../.
Refresh:告訴客戶端,多久刷新一次;
Location:讓網頁重新定位;
2、響應狀態碼
200:請求響應成功 200
3xx:請求重定向
- 重定向:你重新到我給你新位置去;
4xx:找不到資源 404
- 資源不存在;
5xx:伺服器代碼錯誤 500 502:網關錯誤