今日內容css
一、Web開發基本概念(瞭解)html
二、tomcat的安裝和配置(必會)linux
三、web項目的發佈(必會)web
四、Http協議簡介(理解)數據庫
一、軟件的架構apache
經常使用的軟件:QQ、京東、淘寶、kgcjson
1)C/S架構windows
解釋:客戶端/服務器。跨域
特色:須要下載並安裝,每次更新須要下載,客戶端和服務器有可能都須要更新瀏覽器
控件炫酷,由於它調用的是系統底層的圖形的API
2)B/S架構
解釋:瀏覽器/服務器架構。它是基於Http協議的,用的是請求/響應模式。
特色:經過瀏覽器直接訪問,更新不須要用戶干涉,在服務器端維護
二、web資源分類
什麼是web資源?
放在服務器上,供用戶訪問的文件、圖片、CSS、JS、視頻、音頻等
1)靜態資源:css、js、圖片 html 視頻 音頻
2)動態資源:若是文件是由容器進行編譯、執行後生成的文件,就是動態資源。Servlet、jsp。
當用戶訪問資源的時候,動態資源和靜態資源走的引擎不同。
三、服務器的概念以及常見的web服務器
l 什麼是服務器?
服務器是軟件和硬件的結合體。首先要由服務器的硬件,而後安裝服務器軟件,對軟件進行配置,啓動起來。這樣用戶才能夠訪問。
l 常見的web服務器
概念:就是能夠運行web程序的服務器,當用戶把web程序部署到該服務器後,啓動就能夠訪問web資源。
1)WebSphere:IBM公司的商用服務器,收費。
2)WebLogic:BEA 公司的商業服務器,收費 jsp/servlet
3)IIS ,asp asp.net
4)tomcat:開源的服務器,高效,小巧。一般如今常常把tomcat在分佈式環境下搭建集羣。
四、web動態資源的結構
Webapp(webroot)
WEB-INF
web.xml(部署描述符文件)
lib(文件,放jar文件)
jsp(html css js)
就是通常在站點的下面會專門建立文件夾放css,js和imgs相似。Lib放第三方的jar,拷貝進去後,不須要再去構建路徑
一、下載地址:https://tomcat.apache.org/download-80.cgi
二、下載什麼?
說明:gz是linux版本,zip是windows版本,要根據操做系統的64仍是32,選擇合適的。
三、安裝就是解壓縮。
1)解壓到根目錄
2)不能解壓到中文文件夾、中間不要有空格、也不要用很特殊的字符
四、配置
1)該軟件依賴jdk,沒有jdk沒法運行啓動。那麼就必須配置jdk的環境變量
JAVA_HOME: C:\Program Files\Java\jdk1.8.0_111
CLASSPATH: .;%JAVA_HOME%\lib; %JAVA_HOME%\lib
配置path環境變量,在前面加上 %JAVA_HOME%\bin;
Path環境變量所作過的修改
D:\Program Files\MySQL\MySQL Server 5.5\bin;
這是配置的數據庫的環境變量
%Java_Home%\bin;
這是配置的jdk的環境變量
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;
%CATALINA_HOME%\bin;
這是配置的tomcat的環境變量
---------------------------------------------------------------------------------------------------------------------------------
2)配置tomcat環境
CATALINA_HOME: D:\apache-tomcat-8.0.26
在後面加上 %CATALINA_HOME%\bin;
3)如何判斷安裝成功
五、在命令行輸入startup.bat,出現下面的界面,屏幕沒有一閃而過,就說明沒有問題。這說明啓動成功
六、測試:在瀏覽器輸入http://localhost:8080/,
七、tomcat的目錄結構
bin:啓動和關閉tomcat的文件夾。
startup.bat是用來啓動服務器,
shutdown.bat是中止服務器的。
這裏的bat文件咱們稱爲批處理文件。
以.sh結尾的文件是在linux環境下啓動和關閉服務器的文件。
lib:該軟件依賴的jar包
logs:日誌文件
temp:臨時文件夾
webapps:就是用來發布你本身的web應用的文件夾,好比本身的站點能夠拷貝到這裏。
work:放的jsp文件翻譯的源代碼文件以及編譯後的字節碼文件
學習誤會:
1)你們認爲,咱們一個動態站點 開發完畢,要測試或者正式上線,就是每次手工拷貝項目到webapps?
http://localhost:8080/web01/xxxxx資源
解答:能夠這麼作,可是在開發的時候調試的效率過低,每次修改必定代碼,都必須手工拷貝,速度太慢。因此咱們是經過軟件自動的拷貝到webapps下面的。這個經過軟件拷貝的過程叫作部署和發佈。何時用該方式暱?好比項目完成後,到客戶現場通常帶到現場的不是源代碼(源代碼不會隨便給實施工程師),而是編譯後的文件,通常手工拷貝部署。也能夠遠程的方式拷貝部署。(有云服務器,有帳號和密碼)。
2)發佈:有手工拷貝,還有工具拷貝,好比經過eclipse自動拷貝和部署。
發佈一個web工程到tomcat中共有三種方法:
方式一:直接copy項目到webapps下
直接將web工程複製到webapps便可,注意它copy的是webContext這個文件夾的內容。
例如http://localhost:8080/WebContent/NewFile.jsp
http://60.1.1.128:8080/aa/NewFile.jsp
當須要別人的電腦訪問你的網頁,須要將localhost 改成本機的ip地址60.1.1.128
獲取ip地址的方式爲,在黑窗口輸入ipconfig
方式二:配置tomcat的虛擬路徑(不推薦)
在tomcat/conf/server.xml文件中進行配置
在<Host>標籤下配置:
<Context path="aaa" docBase="D:/HelloKitty"/>
方式三:配置tomcat的虛擬路徑(推薦)
在tomcat/conf/Catalina/localhost/xxx.xml
配置<Context docBase="D:/HelloKitty"/>
用尾文件的路徑取代"D:/HelloKitty"
xxx做爲虛擬路徑的名稱
建立xml文件
Xml的文件名就是訪問路徑
例如http://localhost:8080/aa/NewFile.jsp
如何獲得路徑?
任務,分別使用cmd啓動服務器,和使用eclipse啓動服務器來實現web項目的發佈
說明:第一次的不要添加web到服務器,由於會自動發佈到插件中
協議
什麼是協議:規定雙方須要遵照的規則
http協議
什麼是http協議:用來規定瀏覽器和服務器之間須要遵照的規則.。
解讀:是軟件的協議,規定是瀏覽器和服務器雙方要遵循的規則。爲何須要遵循規則?由於是軟件,它是機器來執行的,它本身不會判斷,只會機械執行。並且在計算機世界中是二進制的數據。那麼這些數據進行交互和通訊,機器怎麼知道它要去執行什麼指令?那麼就必須約定規則。這樣才能夠。
http協議的做用:規範瀏覽器和服務器之間的數據傳遞.
http協議的特色:
必須先有請求,後有響應
請求和響應必須成對出現
http協議的版本:
1.0 每次響應後即刻關閉了鏈接.
1.1 如今使用.不是每次響應後掛斷,等待長時間之後,沒有請求就會掛斷.
抓包分析:get方式
請求部分:
GET /ServletDemo/http/demo2.html?name=aaa&age=18 HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Referer: http://localhost:8080/ServletDemo/http/demo1.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
抓包分析:post方式
請求部分:
POST /ServletDemo/http/demo2.html HTTP/1.1
Host: localhost:8080
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 15
Referer: http://localhost:8080/ServletDemo/http/demo1.html
Connection: keep-alive
Upgrade-Insecure-Requests: 1
name=bbb&age=38
響應部分:
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Accept-Ranges: bytes
ETag: W/"143-1508222586306"
Last-Modified: Tue, 17 Oct 2017 06:43:06 GMT
Content-Type: text/html
Content-Length: 143
Date: Tue, 17 Oct 2017 06:48:05 GMT
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
hello servlet!!!
</body>
</html>
請求行
提交方式:
提交方式有不少種,經常使用的就是get,post,還有一些put,delete...
get和post的區別:
get的提交的參數會顯示到地址欄上,而post不會
get每每是有大小限制的,而post沒有大小的限制
get沒有請求體,而post是有請求體
提交路徑:
協議版本: HTTP/1.1
請求頭
都是鍵值對的形式顯示存在的,通常一個key對應一個value,也有一些是一個key多個value
User-Agent: 表明的是瀏覽器的類型---文件下載,下載中文文件,IE使用URLEncoder 進行編碼,而Firefox會是Base64編碼
Referer: 表明的是網頁的來源.---防盜鏈
If-Modified-Since: 一般與響應中的頭Last-Modified一塊兒使用來查找本地緩存.
請求體
就是post提交方式提交到服務器的參數
響應行
協議版本 :HTTP/1.1
狀態碼 :
200 成功
302 重定向
304 查找本地緩存
404 資源不存在
500 服務器內部錯誤
狀態碼描述
響應頭:鍵值對,通常一個key對應一個value,也有一個key對應多個value
Last-Modified :與請求頭中的If-Modified-Since一塊兒使用查找本地緩存.
Content-Disposition:文件下載的時候使用的一個頭信息
Location :重定向跳轉的路徑
Refresh :定時刷新/定時跳轉
問題:
Web中,緩存的原理是什麼?
第1次請求的時候,會把資源和時間帶到客戶端瀏覽器緩存文件夾中,第2次請求同一個資源的時候,請求頭會帶一個If-Modified-Sice(時間戳)到服務器端,服務器端去查找請求的資源的最後修改時間是什麼,把這個時間和帶過來的時間進行對比,若是不一樣,就會把資源從新發送到瀏覽器緩存文件夾,同時會帶一個時間戳Last-Modified 過去。若是相同,就發一個狀態碼304,(此時不會將資源從新發送到瀏覽器緩存文件夾),那麼瀏覽器會自動到緩存文件夾中查找資源並顯示。
響應體:
顯示到瀏覽器的頁面的內容
做業:
一、三種發佈方式練習
二、在eclipse中建立web項目,以及配置tomcat,發佈項目和啓動、關閉。
三、預習Servlet
學習底線:
1、會建立web項目,會配置tomcat,會發布項目,啓動
2、servlet會建立、會配置部署描述符以及會經過url訪問servlet(相對路徑和絕對路徑)
3、會在servlet(控制器)中經過request對象得到客戶端瀏覽器提交的請求參數的值。
從前臺到後臺,意味着會從後臺獲取前提提交數據。Request對象,學會核心方法。
4、會從後臺到前臺。會響應頁面或者數據給前臺。Reponse對象
5、會處理響應亂碼或者請求亂碼。Request中得到前臺數據的時候,若是是get提交會有亂碼,要會處理。響應的數據會經過response處理亂碼。
6、懂得轉發和重定向的區別,繼而會選擇合適的域對象,把數據存儲到域對象。固然也會從域對象中得到存放的值。
7、mvc的執行流程
8、JSTL和EL表達式的使用(數據綁定的時候,處理循環、判斷以及從域對象中得到數據後進行綁定)
9、三層架構的基礎上,這個是基礎中的基礎。
10、過濾器的使用
11、jsp的9個內置對象以及他們的用法
12、會處理AJAX,返回json數據
13、單表的帶條件的分頁查詢
提升部分:
1、cookie的原理
2、session的原理
3、跨域訪問的問題
4、表單的重複提交處理
5、禁止cookie後怎麼處理?
6、文件的上傳和下載(咱們的企業家開發不會用框架來處理上傳和下載)
7、監聽器的使用場景
8、用戶的自動登陸功能
9、jsp頁面的組成部分(動做、小腳本、表達式的混排使用)
10、驗證碼
11、多個表的帶條件的分頁查詢