亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Servlet 容器的工作原理 ( 一 )

2019-11-18 12:32:25
字體:
來源:轉載
供稿:網友

  本文介紹一個簡單 servlet 容器的基本原理?,F有兩個 servlet 容器,第一個很簡單,第二個則是根據第一個寫出。為了使第一個容器盡量簡單,所以沒有做得很完整。復雜一些的 servlet 容器 (包括 TOMCAT 4 和 5) 在 TOMCAT 運行內幕的其他章節有介紹。
  
  兩個 servlet 容器都處理簡單的 servlet 及 staticResource 。您可以使用 webroot/ 目錄下的 PRimitiveServlet 來測試它。復雜一些的 servlet會超出這些容器的容量,您可以從 TOMCAT 運行內幕 一書學習創建復雜的 servlet 容器。
  
  兩個應用程序的類都封裝在ex02.pyrmont 包下。在理解應用程序如何運作之前,您必須熟悉 javax.servlet.Servlet 接口。首先就來介紹這個接口。隨后,就介紹 servlet 容器服務servlet 的具體內容。
  
  javax.servlet.Servlet 接口
  servlet 編程,需要引用以下兩個類和接口:javax.servlet 和 javax.servlet.http,在這些類和接口中,javax.servlet.Servlet接口尤為重要。所有的 servlet 必須實現這個接口或繼續已實現這個接口的類。
  Servlet 接口有五個方法,如下:
  
  • public void init(ServletConfig config) throws ServletException
  • public void service(ServletRequest request, ServletResponse response) throws ServletException, java.io.IOException
  • public void destroy()
  • public ServletConfig getServletConfig()
  • public java.lang.String getServletInfo()
  
  init、service和 destroy 方法是 Servlet 生命周期的方法。當 Servlet 類實例化后,容器加載 init,以通知 servlet 它已進入服務行列。init 方法必須被加載,Servelt 才能接收和請求。假如要載入數據庫驅動程序、初始化一些值等等,程序員可以重寫這個方法。在其他情況下,這個方法一般為空。
  
  service 方法由 Servlet 容器調用,以答應 Servlet 響應一個請求。Servlet 容器傳遞 javax.servlet.ServletRequest 對象和 javax.servlet.ServletResponse 對象。ServletRequest 對象包含客戶端 HTTP 請求信息,ServletResponse 則封裝servlet 響應。這兩個對象,您可以寫一些需要 servlet 怎樣服務和客戶怎樣請求的代碼。
  
  從 service 中刪除 Servlet 實例之前,容器調用 destroy 方法。在 servlet 容器關閉或servlet 容器需要更多的內存時,就調用它。這個方法只有在servlet 的service 方法內的所有線程都退出的時候,或在超時的時候才會被調用。在 servlet 容器調用 destroy方法之后,它將不再調用 servlet的 service方法。destroy 方法給了 servlet 機會,來清除所有候住的資源(比如:內存,文件處理和線程),以確保在內存中所有的持續狀態和 servlet的當前狀態是同步的。Listing 2.1 包含了PrimitiveServlet 的代碼,此servlet非常簡單,您 可以用它來測試本文中的 servlet 容器應用程序。
  
  PrimitiveServlet 類實現了javax.servlet.Servlet 并提供了五個servlet方法的接口 。它做的事情也很簡單:每次調用 init,service 或 destroy方法的時候,servlet就向控制口寫入方法名。service 方法也從ServletResponsec對象中獲得java.io.PrintWriter 對象,并發送字符串到瀏覽器。
  
  Listing 2.1.PrimitiveServlet.java
  import javax.servlet.*;
  import java.io.IOException;
  import java.io.PrintWriter;
  
  public class PrimitiveServlet implements Servlet {
    public void init(ServletConfig config) throws ServletException {
      System.out.println("init");
    }
  
    public void service(ServletRequest request, ServletResponse response) throws ServletException, IOException {
      System.out.println("from service");
      PrintWriter out = response.getWriter();
      out.println("Hello.Roses are red.");
      out.print("Violets are blue.");
    }
  
    public void destroy() {
      System.out.println("destroy");
    }
  
    public String getServletInfo() {
      return null;
    }
  
    public ServletConfig getServletConfig() {
      return null;
    }
  }
  
  application 1
  現在,我們從 servlet容器的角度來看看 servlet 編程。一個功能健全的 servlet容器對于每個 servlet 的 HTTP請求會完成以下事情:
  
  • 當 servlet 第一次被調用的時候,加載了 servlet類并調用它的init方法(僅調用一次)
  • 響應每次請求的時候 ,構建一個javax.servlet.ServletRequest 和 javax.servlet.ServletResponse實例。
  • 激活 servlet 的 service 方法,傳遞 ServletRequest 和 ServletResponse 對象。
  • 當 servlet 類關閉的時候,調用 servlet 的destroy 方法,并卸載 servlet 類。
  
  發生在 servlet 容器內部的事就復雜多了。只是這個簡單的 servlet 容器的功能不很健全,所以,這它只能運行非常簡單的servelt ,并不能調用 servlet 的 init 和destroy 方法。然而,它也執行了以下動作:
  
  • 等待 HTTP 請求。
  • 構建 ServletRequest 和 ServletResponse 對象 
  • 假如請求的是一個staticResource,就會激活StaticResourceProcessor實例的 process方法,傳遞ServletRequest 和 ServletResponse 對象。
  • 假如請求的是一個servlet ,載入該類,并激活它的service 方法,傳遞ServletRequest 和ServletResponse 對象。注重:在這個servlet 容器,每當 servlet被請求的時候該類就被載入。
  
  在第一個應用程序中,servlet容器由六個類組成 。
  
  • HttpServer1
  • Request
  • Response
  • StaticResourceProcessor
  • ServletProcessor1
  • Constants
  
  正如前文中的應用程序一樣,這個程序的進入口(靜態 main 方法)是HttpServer 類。這個方法創建了HttpServer實例,并調用它的await方法。這個方法等待 HTTP 請示,然后創建一個 request 對象和 response對象,根據請求是否是staticResource還是 servlet 來分派它們到 StaticResourceProcessor實例或ServletProcessor實例。
  
  Constants 類包含 static find WEB_ROOT,它是從其他類引用的。 WEB_ROOT 指明 PrimitiveServlet 位置 和容器服務的staticResource。
  HttpServer1 實例等待 HTTP 請求,直到它收到一個 shutdown 命令。發布 shutdown命令和前文是一樣的。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本国产高清不卡| 国产精品成人国产乱一区| 九九精品在线播放| 日韩成人性视频| 国产精品99蜜臀久久不卡二区| 亚洲成人久久一区| xxxxxxxxx欧美| 欧美一区二区三区免费视| 国产亚洲精品va在线观看| 亚洲一级一级97网| 亚洲国产成人精品一区二区| 国产亚洲一区精品| 中文字幕日韩电影| 成人xvideos免费视频| 国产精品黄色影片导航在线观看| 欧美精品18videos性欧| 国产在线98福利播放视频| 欧美性猛交xxxx富婆弯腰| 欧美国产日韩免费| 久久久免费av| 亚洲欧美激情在线视频| 国内偷自视频区视频综合| 日韩av电影在线播放| 4k岛国日韩精品**专区| 精品国产91久久久久久| 日韩在线欧美在线国产在线| 黑人巨大精品欧美一区二区三区| 欧美极品少妇与黑人| 高清一区二区三区日本久| 久久理论片午夜琪琪电影网| 91伊人影院在线播放| 日韩精品久久久久久久玫瑰园| 国产精品福利小视频| 岛国av一区二区在线在线观看| 国产精品日韩专区| 久久精品国产一区二区电影| 成人国产亚洲精品a区天堂华泰| 26uuu日韩精品一区二区| 欧美一级bbbbb性bbbb喷潮片| 久久久久久久久久久网站| 国产这里只有精品| 亚洲色图色老头| 免费99精品国产自在在线| 三级精品视频久久久久| 另类少妇人与禽zozz0性伦| 久久亚洲精品小早川怜子66| 国产精品成人va在线观看| 欧美午夜www高清视频| 在线视频欧美日韩精品| 日韩电影视频免费| 国产精品老牛影院在线观看| 欧美高清不卡在线| 亚洲视频网站在线观看| 欧美日韩一区二区三区| 欧美黄色成人网| 亚洲第一区第一页| 亚洲成年人影院在线| 亚洲日韩中文字幕| 久久久久在线观看| 亚洲91av视频| 黄色成人av在线| 国产精品视频免费观看www| 国产精品永久免费在线| 91理论片午午论夜理片久久| 国产精品久久久久久久久久东京| 久久久久久久久亚洲| 国产精品入口日韩视频大尺度| 精品久久久久久久中文字幕| 日韩免费看的电影电视剧大全| 裸体女人亚洲精品一区| 在线激情影院一区| 91精品国产91久久久久久最新| 91精品久久久久久久久久入口| 欧美精品videofree1080p| 亚洲韩国欧洲国产日产av| 欧美黑人巨大精品一区二区| 久久中国妇女中文字幕| 成人午夜在线观看| 不卡在线观看电视剧完整版| 亚洲第一精品电影| 久久男人av资源网站| 欧美xxxx综合视频| 一区二区三区高清国产| 91久久精品美女| 亚洲精品98久久久久久中文字幕| 亚洲一区二区三区毛片| 日韩av片免费在线观看| 国产精品综合网站| 91精品国产综合久久香蕉的用户体验| 亚洲一区免费网站| 欧美大片大片在线播放| 欧美激情国内偷拍| 亚洲色图25p| 2018国产精品视频| 久久琪琪电影院| 国产精品福利片| 国产精品v片在线观看不卡| 欧美极品少妇xxxxⅹ裸体艺术| 97视频在线免费观看| 最近2019中文免费高清视频观看www99| 国产91在线播放九色快色| 欧美成人中文字幕在线| 国产亚洲一区二区精品| 久久亚洲影音av资源网| 日韩精品在线影院| 欧美性猛交xxxx乱大交3| 亚洲在线www| 欧美视频第一页| 午夜精品久久久久久99热软件| 久久天天躁狠狠躁夜夜躁| 国产精品入口夜色视频大尺度| 国产精品久久久久久久久免费看| 91精品美女在线| 日本精品一区二区三区在线播放视频| 欧美成人午夜免费视在线看片| 欧美激情视频一区二区三区不卡| 亚洲白拍色综合图区| 久久久久久久av| 一道本无吗dⅴd在线播放一区| 国产欧美精品日韩精品| 欧美电影免费在线观看| 成人精品视频99在线观看免费| 欧美色播在线播放| www.欧美免费| 国产一区二区三区在线播放免费观看| 91欧美视频网站| 精品福利在线观看| 亚洲福利在线播放| 狠狠久久五月精品中文字幕| 精品日本高清在线播放| 一区二区三区无码高清视频| 国产精品久久久亚洲| 国产精品精品久久久久久| 欧美裸体xxxx极品少妇| 日本国产一区二区三区| 青青草原一区二区| 亚洲女同性videos| 亚洲性视频网址| 欧美wwwwww| 91在线免费看网站| 狠狠综合久久av一区二区小说| 91精品国产精品| 国产精品第三页| 成人免费在线网址| 日本久久久a级免费| 欧美视频免费在线观看| 一区二区三区美女xx视频| 亚洲性线免费观看视频成熟| 色偷偷偷综合中文字幕;dd| 亚洲热线99精品视频| 日韩在线观看免费全| 中文欧美日本在线资源| 日韩a**中文字幕| 久久综合亚洲社区| 久久手机免费视频| 亚洲少妇中文在线| 久久精品99久久久久久久久| 另类色图亚洲色图| 韩国美女主播一区| 日韩av高清不卡| 日韩激情片免费| 亚洲娇小xxxx欧美娇小| 狠狠躁夜夜躁久久躁别揉| 欧美疯狂性受xxxxx另类|