日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Servlet學習的常見問題與解答

Servlet學習的開始我們先要明白什么是Servlet,它是運行在服務器端的程序,它是被容器調(diào)用的(如tomcat),用于處理及響應客戶端的請求.

專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設、外貿(mào)網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)臥龍免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了上千多家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。

J2EE定義的是一系列的標準,沒有提供實現(xiàn),沒有提供jar包。Tomcat中的servlet-api.jar實現(xiàn)了J2EE的API標準。

類結構圖:

GenericServlet是抽象類,其中定義了抽象方法service()。

Servlet學習中碰到HttpServlet也是抽象類,它沒有抽象方法,但它實現(xiàn)了service()方法,service()方法中又調(diào)用了doGet()和doPost()方法。doGet()和doPost()方法在HttpServlet類中都有默認的實現(xiàn)。而我們寫的servlet程序一般都繼承HttpServlet,重寫doGet和doPost方法。Service()方法被調(diào)用時會自動調(diào)用我們重寫的doGet或doPost方法,因此我們的Servlet程序主要任務就是重寫這兩個方法。

問題:我們Servlet學習時候,當Servlet程序中重寫了doGet()和doPost()方法,service()方法是怎么調(diào)用到我們寫的doGet()和doPost()方法的?

解答:這里面用到了多態(tài),重寫和繼承都有了,那么父類引用指向子類對象是怎么體現(xiàn)的呢?service方法是被容器中我們寫的Servlet類的實例調(diào)用的,而父類HttpServlet中又調(diào)用了this.doGet()和this.doPost()方法,這時就有了父類引用指向子類對象了:this(HttpServlet)-﹥我們的Servlet實例。附上一個圖作為說明:

問題:Servlet學習時service()方法什么時候被調(diào)用?

解答:當客戶端發(fā)出請求的時候,容器調(diào)用service 方法并傳遞一個請求和響應對象。Servlet首先判斷該請求是GET 操作還是POST 操作。然后它調(diào)用下面的一個方法:doGet 或 doPost。如果請求是GET就調(diào)用doGet方法,如果請求是POST就調(diào)用doPost方法。

Servlet學習過程中要注意看看Servlet的生命周期:

1、客戶端發(fā)送一個請求(也就是一個servlet的訪問URL)

2、服務器端解析請求(通過web.xml里面的servlet配置解析)

3、servlet容器創(chuàng)建servlet的一個實例

4、容器調(diào)用該實例的init()方法

5、如果容器對該servlet有請求,則調(diào)用此實例的service()方法

6、返回響應消息給servlet容器

7、返回響應消息給客戶端

8、容器在銷毀本實例前調(diào)用它的destroy()方法

9、銷毀并標記該實例以供作為垃圾收集

  
protected void doGet(HttpServletRequest req, HttpServletResponse resp)

HttpServletRequest req封裝了客戶端到服務器端的請求,在服務器端(即我們編寫的Servlet)中可以通過req獲取這些請求信息。

HttpServletResponse resp從服務器端返回給客戶端的對象,也就是我們往resp中寫消息就可以放松給客戶端了。
 
問題:Servlet學習中Servlet容器(如tomcat)怎樣調(diào)用我們寫的相應Servlet?

解答:對了,在web.xml里面配置。如:

 
 
 
 
  1. ﹤servlet﹥   
  2.     ﹤servlet-name﹥hw﹤/servlet-name﹥   
  3.     ﹤servlet-class﹥com.dvnchina.test.HelloWorldServlet﹤/servlet-class﹥   
  4.     ﹤/servlet﹥   
  5.     ﹤servlet-mapping﹥   
  6.     ﹤servlet-name﹥hw﹤/servlet-name﹥   
  7.     ﹤url-pattern﹥/helloservlet﹤/url-pattern﹥   
  8. ﹤/servlet-mapping﹥  

這時客戶端通過http://127.0.0.1:8080/ServletTest/helloservlet發(fā)送請求,就可以調(diào)用hw這個servlet,當hw被調(diào)用后就容器就自動調(diào)用hw的service()方法,而hw實例從HttpServlet繼承的service()方法中又調(diào)用了doGet()和doPost()方法,此時根據(jù)多態(tài)就調(diào)用了我們servlet中寫的doGet()和doPost()方法。
 
Servlet學習時我們要明白通常一個Servlet在Servlet容器中只有一個實例。那么通過上面的對于Servlet學習中的各種問題的解答,希望你對Servlet學習充滿信心。
 

【編輯推薦】

  1. 在JSP中獲取數(shù)據(jù)庫連接
  2. 簡化JSP表達式中代碼
  3. Servlet的運行環(huán)境配置淺談
  4. Servlet頁面跳轉(zhuǎn)實現(xiàn)方法的區(qū)別
  5. Servlet多線程的相關問題淺析

網(wǎng)站欄目:Servlet學習的常見問題與解答
轉(zhuǎn)載來于:http://www.dlmjj.cn/article/dhgoehc.html