1.1伺服器上的資源分類:
a、靜态資源:指web頁面中供人們浏覽的資料始終是不變。html css js 圖檔 多媒體
b、動态資源:指web頁面中供人們浏覽的資料是由程式産生的,不同時間點通路web頁面看到的内容各不相同。JSP/Servlet、php、asp
下面為簡單的java程式 模拟伺服器提供資源 通路 本地端口1111即可得到伺服器的資源
0、JavaEE規範:
JavaEE規範由JCP組織(www.jcp.org)制定和維護的。很多Java開發技術的總稱。都是由抽象類和接口組成的(jar)。
常用的技術:JSP/Servlet、JPA、JTA、JNID、JDBC、JMX、JAXP、EJB等
1、常用的伺服器:
WebLogic:實作了JavaEE規範,重量級的伺服器,JavaEE容器。
WebSphereAS:實作了JavaEE規範,重量級的伺服器,JavaEE容器。
JbossAS:實作了JavaEE規範,重量級的伺服器,JavaEE容器。
Tomcat:實作了JSP/Servlet規範,輕量級的伺服器,Servlet容器。
2、JSP/Servelt規範:Servlet2.5版
Tomcat的版本
Servlet/JSP版本
JDK
JavaEE
備注
Tomcat8.X
3.1/2.3
7.X
7
預設編碼UTF-8
Tomcat7.X
3.0/2.2
6.X
6
ISO-8859-1
Tomcat6.X
2.5/2.1
5.X
5
用這個ISO-8859-1
3、安裝Tomcat
解壓壓縮包
預設端口:8080
*webapps目錄:該目錄中有幾個檔案夾就說明有幾個應用
4、啟動:Tomcat\bin\startup.bat
找到 startup.bat輕按兩下運作 或者dom裡運作 cd \ → cd Apache → cd bin → startup.bat
沒有異常,最終說明用時,證明啟動成功!
5、啟動時遇到的常見問題
a、一閃而過:原因,沒有配置環境變量JAVA_HOME=C:\jdk1.7.0_45
b、啟動過程中出現很多異常:因為端口被占用了
端口被占用了:dom 使用 netstat -a -o 檢查端口的使用情況
幹掉占用8080端口的程序;
更改Tomcat的預設端口:
修改 Tomcat\conf\server.xml
5、http協定使用的預設端口是80(上線運作)
不用加端口通路
注意80端口可能被占用。(Window如果裝了IIS--web伺服器,預設用80)
MyApp 應用名稱
1.html
css\main.css
WEB-INF 必須有,大小寫一緻。該目錄中的資源用戶端無法通路的
lib 存放本應用用到的jar包。(Tomcat\lib中的jar為所有應用共享的)
classes: 存放本應用的class位元組碼。(優先級:classes--自己的jar---Tomcat中的jar,優先級依次降低)
web.xml 目前應用的配置檔案。
方式一:直接把應用拷貝到Tomcat\webapps目錄中
方式二:把應用打成war包。
就可以通過伺服器通路
1、在MyEclipse中配置Tomcat
2、開發目錄結構和運作目錄結構
通過Tomcat\conf\server.xml配置進行配置(Tomcat的核心配置檔案)
l 配置虛拟目錄(Context)
可以把磁盤上任意位置的檔案夾當做一個應用交給Tomcat管理。
方式一:直接修改server.xml配置檔案(需要重新啟動Tomcat,不推薦)
方式二:在Tomcat\conf\[引擎名稱]\[主機名稱]\目錄中,建立一個xml的配置檔案,檔案名就是應用的通路虛拟目錄:PPP.xml
http://localhost/PPP/1.html
l 配置虛拟主機(Host)
一台硬體伺服器上運作多個網站
域名解析:
l 配置預設端口(Connector)、預設應用、預設首頁
預設端口:80。修改Tomcat\conf\server.xml,把一個Connector的端口改為80
TOmcat中預設的應用webapps\ROOT
方法一:把作為預設應用的應用改為ROOT即可。
方式二:在Tomcat\conf\引擎名稱\主機名稱\ROOT.xml的配置檔案
應用的預設首頁:
修改web.xml
HTTP是什麼?超文本傳輸協定。
描述用戶端和伺服器端的資料标準,該協定由W3C維護和管理。
版本:
HTTP1.0:每次送出請求都需要建立網絡連接配接
HTTP1.1:(主流)在一次網絡連接配接上發出多次請求和得到多次響應。多了一些頭。
明确:
浏覽器遇到以下标記時,會自動送出請求
2.1請求部分
2.2響應部分
3.1請求行:
GET /app1/1.html HTTP/1.1
GET:請求方式。
常用的請求方式:GET(預設的)、POST、HEAD、OPTIONS等
GET:預設的
<a href="http://localhost:8080/app1/1.html?username=abc&password=123">http://localhost:8080/app1/1.html?username=abc&password=123</a>
送出的資料顯示出來了,相對不安全,協定的第一行有長度限制,<1kb.
(有請求資料時推薦)POST:可以通過<form method=”post”/>
username=abc&password=123
送出的資料在請求正文中的,相對安全,長度沒有限制。
/app1/1.html :請求的資源位址。(URI)
URL:協定+主機:端口+資源位址
http://localhost:8080/app1/1.html
HTTP/1.1:用戶端浏覽器使用的協定的版本。
3.2請求消息頭:
作用:向伺服器端傳遞附加資訊(暗号指令)
l Accept:告知伺服器,用戶端可以接受的資料類型(MIME類型)
檔案系統:通過檔案的擴充名區分不同的檔案的。txt jpeg
MIME類型:大類型/小類型。 txt--->text/plain html---->text/html js---->text/javascript (具體對應關系:可參考 Tomcat\conf\web.xml)
l Accept-Encoding:告知伺服器,用戶端可以接受的壓縮編碼。比如gzip
l Accept-Language:告知伺服器,用戶端支援的語言。
l Referer:告知伺服器,從哪個頁面過來的。(作用:統計廣告的投放效果;防止盜鍊。)
l Content-Type:告知伺服器,請求正文的MIME類型
預設類型:application/x-www-form-urlencoded(表單enctype屬性的預設取值)
具體展現:username=abc&password=123
其他類型:multipart/form-data(檔案上傳時用的)
l If-Modified-Since:告知伺服器,目前通路的資源,緩存中的檔案的最後修改時間。
l User-Agent:告知伺服器,浏覽器的類型
l Content-Length:請求正文的資料長度
l Cookie:(*****重要)會話管理有關
3.3請求正文:
資料能送出到伺服器,表單中的輸入域必須有name屬性值
POST請求是才有正文
username=abc&password=123
4.1響應行:
HTTP/1.1 200 OK
HTTP/1.1 :說明伺服器端用的協定版本
200 :響應狀态碼
1XX 2XX 3XX 4XX 5XX
2XX:處理完畢
4XX:請求有誤
5XX:伺服器有誤
記住常用的響應碼:
200:一切正常
302/307:請求重定向
304:伺服器上的資源沒有發生改變
404:通路的位址不存在
500:伺服器端錯誤
OK:響應碼描述
4.2響應消息頭:
作用:伺服器端向用戶端傳遞的附加資訊(暗号指令)
l Location:告知用戶端,你去通路的位址。
和302/307實作請求重定向
l Content-Encoding:告知用戶端,響應正文使用的壓縮編碼(gzip)
l Content-Length:告知用戶端,響應正文的長度
l Content-Type:告知用戶端,響應文正的MIME類型。預設text/html
l Refresh:告知用戶端,定時重新整理
l Content-Disposition:告知用戶端,用下載下傳的方式打開 attachment;filename=23.jpg
l Set-Cookie:(*****)會話有關
-------------
l Expires: -1 控制時間的
l Cache-Control: no-cache (1.1)
l Pragma: no-cache (1.0)
三頭一塊用,用于告知浏覽器,不要緩存。
----------------------
4.3響應正文:
浏覽器解析的正文内容,右鍵檢視源碼一樣的。