summarizejavascript
http協議一個超文本傳輸協議,協議就是一種規則,全部3w文件都得遵循這個標準。它由http請求和響應組成css
http請求和響應都分三部分,http請求:請求行、頭、體(若提交方式爲get,則木有請求體) html
http響應:響應行(有幾個狀態碼:200正常、302重定向、304本地緩存、404路徑或服務器資源已刪、500內部錯誤,服務器拋異常)、頭、體:服務器給客戶端的回寫頁面。沒有請求就沒有響應
java
Tomcat是開源免費web應用服務器,在安裝前先測試一下是否能正常啓動,打開目錄下startup.bat批處理,在瀏覽器打上 localhost:8080出來老虎頁面就是證實服務器啓動正常,注意:不能關閉批處理web
Servlet入門:Servlet是一個類,按步驟來快速建立:建立類實現Servlet接口,再重寫service的三個方法,init、service、destroy(這時候重寫的方法就是 Servlet裏面的方法) 建立完成
apache
在去配置web.xml 要注意的是 :看圖小程序
jsp文件自己就一個Servlet,windows
步驟:new--Dynamic--dynamic web module version (選2.5,和Tomcat 7.0支持xml文件 這裏會自動建立web.xml )--瀏覽器
Resources:src目錄裏放Java代碼緩存
WebContent:放靜態資源(頁面、圖片、js、cs文件)
在webcontent下新建jsp文件,剛建的jsp報錯是由於沒有服務器
改頁面編碼:windows-preference-搜jsp-找到jspfiles-Encoding-UTF-8(改好後,需新建1個或重新打開eclipse,因soft無自動刷新)
超文本傳輸協議(HyperText Transfer Protocol)是互聯網上應用最爲普遍的 一種網絡協議。全部3w文件必須遵照此標準。設計HTTP最初的目的:爲了提供一種發佈和接收HTML頁面的方法
Http協議由Http請求和Http響應組成,當輸入網址訪問網站時, 瀏覽器會將你的請求封裝成一個Http請求發送給服務器站點,服務器接收到請求後會組織響應數據封裝成一個Http響應返回給瀏覽器。即沒有請求就沒有響應
1)請求行
請求方式:POST、GET
請求的資源:/DemoEE/form.html
協議版本:HTTP/1.1
HTTP/1.0,發送請求,建立一次鏈接,得到一個web資源,鏈接斷開。
HTTP/1.1,......................................,得到多個web資源,保持鏈接。
2)請求頭
請求頭是客戶端發送給服務器端的一些信息,使用鍵值對錶示key:value
常見請求頭 |
描述 (紅色掌握,其餘瞭解) |
Referer |
瀏覽器通知服務器,當前請求來自何處。若是是直接訪問,則不會有這個頭。經常使用於:防盜鏈 |
If-Modified-Since |
瀏覽器通知服務器,本地緩存的最後變動時間。與另外一個響應頭組合控制瀏覽器頁面的緩存。 |
Cookie |
與會話有關技術,用於存放瀏覽器緩存的cookie信息。 |
User-Agent |
瀏覽器通知服務器,客戶端瀏覽器與操做系統相關信息 |
Connection |
保持鏈接狀態。Keep-Alive 鏈接中,close 已關閉 |
Host |
請求的服務器主機名 |
Content-Length |
請求體的長度 |
Content-Type |
若是是POST請求,會有這個頭,默認值爲application/x-www-form-urlencoded,表示請求體內容使用url編碼 |
Accept: |
瀏覽器可支持的MIME類型。文件類型的一種描述方式。 MIME格式:大類型/小類型[;參數] 例如: text/html ,html文件 text/css,css文件 text/javascript,js文件 image/*,全部圖片文件 |
Accept-Encoding |
瀏覽器通知服務器,瀏覽器支持的數據壓縮格式。如:GZIP壓縮 |
Accept-Language |
瀏覽器通知服務器,瀏覽器支持的語言。各國語言(國際化i18n) |
3)請求體
請求方式是post,纔會有求體,請求參數格式:username=zhangsan&password=123
請求方式是get,沒有請求體,會拼接在url地址後面 http://localhost:8080...?username=zhangsan&password=123
1)響應行
Http協議
狀態碼:經常使用狀態碼以下
200 :請求成功。
302 :請求重定向。(服務器故意設置的)
304 :請求資源沒有改變,訪問本地緩存。
404 :請求資源不存在。一般是用戶路徑編寫錯誤,也可能是服務器資源已刪除。
500 :服務器內部錯誤。一般程序拋異常。
狀態信息:狀態信息是根據狀態碼變化而變化的
2)響應頭
響應也都是鍵值對形式,服務器端將信息以鍵值對的形式返回給客戶端
常見請求頭 |
描述 |
Location |
指定響應的路徑,須要與狀態碼302配合使用,完成跳轉。 |
Content-Type |
響應正文的類型(MIME類型) 取值:text/html;charset=UTF-8 |
Content-Disposition |
經過瀏覽器如下載方式解析正文 取值:attachment;filename=xx.zip |
Set-Cookie |
與會話相關技術。服務器向瀏覽器寫入cookie |
Content-Encoding |
服務器使用的壓縮格式 取值:gzip |
Content-length |
響應正文的長度 |
Refresh |
定時刷新,格式:秒數;url=路徑。url可省略,默認值爲當前頁。 取值:3;url=www.oracle.cn //三秒刷新頁面到www.oracle.cn |
Server |
指的是服務器名稱,默認值:Apache-Coyote/1.1。能夠經過conf/server.xml配置進行修改。<Connector port="8080" ... server="itcast"/> |
Last-Modified |
服務器通知瀏覽器,文件的最後修改時間。與If-Modified-Since一塊兒使用。 |
3)響應體:服務器回寫給客戶端的頁面正文,瀏覽器把正文加載到內存,而後解析渲染,顯示頁面內容
Brower/Server:瀏覽器 服務器 系統 ----- 網站
Client/Server:客戶端 服務器 系統 ----- QQ、飛秋、大型遊戲
向外部發布web資源的服務器軟件
存在於web應用服務器可供外界訪問的資源就是web資源
例如:存在於web應用服務器內部的Html、Css、js、圖片、視頻等
1)靜態資源:指web頁面中供人們瀏覽的數據始終不變。好比:HTML、CSS、 JS、圖片、多媒體。
2)動態資源:指web頁面中供人們瀏覽的數據是由程序產生,不一樣時間點訪問 web頁面看到的內容各不相同。好比:JSP/Servlet、ASP、PHP
javaWEB領域:動態資源認爲經過java代碼去動態生成html
官網地址:http://tomcat.apache.org/whichversion.html
儘可能下載zip格式 拖出來就能夠用
Tomcat有安裝版和解壓版(綠色版)
安裝版以.exe形式的安裝包,雙擊安裝到咱們的電腦上,用的比較少
解壓版,即綠色版,解壓後直接使用,用的比較多
bin:腳本目錄
啓動腳本:startup.bat
中止腳本:shutdown.bat
conf:配置文件目錄 (config /configuration)
核心配置文件:server.xml
用戶權限配置文件:tomcat-users.xml
全部web項目默認配置文件:web.xml
lib:依賴庫,tomcat和web項目中須要使用的jar包
logs:日誌文件.
localhost_access_log.*.txt tomcat記錄用戶訪問信息,星*表示時間。
例如:localhost_access_log.2016-02-28.txt
temp:臨時文件目錄,文件夾內內容能夠任意刪除。
webapps:默認狀況下發布WEB項目所存放的目錄。
work:tomcat處理JSP的工做目錄。
測試Tomcat服務
在bin目錄下打開 startup.bat啓動Tomcat;
在瀏覽器地址欄輸入http://localhost:8080,下面圖爲服務器啓動成功。反之!
注意:測試Tomcat服務器時,在瀏覽器輸入http://localhost:8080前,必須先啓動Tomcat服務器,並且不能關閉該程序,不然打不開頁面的
若是啓動失敗,緣由分析:
1)沒有配置JAVA_HOME環境變量,一打開startup.bat就會閃退。必須配置正確,及JAVA_HOME指向JDK的安裝目錄
2)端口衝突
java.net.BindException: Address already in use: JVM_Bind <null>:8080
修改Tomcat/conf/server.xml
注意:WEB-INF目錄是受保護,外界不能直接訪問
首先在Eclipse得到服務器運行環境配置,Window/Preferences
在preferences彈出的界面中選擇Server -> Runtime... -> Add按鈕
選7.0 ,而後Next
添加Tomcat安裝目錄選擇JRE
Server Runtime library 添加完成,而後第二步驟配置
在項目上右擊 Build Path -> Configure Build Path
彈出的界面中選擇Libraries
選擇Server Library ,而後 Finish(注意:這裏顯示的選擇項目就是步驟1中完成的Server Runtime配置項目,若是沒有步驟一,這裏就顯示空白,配置就沒法進行下去了)
剛纔添加的library項目。而後必須點擊OK從新打開這個界面配置另一個頁籤的內容,不然配置完後你會發現錯誤信息依然存在並且重啓Eclipse也不行。點OK,從新進入這個界面後,選擇 Order and Export
注意:
必須按照步驟1,2的順序來進行,除非以前已配置過步驟1了
步驟二添加完libraries頁籤後必須點擊OK,而後從新進入該界面再選擇Order and Export頁籤進行配置
部署服務器
在server上右擊 Add and Remove
部署完後 開啓(start)或者中止(stop)
打開後 在瀏覽器地址欄輸入 localhost:8080/WEB02/index.jsp
Servlet 運行在服務端的Java小程序,是sun公司提供一套規範(接口),用來處理客戶端請求、響應給瀏覽器的動態資源。但servlet的實質就是java代碼,經過java的API 動態的向客戶端輸出內容
實現步驟:
1)建立類實現Servlet接口
2)覆蓋還沒有實現的方法---重點實現service方法
3)在web.xml進行servlet的配置
實際開發中,咱們不直接實現Servlet接口,須要覆蓋的方法太多, 咱們通常建立類繼承HttpServlet
實現步驟:
1)建立類繼承HttpServlet類
2)覆蓋doGet和doPost
3)在web.xml中進行servlet的配置
原理圖
package com.oracle.demo01; //建立類實現Servlet接口 import java.io.IOException; import javax.servlet.Servlet; import javax.servlet.ServletConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class MyServlet implements Servlet{ public ServletConfig getServletConfig() { return null; } public String getServletInfo() { return null; } // 第一次請求建立 public void init(ServletConfig arg0) throws ServletException { System.out.println("Servlet建立了"); } // 請求一次執行一次 public void service(ServletRequest arg0, ServletResponse arg1) throws ServletException, IOException { System.out.println("Servlet被請求了"); } // 銷燬時執行 public void destroy() { System.out.println("Servlet被銷燬了"); } }
配置web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>WEB02</display-name> <!-- 每一個Servlet標籤必須成對出現 --> <servlet> <!-- 這裏能夠隨便起名,但爲了規範通常這裏寫類名 注意:這裏寫上面下面的name就必須跟着寫什麼 --> <servlet-name>MyServlet</servlet-name> <!-- 這裏要寫完整的包名和類名 class是類路徑 用. --> <servlet-class>com.oracle.demo01.MyServlet</servlet-class> </servlet> <servlet-mapping> <!-- 這裏的name必須跟上面如出一轍 跟着上面寫 --> <servlet-name>MyServlet</servlet-name> <!-- 虛擬路徑 能夠隨便寫名,但這裏寫啥 地址欄就寫啥 格式: /+名字 --> <url-pattern>/1</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> </web-app>
寫完後,要重新部署一下 server ,刪掉WEB02 重新添加 ADD and Remove
添加成功後,啓動服務 而後輸入web網址 http://localhost:8080/WEB02/1
若是關閉服務器 在 Tomcat v7.0 Server 右擊 stop
注意:若是非正常關閉的話,destory是不會運行的
init方法 建立的時候 執行
service方法 請求一次執行一次
destory方法 銷燬的時候執行
虛擬路徑 執行原理圖