Servlet的學習日誌

Servlet 是在服務器上運行的小程序。它的生命週期是:web

  1. 客戶端請求該 Servlet;小程序

  2. 加載 Servlet 類到內存;服務器

  3. 實例化並調用init()方法初始化該 Servlet;jsp

  4. service()(根據請求方法不一樣調用doGet() 或者 doPost(),此外還有doGet()、doPut()、doTrace()、doDelete()、doOptions());post

  5. destroy()。url

建立Servlet對象的時機:spa

  1. Servlet容器啓動時:讀取web.xml配置文件中的信息,構造指定的Servlet對象,建立ServletConfig對象,同時將ServletConfig對象做爲參數來調用Servlet對象的init方法。code

  2. 在Servlet容器啓動後:客戶首次向Servlet發出請求,Servlet容器會判斷內存中是否存在指定的Servlet對象,若是沒有則建立它,而後根據客戶的請求建立HttpRequest、HttpResponse對象,從而調用Servlet 對象的service方法。orm

  3. Servlet Servlet容器在啓動時自動建立Servlet,這是由在web.xml文件中爲Servlet設置的<load-on-startup>屬性決定的。從中咱們也能看到同一個類型的Servlet對象在Servlet容器中以單例的形式存在。
    xml

    <servlet>
           <servlet-name>Init</servlet-name>
           <servlet-class>org.xl.servlet.InitServlet</servlet-class>
           <load-on-startup>1</load-on-startup></servlet>

servlet運行於servlet容器中。servlet容器能夠接受客戶端的請求並做出相應。一般咱們用到的就是http的請求和響應了。容器經過url來判斷請求應該由哪一個servlet來處理。這是就會調用這個servlet的service方法。平時咱們寫servlet時也是覆蓋這個方法。
HttpServlet實際上調用了doGet或者doPost方法,因此繼承自這個類的時候只要覆蓋doGet和doPost方法。

http的get方法是將你要傳輸的數據放在url後的,也就是咱們經常使用的test.jsp?name=aaa&age=10這種格式,數據都是能夠經過url就能夠看到了,你在網頁中的屬性就能看到這個url,這是get方法,因爲受到http協議的限制,這種方式傳輸數據有大小限制,1024,爲了可以傳輸更多的數據,你能夠採用post,post是將數據放到了http的Content中,這就不受http協議的影響了,並且傳輸的數據不能直接被看到(登錄的用戶名和密碼可不能用get哦)。大量的數據或是文件上在數據,都只能用post來傳並且get方法提交的頁面可以經過history.back()回退,但post的數據就不能,回退時告訴已通過期,應爲你已經post出去了,就不能取回來了。 
簡單的說,get是經過http header來傳輸數據,有數量限制,而post則是經過http body來傳輸數據,沒有數量限制.
servlet就是專門用來處理http請求的,因此對應不一樣數據傳輸方式的兩種方法就是doGet()和doPost().

相關文章
相關標籤/搜索