freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于java的web服務(wù)器(編輯修改稿)

2024-10-08 02:49 本頁面
 

【文章內(nèi)容簡介】 ngine 來處理,從 Engine 處獲得響應(yīng)結(jié)果, 并返回給客戶端; Engine 代表一個 Service 所屬的請求處理機,它接受所有 Connector 傳遞過來的客戶端請求,將處理結(jié)果返回給 Connector,由Connector 將最終響應(yīng)返回給客戶端, Engine 必須配置在 Service 組件下; Engine下可以配置多個 Host,每個 Host 都有一個域名,當 Engine 獲得一個請求時,它把該請求匹配到某個 Host 上,把請求交給該 Host 來處理; Host 代表一個虛擬主機,每個虛擬主機和某個網(wǎng)絡(luò)域名相匹配。每個虛擬主機下都可以部署一個或者多個 Web 應(yīng)用程序,每個 Web 應(yīng)用程序?qū)?yīng)于一個 Context,有一個 Context 路徑;一個 Context 對應(yīng)于一個 Web 應(yīng)用程序,一個 Web 應(yīng)用程序由一個或者多個 Servlet 組成。 Tomcat 整個系統(tǒng)的功能都是通過組件實現(xiàn)的,組件之間的通訊構(gòu)成了系統(tǒng)的運行控制機制,具有很高的復(fù)用性和可擴展性。 組件技術(shù) 組件技術(shù)越來越廣泛地應(yīng)用于軟件系統(tǒng)設(shè)計中,它是為提高軟件的可重用性而提出的,其思想是將軟件按一定的標準封裝成組件,對外提供一組訪問接口,指明組件與容器或與其它組件交互的機制。面向組件的技術(shù)( ComponentOriented, CO)是比面向?qū)ο蟮募夹g(shù)更高一層的抽象,它融合了面向?qū)ο蟮膬?yōu)點,加入了安全性和可擴展的模塊設(shè)計,可以更好的映射問題域空間。采用面向組件的設(shè)計會帶來很多好處,可以提高復(fù)用性、降低耦合度和通過組裝構(gòu)成系統(tǒng)等。 應(yīng)用服務(wù)器系統(tǒng)吸取了組件技術(shù)所提供的優(yōu)點,采用開放的層次組件式結(jié)構(gòu),系統(tǒng)的各種資源均以服務(wù)的形式提供,服務(wù)按功能劃分層次,形成不同組件,服務(wù)與系統(tǒng)核心之間定義公共接口標準,所有服務(wù)采用標準接口實現(xiàn)與底層通訊。采用這種層次式組件結(jié)構(gòu),組件通過核心層定義的公共標準接口實現(xiàn)與底層通訊,系統(tǒng)功能作為組 件式服務(wù)部署和管理,整個系統(tǒng)可以在不影響現(xiàn)有應(yīng)用的基礎(chǔ)上,實現(xiàn)對組件的修改和擴展。 JAVA 是一個基于組件的多層網(wǎng)絡(luò)應(yīng)用體系結(jié)構(gòu),它定義了一套標準化的組件,并為這些組件提供了完整的服務(wù),這意味著應(yīng)用程序的不同部分可以運行在不同的設(shè)備和系統(tǒng)上。其核心是容器,容器提供了組件服務(wù)的運行環(huán)境和對企業(yè)信息系統(tǒng)的標準訪問,還提供了配置和部署應(yīng)用程序行為的機制。 DM WAS 體系結(jié)構(gòu) 服務(wù)器總體設(shè)計框架 JAVA 平臺從功能上大體可以劃分為兩個大的組成部分: Web 服務(wù)器和 EJB服務(wù)器。 Web 服務(wù)器主要是為 JSP 和 Servlet 提供運行平臺,實現(xiàn)企業(yè)應(yīng)用程序的 Web 表示層; EJB 服務(wù)器主要是提供 EJB 組件的運行環(huán)境,為業(yè)務(wù)邏輯事務(wù)層服務(wù)。各個廠商一般會根據(jù)需要有選擇地實現(xiàn)全部或部分 JAVA 規(guī)范,如OpenEJB 是一個實現(xiàn)了 EJB 規(guī)范的純 EJB 容器, Tomcat 是一個主要提供 Servlet和 JSP 服務(wù)的 Web 容器,當然它也實現(xiàn)了 JNDI、連接池、事務(wù)處理等相關(guān)服務(wù)。 在總結(jié)國內(nèi)外 Web 應(yīng)用服務(wù)器研究的基礎(chǔ)之上,結(jié)合具體的需求分析,我們提出如下系統(tǒng)總體框架,如圖 所示。 圖 DM WAS 總體框架圖 由圖中可以看出,整個 Web 應(yīng)用服務(wù)器的功能是由一個個的組件提供的。采用組件技術(shù),能夠提高系統(tǒng)的可擴展性。整個系統(tǒng)由 11 種組件組成。 服務(wù)器啟停組件實現(xiàn)服務(wù)器的啟動與停止。服務(wù)器啟動時,完成如下一些工作: 初始化類裝載器,初始化 JNDI 服務(wù),讀入服務(wù)器配置文件 (由XML 組件中的 xml 解析器完成解析),根據(jù)配置文件的內(nèi)容配置相應(yīng)的資源服務(wù)(如數(shù)據(jù)源的初始化),啟動“停止服務(wù)器”監(jiān)聽線程并注冊虛擬機停止鉤子( hook),初始化 Web 應(yīng)用程序上下文,初始化并啟動 Http 連接管 理組件,初始化其它內(nèi)置服務(wù)(如內(nèi)置的數(shù)據(jù)庫等)。 連接管理組件 Http連接管理組件負責(zé)建立一個或多個 ServerSocket并監(jiān)聽來自客戶端的連接請求。它在初始化過程中獲取服務(wù)器啟停組件讀入的服務(wù)器配置信息,如服務(wù)器綁定的 IP 地址和端口號、線程池能夠允許的最大線程數(shù)和最小線程數(shù)等,建立 ServerSocket,并循環(huán)地接收客戶端的連接。當某個客戶端發(fā)出連接請求時,它建立一個 Socket 對象并將該對象包裝成 request 和 response 對象賦給請求處理任務(wù)的實例,交由線程池處理。 處理器 靜態(tài)資源處理器完成對靜態(tài)頁面 html、圖片等靜態(tài)資源的請求處理。如果用戶請求的是一個目錄,它可根據(jù)服務(wù)器的配置決定是否顯示歡迎頁面、顯示目錄內(nèi)容或給出出錯信息。 容器 Servlet 容器是服務(wù)器的核心,它實現(xiàn)并擴展了 規(guī)范中的絕大多數(shù)接口。 Servlet 容器在系統(tǒng)啟動過程中完成初始化,包括 Web 應(yīng)用程序上下文的配置、 Web 描述符的解析以及根據(jù) Web 描述符的配置決定是否預(yù)先裝入某些Servlet。 它實現(xiàn)了基于 Session 和 Cookie 的會話管理機制,能夠有效地對 用戶會話進行跟蹤。 Servlet 實例池能夠?qū)τ脩舻恼埱笞龀隹焖夙憫?yīng)。根據(jù) Web 描述符能夠處理任何匿名或非匿名的 Servlet 請求。 引擎 JSP 引擎是服務(wù)器的另一個核心組件,用來處理對 JSP 頁面的請求。當 Servlet容器監(jiān)聽到客戶端請求的是一個 JSP 頁面時,它將請求轉(zhuǎn)發(fā)給 JSP 引擎。 JSP 引擎將對 JSP 文件進行解析并生成相應(yīng)的 Servlet 代碼,隨后對生成的 Servlet 進行編譯并加載到內(nèi)存中,然后將該 Servlet 交給 Servlet 容器進行處理。上述過程會隨時因發(fā)生錯誤(如 JSP 文件寫法不規(guī) 范,找不到引用類等)而終止。對于所有的隨后而來的對該 JSP 文件的請求, JSP 引擎將檢查該 JSP 文件自最后一次被存取后是否經(jīng)過修改。如果沒有修改則請求將交給還在內(nèi)存中的 Servlet 以一種同時發(fā)生的方式加以處理。由于 Servlet 始終駐于內(nèi)存,所以響應(yīng)是非??斓?。如果 JSP 文件被修改了, JSP 引擎將自動地對該文件重新編譯,并將結(jié)果取代內(nèi)存中的 Servlet,并繼續(xù)上述處理過程。 數(shù)據(jù)庫連接管理組件管理數(shù)據(jù)庫的連接操作,它包括一個事務(wù)管理器和一個數(shù)據(jù)庫連接池。事務(wù)管理器采用 JTA 和 JTS 為開發(fā)者提供數(shù)據(jù)庫的事務(wù)支持,開發(fā)人員可以有選擇地通過 JNDI 訪問事務(wù)管理器控制事務(wù)或自己使用 JDBC 接口控制事務(wù)。 數(shù)據(jù)庫連接池實現(xiàn)了 接口并對開發(fā)人員屏蔽了引用的細節(jié),開發(fā)人員只需要通過 JDNI 查找 DataSource 的邏輯名稱就可以獲得數(shù)據(jù)庫連接從而操縱數(shù)據(jù)庫。 組件 XML 組件包括 XML 解析器、 XSL 轉(zhuǎn)換器、 XMLJDBC 組件等。它負責(zé)系統(tǒng)中所有 XML 文件的解析工作,能夠完成 XML 文件與關(guān)系數(shù)據(jù)庫之間數(shù)據(jù)的存取與轉(zhuǎn)換,以及與 XML 數(shù)據(jù)庫的連接。 組件 JNDI 組件為用戶訪問 Java 名字和目錄服務(wù)提供了便利,任何有關(guān) JNDI 的查找和綁定工作都由該組件完成。 安全管理組件采用基于安全域( security realm)的方式實現(xiàn)服務(wù)器中用戶的認證和授權(quán)。在身份認證方面 ,使用基于 HTTP 基本驗證方式和基于表單( FORM)的認證方式;在授權(quán)方面,使用基于角色的訪問控制。所有安全操作由服務(wù)器管理,用戶只需在 Web 應(yīng)用描述符中進行配置。 日志管理組件負責(zé)系統(tǒng)的日志記錄工作。我們采用了優(yōu)秀的日志記錄軟件Log4j 并對其進 行了擴展以滿足本地化需求。日志管理組件提供分級方法在程序中嵌入日志記錄語句。日志信息具有多種輸出格式和多個輸出級別,用戶可根據(jù)需要進行定制,以捕捉有關(guān)應(yīng)用程序運行時行為的細節(jié)。 服務(wù)器接口組件負責(zé)與 DM EJB 服務(wù)器的連接工作。它通過 JNDI 與 DM EJB服務(wù)器進行通信,從而實現(xiàn) DM WAS 和 DM EJB 服務(wù)器的互連,形成一個完整的 JAVA 應(yīng)用服務(wù)器。 服務(wù)器總體方案的特點 基于 JAVA 的 DM WAS 處于 Web 瀏覽器 /DM WAS/DM 數(shù)據(jù)庫服務(wù)器三層體系結(jié)構(gòu)的中間層,該服務(wù) 器具有 6 個基本特點。 DM WAS 嚴格遵循 JAVA 規(guī)范,任何符合 JAVA 規(guī)范的 Web 應(yīng)用程序都能夠在我們的服務(wù)器中正確地配置和運行。 DM WAS 嚴格來說是一個 Web 容器,但我們提供與 DM EJB 服務(wù)器的整合,從而可以給用戶提供完整的 JAVA 開發(fā)環(huán)境。 在服務(wù)器中可以配置各種組件的安全性,只有被授權(quán)的用戶才能訪問系統(tǒng)資源。每一個客戶隸屬于一個特定的角色,而每個角色只能訪問特定的資源。開發(fā)人員可以在應(yīng)用部署描述符中聲明角色和可被訪問的資源,而不必在應(yīng)用程序中硬編碼安全規(guī)則。 用戶可以通過服務(wù)器配置文件方便地對各項參數(shù)進行修改,從而達到最佳運行效果。 我們提供良好的操作管理界面幫助服務(wù)器管理人員管理服務(wù)器以及部署在服務(wù)器中的 Web 應(yīng)用程序。 服務(wù)器應(yīng)用程序目錄結(jié)構(gòu)規(guī)范, Web 應(yīng)用程序部署方便簡單,具有對 WAR文件的自動解壓,簡單的批處理文件使得啟停服務(wù)器變得異常方便。 DM WAS 的運行過程 DM WAS 基于 HTTP/ 協(xié)議,支持 JAVA 中 Servlet、 JSP、 JDBC、 JNDI等相關(guān)規(guī)范,能夠部署大多數(shù)基于 Web 的 Java 應(yīng)用。 DM WAS 由服務(wù)器核心類、Java 核心類庫、第三方軟件包、一組配置文件和多個 Web 應(yīng)用程序組成。 服務(wù)器在啟動時讀入并解析服務(wù)器配置文件,并初始化一系列服務(wù),包括類裝載器、數(shù)據(jù)庫連接池、 JNDI、數(shù)據(jù)源等資源在 JNDI 上的綁定、線程池、 Web應(yīng)用程序的上下文等,最后建立 ServerSocket,等待客戶端連接。 第三章 系統(tǒng)技術(shù)實現(xiàn) Http 連接管理組件 一個客戶機與一個服務(wù)器要進行有效的通信,他們之間必然要遵守某種共同的協(xié)議,當前,瀏覽器和 Web 服務(wù)器之間大多 采用超文本傳輸協(xié)議 HTTP 進行通信。 HTTP 協(xié)議是基于 TCP/IP 協(xié)議之上的應(yīng)用層協(xié)議,具有無連接、無狀態(tài)、面向?qū)ο蟮葞讉€特點。 HTTP 協(xié)議基于請求 /響應(yīng)機制,其工作原理包括四個步驟。 :瀏覽器與服務(wù)器建立連接,打開一個稱為套接字( socket)的虛擬文件,此文件的建立標志著連接建立成功。 :瀏覽器通過 socket 向服務(wù)器提交請求。 :服務(wù)器接收到該請求后,進行相應(yīng)的事務(wù)處理,然后將處理結(jié)果通過 HTTP 傳回給瀏覽器。 :當應(yīng)答結(jié)束后,服務(wù)器斷開與瀏覽器的連接,以保證更多的 瀏覽器能夠與服務(wù)器建立連接。 Http 連接管理組件位于 DM WAS 的最前端,它在服務(wù)器啟動過程中獲取服務(wù)器配置參數(shù)并初始化,負責(zé)監(jiān)聽端口,接收請求消息,并且將處理后的回復(fù)反饋給客戶端。 組件實現(xiàn) Http 連接管理組件基于 HTTP 協(xié)議,負責(zé)建立一個或多個服務(wù)器 Socket 并監(jiān)聽來自客戶端的連接請求。當某個客戶端發(fā)出連接請求時,它建立一個 Socket對象,讀出 Socket 輸入輸出流,將輸入流進行解析并提取相關(guān)信息,然后實例化一個請求處理任務(wù),并將輸入輸出流分別包裝成 request 和 response 對象 賦給該任務(wù),交由線程池處理。流程圖如圖 所示。 圖 Http 連接管理組件流程圖 Http 連接管理組件由 LifeCycle、 Server、 HttpServer、 ConnectionHandler、RequestHandler、 Request、 Response 等類和接口以及實現(xiàn)線程池的相關(guān)類組成。 下面詳細介紹一下相關(guān)的數(shù)據(jù)結(jié)構(gòu)。 interface LifeCycle{ void start()throws LifeCycleException。 void stop()throws LifeCycleException。 boolean isStarted()。 } LifeCycle 代表組件的生命周期接口,其目的是以一種一致的方式來管理組件的啟動與停止。服務(wù)器中所有具有生命周期的組件如服務(wù)器類、應(yīng)用程序上下文類都必須實現(xiàn)該接口。 interface Server extends LifeCycle{ String getServerInfo()。 String getServerName()。 int getServerPort()。 String getAppBase()。 URLClassLoader getWebappParentClassLoader()。 } Server 代表整個服務(wù)器,它包含服務(wù)器的相關(guān)屬性信息,負責(zé)服務(wù)器的啟動與停止。 它由服務(wù)器啟停組件調(diào)用。 HttpServer 類是對 Server 接口的實現(xiàn),并擴展了對 Servlet 容器的接口。 class ConnectionHandler implements LifeCycle{ ServerSocket openSocket()throws LifeCycleException。 void acc
點擊復(fù)制文檔內(nèi)容
醫(yī)療健康相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1