什麼是servlet?

1、何爲servlet?

處理請求和發送響應的過程是由一種叫作Servlet的程序來完成的,而且Servlet是爲了解決實現動態頁面而衍生的東西。理解這個的前提是瞭解一些http協議的東西,而且知道B/S模式(瀏覽器/服務器)。
B/S:瀏覽器/服務器:瀏覽器經過網址來訪問服務器,好比訪問百度,在瀏覽器中輸入www.baidu.com,這個時候瀏覽器就會顯示百度的首頁,那麼這個具體的過程,步驟是怎樣的呢?這個就瞭解一下http請求和響應了。
web

2、tomcat和servlet的關係

Tomcat 是Web應用服務器,是一個Servlet/JSP容器. Tomcat 做爲Servlet容器,負責處理客戶請求,把請求傳送給Servlet,並將Servlet的響應傳送回給客戶.而Servlet是一種運行在支持Java語言的服務器上的組件. Servlet最多見的用途是擴展Java Web服務器功能,提供很是安全的,可移植的,易於使用的CGI替代品。
從http協議中的請求和響應能夠得知,瀏覽器發出的請求是一個請求文本,而瀏覽器接收到的也應該是一個響應文本。可是在上面這個圖中,並不知道是如何轉變的,只知道瀏覽器發送過來的請求也就是request,咱們響應回去的就用response。忽略了其中的細節,如今就來探究一下。

①Tomcat將http請求文本接收並解析,而後封裝成HttpServletRequest類型的request對象,全部的HTTP頭數據讀能夠經過request對象調用對應的方法查詢到。
②Tomcat同時會要響應的信息封裝爲HttpServletResponse類型的response對象,經過設置response屬性就能夠控制要輸出到瀏覽器的內容,而後將response交給tomcat,tomcat就會將其變成響應文本的格式發送給瀏覽器。
Java Servlet API 是Servlet容器(tomcat)和servlet之間的接口,它定義了serlvet的各類方法,還定義了Servlet容器傳送給Servlet的對象類,其中最重要的就是ServletRequest和ServletResponse。因此說咱們在編寫servlet時,須要實現Servlet接口,按照其規範進行操做。瀏覽器

3、編寫Servlet

在前面,咱們已經知道了servlet是什麼,爲何須要servlet?(爲了實現動態網頁,而不是顯示靜態網頁,具體狀況能夠百度查查),tomcat和servlet的關係?等問題。如今來手動編寫一個Servlet。tomcat

3.1 手動編寫servlet

  1. 建立一個MyServlet繼承HttpServlet,重寫doGet和doPost方法,也就是看請求的方式是get仍是post,而後用不一樣的處理方式來處理請求
  2. 在web.xml中配置MyServlet,爲何須要配置?讓瀏覽器發出的請求知道到達哪一個servlet,也就是讓tomcat將封裝好的request找到對應的servlet讓其使用。

    按照步驟,首先瀏覽器經過http://localhost:8080/test01/MyServlet來找到web.xml中的url-pattern,這就是第一步,匹配到了url-pattern後,就會找到第二步servlet的名字MyServlet,知道了名字,就能夠經過servlet-name找到第三步,到了第三步,也就可以知道servlet的位置了。而後到其中找到對應的處理方式進行處理。
  3. 實驗,驗證上面配置成功。
    安全

    3.2 利用嚮導新建MyServlet

    這個就相對簡單了,web.xml不用咱們手動配置,工具直接幫咱們自動配置了
  4. 右擊項目,在new選項中有直接新建servlet的選項
  5. 配置MyServlet類中的信息
  6. 配置web.xml中的servlet信息
  7. 查看MyServle01類中的代碼和web.xml,其中的配置跟手動的配置是同樣的,只是用圖形化界面,讓咱們更方便的建立servlet而產生的。服務器

    4、詳解servlet

  8. servlet的生命週期是什麼?
    服務器啓動時(web.xml中配置load-on-startup=1,默認爲0)或者第一次請求該servlet時,就會初始化一個Servlet對象,也就是會執行初始化方法init(ServletConfig conf),該servlet對象去處理全部客戶端請求,在service(ServletRequest req,ServletResponse res)方法中執行
    最後服務器關閉時,纔會銷燬這個servlet對象,執行destroy()方法。
    工具

(未完待續...)post

相關文章
相關標籤/搜索