JavaWeb學習筆記之servlet

來源:互聯網
上載者:User

1.Servlet的概念:
Servlet 可以運行在伺服器上的一段小程式,可以利用程式向瀏覽器輸出資訊,他是用來開發動態web資源的
伺服器想要認識這段小程式,就提出了Servlet這樣的介面,我們像要編寫Servlet程式的時候就要實現該介面。
2.Servlet開發過程:
2.1寫一個java類去實現Servlet介面(或者繼承Servlet的實作類別:GenericServlet/HttpServlet)
2.2將寫好的Servlet交給伺服器管理:
(1)將Servlet拷到對應的WEB-INF/classes目錄下
(2)web.xml檔案中配置Servlet的對外訪問路徑
<servlet>
        <servlet-name>FirstServlet</servlet-name>
        <servlet-class>cn.itheima.FirstServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>FirstServlet</servlet-name>
        <url-pattern>/FirstServlet</url-pattern>
    </servlet-mapping>
    
3.Servlet的調用過程和生命週期
3.1調用過程
(1)瀏覽器發送請求
(2)伺服器從請求中解析出想要訪問的主機名稱、web應用、web資源
  (3)伺服器發現所要訪問的資源在web.xml檔案下有配置,於是找到對應的Servlet類
  (4)伺服器查看記憶體中是否已經有該Servlet類的執行個體,如果有就用,如果沒有就建立
  (5)伺服器將請求封裝成Request對象(代表請求),並準備一個空的Response對象(帶表響應)
  (6)調用該Servlet的service方法,並傳入建立出來的Request和Response
  (7)service方法執行,有可能會有像瀏覽器發送的資料,儲存到Response中
  (8)service方法返回後,伺服器查看Response中是否有需要發送給瀏覽器的資料
  (9)將獲得的資料群組織稱HTTP響應發給瀏覽器
  (10)瀏覽器解析響應,顯示出來
 
  3.2生命週期:一件事物什麼時候生,什麼時候死,以及在他存活期間必然會觸發的時間,統稱為該事物的生命週期。
  Servlet聲明周期:在第一次被訪問的時候建立,建立的時候調用init()方法,他會一直駐留在記憶體中,處理後續的請求。對於每一次請求都會導致service方法被執行。直到伺服器關閉的時候記憶體清空,servlet死亡,在servlet銷毀之前會調用destory()方法

4.如何利用Myeclipse開發Servlet
4.1如何在Myeclipse下配置一個tomcat伺服器--》window/preference/servers/tomcat/tomcatX
注意:(1)配置的時候要把該伺服器設為Enable才能使用
(2)最好指定一下該tomcat使用的jdk
4.2如何在Myeclipse下建立一個web工程
file-》new web projcet--》
*projcetname為工程名 ,context root url配置的是開發的web應用的虛擬路徑名,通常這兩個是一樣的,但是可以改成不一樣的。
*如果一個web工程已經建立好以後想改變他的對應的虛擬路徑,右鍵工程-》properties--》Myeclipse--》web--》web Contextroot修改
4.3如何將開發好的web工程發布到指定的伺服器上
點部署按鈕,選一下要發布的工程和,要發布到的的伺服器,點deploy就可以了
*myeclipse會將WebRoot目錄下的所有內容拷到tomcat的webapp下,並指定檔案夾名為虛擬路徑。
4.4如何用Myeclipse開發一個Servlet
建立類的時候不要選建立class而是選擇建立Servlet。這種方式建立會幫你配置web.xml檔案。

5.Servlet介面及他的實作類別
5.1Servlet介面
void destroy() ;servlet銷毀的時候調用的方法
void init(ServletConfig config) servlet建立的時候調用的方法
void service(ServletRequest req, ServletResponse res) 處理請求的方法,其中的參數requset代表HTTP請求,response代表一個HTTP響應
5.2預設實作類別GenericServlet
對Servlet介面的一個預設實現,對Servlet介面定義的方法進行了簡單的實現,我們可以直接繼承GenericServlet從而只關注我們想要關注的service方法
5.3HttpServlet,針對HTTP協議進行最佳化過的Servlet
其中實現的service方法,會判斷請求的方式,如果是get方式就掉用doGet()方法,如果是post方式就調用doPost()方法。我們可以繼承HttpServlet,直接覆蓋其中的doGet和doPost分別處理兩種請求方式。

 
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.