成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Servlet學習的常見問題與解答

開發 后端
Servlet學習中會遇到一些常見問題的,那么針對這些在Servlet學習中的常見問題本文給你一個答案。

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

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

類結構圖:

Servlet學習之Servlet類圖

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

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

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

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

Servlet學習之Servlet實例圖 


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

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

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

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

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

3、servlet容器創建servlet的一個實例

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

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

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

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

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

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

  
protected void doGet(HttpServletRequest req, HttpServletResponse resp)

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

HttpServletResponse resp從服務器端返回給客戶端的對象,也就是我們往resp中寫消息就可以放松給客戶端了。
 
問題:Servlet學習中Servlet容器(如tomcat)怎樣調用我們寫的相應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發送請求,就可以調用hw這個servlet,當hw被調用后就容器就自動調用hw的service()方法,而hw實例從HttpServlet繼承的service()方法中又調用了doGet()和doPost()方法,此時根據多態就調用了我們servlet中寫的doGet()和doPost()方法。
 
Servlet學習時我們要明白通常一個Servlet在Servlet容器中只有一個實例。那么通過上面的對于Servlet學習中的各種問題的解答,希望你對Servlet學習充滿信心。
 

【編輯推薦】

  1. 在JSP中獲取數據庫連接
  2. 簡化JSP表達式中代碼
  3. Servlet的運行環境配置淺談
  4. Servlet頁面跳轉實現方法的區別
  5. Servlet多線程的相關問題淺析
責任編輯:仲衡 來源: 51CTO技術博客
相關推薦

2010-04-23 09:58:30

Oracle管理

2010-07-21 09:16:47

Perl常見問題

2010-03-25 09:08:43

CentOS配置

2010-04-27 18:24:56

Oracle常見問題

2010-04-28 11:09:47

Oracle常見問題

2009-11-09 10:42:53

ibmdwRational

2009-07-29 10:03:24

思科網絡管理Cisco

2009-10-13 14:56:00

CCNA培訓

2009-04-13 11:42:29

IBMdWRational

2009-06-14 22:28:14

ibmdwWebSphere

2011-07-13 17:57:15

SQLite

2011-08-09 15:10:00

SQLite

2010-09-13 14:43:47

無線技術常見問題

2023-10-10 08:01:13

2013-05-23 09:49:49

Chrome for google

2012-12-06 10:24:21

Saliency MaMATLAB

2011-07-21 11:19:51

JAVA

2010-12-27 14:50:16

Windows 部署服

2010-05-12 17:04:20

BlackBerry開

2021-11-14 15:46:45

Windows 11Windows微軟
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久青草av | 黄网站免费在线看 | 国产69久久精品成人看动漫 | 欧美中文字幕一区二区三区亚洲 | 日韩欧美在线观看视频 | 亚洲欧美日韩电影 | 亚洲精品一区二区三区免 | 国产精品久久久久久久久久久久 | www.国产.com| 91久久精品日日躁夜夜躁国产 | 成人深夜福利网站 | 日韩av一区二区在线观看 | 日本在线视频不卡 | 国产蜜臀97一区二区三区 | 狠狠艹 | 美女人人操| 亚洲性视频 | 久草在线在线精品观看 | 成人在线免费看 | 青青草国产在线观看 | 亚洲电影成人 | 一区二区精品视频 | 欧美精品第一页 | 成人免费在线视频 | 国产日韩精品一区二区三区 | 日韩理论电影在线观看 | 精一区二区 | 日韩av手机在线观看 | 精品欧美乱码久久久久久 | 精品欧美激情精品一区 | 在线免费观看毛片 | 在线观看av网站 | 欧美在线视频一区 | 综合精品久久久 | 国精日本亚洲欧州国产中文久久 | 久久精品一区二区三区四区 | 国产午夜精品理论片a大结局 | 国产精品久久久久久久久免费桃花 | 日本成人中文字幕 | 国产一区二区三区 | 亚洲精品电影在线观看 |