java_第一年_JavaWeb(2)

HTTP協議java

HTTP協議——超文本傳輸協議,用於定義web瀏覽器和web服務器之間數據交換的過程,遵照必定的通信的格式;web

HTTP請求——包括請求行和多個信息頭正則表達式

  • 請求行:包含請求方式(經常使用的GET、POST等)、URL(可附加參數,在URL後接?,若多個數據可用&隔開)、HTTP的版本號
  • 信息頭:
  1. Accept:表示瀏覽器所支持的數據類型
  2. Accept-Charset:表示瀏覽器所支持的字符集
  3. Accept-Language:表示瀏覽器的語言環境
  4. Accept-Encoding:表示瀏覽器支持的壓縮格式
  5. Host:告訴服務器所要訪問的主機
  6. If-Modified-Since:告訴服務器緩存數據的時間
  7. Referer:告訴服務器客戶機是從哪一個頁面來的,防盜鏈
  8. Connect:請求完後是斷開鏈接仍是保持鏈接

HTTP響應——包含狀態、信息頭、實體內容瀏覽器

  • 狀態行:HTTP版本號、狀態碼、緣由敘述(如:OK)
  • 信息頭:
  1. Location:告訴瀏覽器跳到哪(重定向)
  2. Server:告訴服務器的型號
  3. Content-Encoding:告訴瀏覽器數據的壓縮格式
  4. Content-Language:告訴瀏覽器的語言環境
  5. Content-Type:告訴瀏覽器回送數據的類型
  6. Contennt-Length:告訴瀏覽器數據的長度
  7. Refresh:告訴瀏覽器定時刷新
  8. Content-Disposition:告訴瀏覽器如下載的方式打開數據
  9. Transfer-Encoding:告訴瀏覽器數據以分塊的方式回送
  10. Expires:-1  :控制瀏覽器不要緩存

Servlet接口緩存

Servlet是一個用於處理鏈接請求的接口,處理過程以下:安全

  1. web服務器檢查是否已經裝載了該Servlet的實例對象,若是是,直接走3,不然,執行2;(首次訪問纔會建立目標Servlet)
  2. 裝載並建立一個Servlet實例對象,並調用實例對象的init()方法;
  3. 建立一個封裝HTTP請求信息的HttpServletRequest對象和一個表明HTTP響應信息的HttpServletResponse對象,後調用Servlet的service()方法並將請求和響應對象做爲參數傳遞進去;
  4. WEB應用程序被中止或從新啓動以前,Servlet引擎將卸載Servlet,並在卸載以前調用Servlet的destroy()方法;

Servlet接口的實現類:GenericServlet、HttpServlet。服務器

平時用的比較多的是HttpServlet類,它是在原有的Servlet接口上添加了一些HTTP協議處理方法,且覆寫了service方法,該方法能夠自動判別請求方式,如GET,則調用doGet;如POST,則調用doPost方法,所以咱們在編寫Servlet時,只需覆寫doGet和doPost方法便可;多線程

爲了讓客戶端經過URL訪問到Servlet接口程序,咱們一般須要在web.xml這個配置文件中配置URL;經過<servlet>和<servlet-mapping>這兩對元素完成;app

<servlet>包含兩個子元素<servlet-name>和<servlet-class>;分別表示Servlet的註冊名和完整類名;url

<servlet-mapping>包含兩個子元素<servlet-name>和<url-pattern>;分別用於指定註冊名的對外的訪問路徑,能夠是正則表達式,匹配原則是「越像誰就找誰」;且一個<servlet>能夠對應多個<servlet-mapping>;

若是在<url-pattern>中僅設置一個斜杆/,則表示該<servlet>爲缺省Servlet,即將匹配不到的url都交給缺省Servlet處理;

Servlet與普通java類的區別是:Servlet是一個供其餘java程序調用的java類,不能夠單獨運行;在Servlet整個生命週期中,只會調用一次init方法,即Servlet實例一旦建立,會被保存在內存中,爲其服務後續的請求,而service方法倒是每次請求都調用一次;

當有多個客戶端鏈接到同一個Servlet時,Servlet並不會再實例化,而是經過多線程調用service方法進行處理,這個時候就有可能會形成線程的安全問題,而引發這種問題的每每是存在全局變量,當多個service方法調用該變量時就會形成錯誤,最好的解決方法是設置局部變量,即每一個線程各類操做各類線程內的變量,互不影響;

相關文章
相關標籤/搜索