日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷(xiāo)解決方案
Servlet學(xué)習(xí)的常見(jiàn)問(wèn)題與解答

Servlet學(xué)習(xí)的開(kāi)始我們先要明白什么是Servlet,它是運(yùn)行在服務(wù)器端的程序,它是被容器調(diào)用的(如tomcat),用于處理及響應(yīng)客戶端的請(qǐng)求.

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

J2EE定義的是一系列的標(biāo)準(zhǔn),沒(méi)有提供實(shí)現(xiàn),沒(méi)有提供jar包。Tomcat中的servlet-api.jar實(shí)現(xiàn)了J2EE的API標(biāo)準(zhǔn)。

類(lèi)結(jié)構(gòu)圖:

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

Servlet學(xué)習(xí)中碰到HttpServlet也是抽象類(lèi),它沒(méi)有抽象方法,但它實(shí)現(xiàn)了service()方法,service()方法中又調(diào)用了doGet()和doPost()方法。doGet()和doPost()方法在HttpServlet類(lèi)中都有默認(rèn)的實(shí)現(xiàn)。而我們寫(xiě)的servlet程序一般都繼承HttpServlet,重寫(xiě)doGet和doPost方法。Service()方法被調(diào)用時(shí)會(huì)自動(dòng)調(diào)用我們重寫(xiě)的doGet或doPost方法,因此我們的Servlet程序主要任務(wù)就是重寫(xiě)這兩個(gè)方法。

問(wèn)題:我們Servlet學(xué)習(xí)時(shí)候,當(dāng)Servlet程序中重寫(xiě)了doGet()和doPost()方法,service()方法是怎么調(diào)用到我們寫(xiě)的doGet()和doPost()方法的?

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

問(wèn)題:Servlet學(xué)習(xí)時(shí)service()方法什么時(shí)候被調(diào)用?

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

Servlet學(xué)習(xí)過(guò)程中要注意看看Servlet的生命周期:

1、客戶端發(fā)送一個(gè)請(qǐng)求(也就是一個(gè)servlet的訪問(wèn)URL)

2、服務(wù)器端解析請(qǐng)求(通過(guò)web.xml里面的servlet配置解析)

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

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

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

6、返回響應(yīng)消息給servlet容器

7、返回響應(yīng)消息給客戶端

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

9、銷(xiāo)毀并標(biāo)記該實(shí)例以供作為垃圾收集

  
protected void doGet(HttpServletRequest req, HttpServletResponse resp)

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

HttpServletResponse resp從服務(wù)器端返回給客戶端的對(duì)象,也就是我們往resp中寫(xiě)消息就可以放松給客戶端了。
 
問(wèn)題:Servlet學(xué)習(xí)中Servlet容器(如tomcat)怎樣調(diào)用我們寫(xiě)的相應(yīng)Servlet?

解答:對(duì)了,在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﹥  

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

【編輯推薦】

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

新聞標(biāo)題:Servlet學(xué)習(xí)的常見(jiàn)問(wèn)題與解答
文章路徑:http://m.5511xx.com/article/dhgoehc.html