Servlet入門和HTTP。

Servlet:html

一、概念:Servlet:server applet  ,運行在服務器端的小程序。web

       瀏覽器在訪問服務器的動態資源時,訪問的是具備邏輯性的Java代碼(Java類),而這裏的Java類依 賴於服務器才能運行(tomcat執行它),而這些Java類須要遵循一些規則,tomcat才能識別它並執行它,而這些規則就是Servlet。小程序

        * Servlet就是一個接口,定義了Java類能被瀏覽器訪問到(tomcat識別)的規則。瀏覽器

二、快速入門:tomcat

  一、建立JavaEE項目。安全

  二、定義一個類,實現Servlet接口。服務器

  三、實現接口中的抽象方法。app

  四、配置Servlet:url

<servlet>
        <servlet-name>demo1</servlet-name>
        <servlet-class>servlet.ServletDemo1</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>demo1</servlet-name>
        <url-pattern>/demo1</url-pattern>
    </servlet-mapping>

三、Servlet執行原理。spa

  一、http://localhost:8080/Tomcat/demo1    瀏覽器訪問服務器,並試圖獲取資源。

  二、查找web.xml,看<url-pattern>裏有沒有demo1

  三、若是有,找到對應<servlet-class>全類名。

  四、tomcat將該類的字節碼文件加載進內存,並建立其對象。

  五、調用該對象的方法。

四、Servlet中的生命週期。

  一、被建立:執行 init 方法,只執行一次。

    * Servlet何時被建立?

      * 默認,第一次訪問時,Servlet被建立。

      * 能夠配置Servlet的建立時機。

         一、第一次被訪問時建立:<load-on-startup>的值爲負數。

          二、服務器啓動時建立:值爲0或正數。

    * Servlet的 init 方法,只執行一次,說明一個Servlet在內存中只存在一個對象,Servlet是單例的。因此在多個用戶訪問時,可能存在線程安全問題。

      * 解決:儘可能不要在Servlet中定義成員變量。即便定義了,不要對其修改值。

  二、提供服務:執行service 方法,執行屢次。

    * 每次訪問Servlet時,service方法被調用一次

  三、被銷燬:執行 destroy 方法,只執行一次。

    * 服務器關閉時(正常關閉),在Servlet銷燬以前被執行,通常用於釋放資源。

四、Servlet3.0.

  好處:支持註解配置。能夠不用web.xml。

  步驟:一、建立JavaEE項目,選Servlet3.0及以上版本,可不建立web.xml

     二、定義類實現接口,重寫方法。

     三、類上使用@WebServlet 註解來配置:@WebServlet("資源路徑")。

五、IDEA和tomcat的相關配置。

  一、IDEA會爲每一個tomcat部署的項目單獨創建一份配置文件。

    * 查看控制檯的 Using CATALINA_BASE:

  二、項目有兩個地方存儲:工做空間項目  和  tomcat部署的web項目。

    * tomcat真正訪問的是 「tomcat部署的web項目「 ,該項目對應着工做空間項目的web目錄下的全部資源。

  三、tomcat斷點調試:點小蟲子來啓動debug。

六、Servlet體系結構。

  Servlet接口 <---GenericServlet 抽象類 <-- HttpServlet 抽象類。

  *GenericServlet:將Servlet接口的其餘方法做了默認實現,只將service()方法做爲抽象方法,因此之後定義Servlet類時,能夠繼承該抽象類,實現service()方法便可。

  *HttpServlet :對http協議的一種封裝,簡化操做(判斷請求類型)   經常使用

    實現:一、定義類繼承HttpServlet  二、複寫doGet/doPost 方法。

七、Servlet相關配置。

  一、urlPartten:Servlet訪問路徑。

    * 一個Servlet能夠定義多個訪問路徑。

    * 路徑定義規則:一、/XXX  二、/xxx/xxx 三、*.do

八、HTTP。

  一、概念:Hyper Text Transfer Protocol  超文本傳輸協議。

    傳輸協議:定義了客戶端和服務器通訊時,發送數據的格式。

    * 特色:一、基於TCP/IP的高級協議。

        二、默認端口號:80

        三、基於請求/響應模型的: 一次請求對應一次響應。

        四、無狀態的 :每次請求之間相互獨立,不能交互數據。

  二、請求消息數據格式。

    一、請求行:請求方式  請求url  請求協議/版本 : GET /login.html HTTP/1.1

    二、請求頭:瀏覽器告訴服務器一些信息。 請求名稱:請求值

      常見的請求頭:一、User-Agent:告訴服務器瀏覽器的版本信息。

             二、Referer:告訴服務器,當前請求從哪裏來。做用:防盜鏈、統計。

    三、請求空行:空行,用來分隔。

    四、請求體(正文):封裝POST請求消息的請求參數的。

相關文章
相關標籤/搜索