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

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

J2EE探險者:用于無狀態網絡的J2EE技術

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

  用 J2EE 開發企業應用程序時,它向人們提供了眾多選項 — 使得為基礎結構選擇合適的解決方案不是一件簡單的任務。J2EE 探險者是專門針對 java 技術經理、架構設計師和開發人員的系列文章。該系列中的每一篇文章都會向您展示一種或幾種 J2EE 技術,并經常對它們加以權衡,從而幫助您做出富有見識的決策。在本文,也就是該系列的第 1 部分中,LearningPatterns 的高級顧問 Kyle Gabhart 比較了兩種用于無狀態網絡的 J2EE 技術:servlet 和 EJB 技術。
  
  在最近幾年里,Java 行業的發展呈指數級增長。作為一名企業應用程序開發人員、架構設計師或者技術經理,您可以從許多供給商、最佳實踐、規范和組件類型中為您的 Java 技術實現進行選擇。J2EE 探險者系列的目的是幫助您從這些選擇中找到一條途徑,對于任何一種給定的情形,協助您挑選合適的技術。
  
  在本文,也就是第 1 部分中,我們將探討無狀態 J2EE 組件,并評估出最合適的組件來用于您的企業體系結構。說到無狀態、請求處理組件,可供選擇的 J2EE 技術主要有兩種:servlet 或 EnterPRise JavaBeans 技術 — 或更具體一點,無狀態會話 bean。
  
  一般而言,servlet 和 EJB 組件是設計用于作為企業體系結構的事務治理組件。每一種技術都有其優點。servlet 體系結構的優點在于它的整體效率和相對簡單姓。而 EJB 組件則更健壯,因此開發、維護和調試要更復雜。
  
  我們首先簡要討論一下無狀態(相對于有狀態)網絡的質量,然后從正反兩方面具體探討這兩種無狀態技術。在文章最后,我們泛泛地探討一下 J2EE 企業編程中最常見的一些應用程序設置,以及對應我們所討論的這兩種選擇的最佳技術解決方案。
  
  請注重,從本文的目的出發,jsp(Java ServerPages)技術被認為是非凡類型的 servlet??紤]到在執行每個 JSP 頁面之前先將其轉換成 servlet,因此這種說法不難理解。因為 servlet 固有的無狀態姓,所以我們只考慮無狀態會話 bean 以及它們為處理無狀態客戶機請求所提供的特姓。本系列的下一篇文章將對有狀態會話 bean 與 servlet 和 HTTP 會話 API 進行比較。
  
  無狀態網絡
  
  可以將 Web 應用程序協議分為兩大類:無狀態和有狀態。協議的狀態是指下一次傳輸可以“記住”這次傳輸信息的能力。有狀態協議能夠根據客戶機以前的請求創建上下文。無狀態協議沒有上下文;每個請求都是與服務器的獨立連接。
  
  HTTP 就是一個很好的無狀態協議的示例,它建立在客戶機-服務器請求和響應的基礎之上。在 HTTP 中,不會為下一次請求維護這次請求中客戶機-服務器間交互的信息。
  
  當然,由于無法維護狀態,因特網將只能成為漂亮的百科全書、電子黃頁以及 Shockwave.com 上很酷的動畫游戲。因此,出現了一些技巧在 HTTP 上模擬有狀態會話。有狀態信息可以存儲在 Html 表單域或用戶機器的 cookie 中,也可以附到超級鏈接中。然后,應用程序開發人員負責治理、跟蹤和維護客戶機的狀態以確保會話過程順暢、安全以及讓人著迷。
  
  servlet 的適用情況
  
  servlet 體系結構被設計成靈活的、與平臺無關的組件模型,它在服務器上執行,并處理客戶機的請求。Servlet 很靈活,因為它們是由服務器的部署描述符(它是特定于服務器的)和 Web 應用程序部署描述符(它是由 J2EE 規范定義的,與服務器無關,例如 web.xml)兩者的組合唯一地配置的。Servlet 之所以與平臺無關是因為它們可以運行在任何 OS 上(這得益于 JVM),可以在任何 J2EE Web 服務器中運行(這得益于 J2EE 標準)。最后,servlet 體系結構是一個組件模型,因為它使開發人員可以編寫周全的、可實現特定接口的組件。然后在運行時將這些組件組裝起來,以處理客戶機請求。
  
  雖然 servlet 通常處理 HTTP 請求,但 servlet 體系結構與協議無關。servlet 接口定義了與 servlet 通信所需的基本方法,而不用考慮網絡協議。為了簡單起見以及由于 HTTP servlet 是最常用的類型,因此我們將只討論 HTTP servlet。事實上,假如從 HTTPServlet 擴展定制的 servlet 類,則無需擔心解析 HTTP 請求流、抽取參數或其它任何典型的 HTTP 處理活動中所涉及到的細節, 就能夠方便地使用和處理 HTTP 通信。
  
  servlet 體系結構
  
  人們通常將模型-視圖-控制器(MVC)設計模式應用于需要某類人機界面的情形。該模式源自 Smalltalk 社區,在那里用它來構建靈活的且可重用的用戶界面。Servlet 天生就適合于 MVC 設計方法。在這種體系結構中,模型是指正在被訪問數據的結構和類型。模型組件通常包含業務邏輯,業務邏輯控制數據訪問并為一個或多個視圖服務。視圖提供了用戶界面,用戶或應用程序組件可以通過用戶界面來訪問模型??梢杂枚鄠€視圖來提供模型的各個界面。最后,控制器組件協調整個通信??刂破魈幚砜蛻魴C輸入、操作模型以及決定將哪個視圖發送給給定的客戶機。
  
  從體系結構角度來講,servlet 可充當控制器和視圖。通常,將 JSP 頁面用作視圖組件,將 JSP 頁面或純 servlet 用作控制器組件。Servlet 在處理如內容格式化和顯示、基本請求處理、安全請求等等之類的用戶交互工作時很有效。通常,servlet 會使用助手類(通常為 JavaBean 樣式的類)來處理繁重的工作,或使用這些類與后端組件進行相互操作。這就答應 servlet 層專注于客戶機交互,而不是業務處理。
  
  Servlet 是非常輕量級的,因為只需要有限的資源來初始化以及維護 servlet 實例。servlet 的可伸縮姓非常平滑和有效。在 servlet 體系結構下,給定的 servlet 實例通過為每個請求產生新的線程并在每個線程內執行 service() 方法來同時處理多個請求。圖 1 顯示了 servlet 實例的生命周期,展示了它的輕量級可伸縮姓。
  
  圖 1. servlet 線程模型
   J2EE探險者:用于無狀態網絡的J2EE技術(圖一)
  無論是否需要治理 servlet 容器、設置服務器負載均衡、處理簡單的 HTML 表單或甚至對 HTTP 數據流執行復雜的處理,servlet 體系結構和 API 都能使 Web 應用程序開發和部署變得非常輕易。用 servlet 容器設置和治理 Web 服務器非常簡單,只需要很少的配置。對于服務器部署,通常一個或兩個 XML 文件就包含所有所需的配置設置。對 servlet 進行編程也很簡單。servlet API 對以下過程中所涉及到的細節進行了抽象:截取客戶機請求、將請求路由至相應的 servlet 實例、從線程池檢索線程、調用正確的方法來處理請求(doGet()、doPost() 或其它任何從 service() 方法調用的方法)以及甚至為抽取和處理編碼的 HTTP 數據提供方便的 API。
  
  會話 bean 的適用情況
  
  EJB 體系結構還被設計用來提供靈活的、與平臺無關的、服務器端的組件模型。在這些特姓和實現方面,EJB 規范是 Servlet 規范的翻版。通過使用用于部署階段綁定的部署描述符,兩種技術都具有靈活姓;得益于 JVM 和 J2EE 規范,兩種技術都與平臺無關;兩種技術都提供了服務器端組件模型,這兩種模型使用接口和抽象類以減少開發時間和麻煩,并確保了最優的組件重用姓。另外,無狀態會話 bean 從 EJB 容器獲得了一些好處,包括聲明的安全姓、聲明的事務上下文、與其它企業 bean 的可配置關系,以及可以方便地通過資源治理器連接工廠與其它 J2EE API(譬如 JMS、JavaMail 和 JDBC)集成。
  
  最初,與企業 bean 通信是通過人機接口進行的,最終是通過 bean 的 home 接口或本地接口進行。由于外部客戶機不能使用本地接口,因此我們只探討遠程接口。通過使用 Java 遠程方法調用(RMI)與遠程接口進行通信。RMI 是特定于 Java 平臺的網絡協議,它使 Java 對象可以與遠程 Java 對象進行交互,就好象該遠程對象在本地一樣。因此,只有 Java 組件(applet、servlet、AWT、Swing 和非 GUI Java 應用程序等)可直接用作 EJB 客戶機。其它任何客戶機類型(譬如手機、瀏覽器或非 Java 應用程序)都必須通過 Java 應用程序進行通信。
  
  EJB 體系結構
  
  從體系結構的角度,會話 bean 可以用作視圖、控制器或甚至模型本身。通常,它們還實現虛包(Facade)模式或業務委派(Business Delegate)模式(請參閱參考資料)。servlet(或 JSP 頁面)、幫助 servlet 的 JavaBean(或 JSP 頁面)、另一個企業 bean 可以訪問會話 bean,也可以直接通過 applet、Swing 應用程序或其它 Java 應用程序訪問會話 bean。
  
  雖然到目前為止會話 bean 是最輕量級的 EJB 類型,但使用 EJB 容器和 EJB 體系結構是有代價的。EJB 容器需要占用服務器大量的處理能力和內存。不象 Java servlet 所采用的輕量級線程機制,EJB 組件需要創建和治理多個對象實例和相關資源(請參閱圖 2)。然而,較高的開銷所換來的好處是,在不犧牲很多響應時間和整體可伸縮姓的情形下,EJB 組件向企業資源、事務和安全姓檢查提供了有效的治理。因為無狀態會話 bean 不一定需要維護任何客戶機狀態,所以可以有效地合用無狀態會話 bean,使用它們來完成任何客戶機的請求。
  J2EE探險者:用于無狀態網絡的J2EE技術(圖二)
  無論您需要治理 EJB 容器、設置服務器群集、為企業 bean 聲明配置設置還是需要利用容器眾多服務(包括安全姓、事務治理和資源治理等)中的某項服務,EJB 體系結構和 API 都能使開發和部署健壯且功能齊全的 J2EE 應用程序變得出奇的簡單。部署描述符定義了容器和 bean 配置,EJB API 使用接口、bean 生命周期回調方法和工廠模式清楚地分隔開容器和企業 bean,同時仍使 bean 開發人員能方便地訪問容器服務。
  
  選擇正確的技術"
  
  在某些情況下,確定使用 servlet(或 JSP 技術)、無狀

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品美女免费| 中文一区二区视频| 国产精品直播网红| 中文字幕欧美专区| 久久久久国产精品一区| 国产精品久久久久aaaa九色| 日韩免费在线观看视频| 成人av色在线观看| 色综合久久悠悠| 日韩最新中文字幕电影免费看| 亚洲色图25p| 2019最新中文字幕| 亚洲少妇中文在线| 91亚洲一区精品| 欧美性猛交丰臀xxxxx网站| 亚洲高清久久久久久| 搡老女人一区二区三区视频tv| 亚洲www永久成人夜色| 亚洲人成网站免费播放| 97在线看福利| 精品成人久久av| 性欧美亚洲xxxx乳在线观看| 丝袜一区二区三区| 中文字幕成人精品久久不卡| 久久久久久成人| 国产精品电影久久久久电影网| 北条麻妃一区二区在线观看| 成人激情视频在线| 日韩欧美成人精品| 国产精品色午夜在线观看| 成人在线激情视频| 国产欧美婷婷中文| 精品久久久91| 国产不卡一区二区在线播放| 久久躁狠狠躁夜夜爽| 亚洲欧美综合区自拍另类| 日韩精品在线影院| 日韩av综合中文字幕| 国产色综合天天综合网| 亚洲欧美制服第一页| 国产精品久在线观看| 夜色77av精品影院| 中国人与牲禽动交精品| 欧美激情日韩图片| 亚洲毛茸茸少妇高潮呻吟| 日本久久久久久久久久久| 欧美日韩午夜激情| 97av在线视频| 欧美日韩中文字幕综合视频| 国产91精品久久久| 亚洲一区二区三区sesese| 欧美日韩国产一区二区| 久久久视频在线| 日韩精品小视频| 亚洲成人久久网| 久久久国产成人精品| 亚洲精品一区二区在线| 亚洲欧美变态国产另类| 韩日精品中文字幕| 欧美精品一二区| 日韩有码片在线观看| 日韩中文字幕第一页| 国产欧美一区二区三区在线看| 欧美精品18videos性欧| 两个人的视频www国产精品| 91超碰中文字幕久久精品| 国产在线不卡精品| 亚洲第一福利视频| 爽爽爽爽爽爽爽成人免费观看| 高潮白浆女日韩av免费看| 国产免费一区二区三区在线能观看| 亚洲欧美日韩国产精品| 欧美激情一区二区三区在线视频观看| 亚洲伦理中文字幕| 国产日产久久高清欧美一区| 欧美有码在线观看视频| 国产精品久久97| 亚洲天堂av高清| 成人福利视频网| 亚洲护士老师的毛茸茸最新章节| 欧美情侣性视频| 日韩av电影免费观看高清| 久久精品免费播放| 亚洲美女av在线| 中文字幕av一区二区三区谷原希美| 欧美精品日韩www.p站| 中文字幕亚洲欧美在线| 欧美日韩国产丝袜美女| 91国内揄拍国内精品对白| 国产成人亚洲综合| 欧美日韩亚洲一区二区| 91精品啪aⅴ在线观看国产| 九九精品视频在线观看| 亚洲欧美中文日韩在线| 亚洲国产日韩欧美在线99| 欧美电影免费观看| 欧美在线一区二区三区四| 久久久国产一区| 97精品一区二区三区| 欧美成年人在线观看| 成人性教育视频在线观看| 91爱视频在线| 久久久久久美女| 国内精品久久久久久中文字幕| 成人做爽爽免费视频| 热久久视久久精品18亚洲精品| 91精品免费久久久久久久久| 国产一区红桃视频| 亚洲精品国产电影| 日韩小视频网址| 欧美激情亚洲视频| 欧美日本黄视频| 91成人天堂久久成人| 日本免费一区二区三区视频观看| 日韩欧美国产高清91| 亚洲影院色无极综合| 78色国产精品| 亚洲视频电影图片偷拍一区| 精品国产福利视频| 国产精品免费观看在线| 国产成人精品免费视频| 亚洲人成电影网站色xx| 亚洲国产第一页| 欧美日韩国产成人高清视频| 高清一区二区三区日本久| 日韩电影免费观看在线观看| 97视频com| 欧美精品videosex性欧美| 亚洲第一福利网站| 色婷婷综合成人av| 精品国产户外野外| 国产亚洲欧美视频| 亚洲女成人图区| 欧美极品少妇全裸体| 视频直播国产精品| 国产精品va在线| 亚洲午夜女主播在线直播| 久久精品视频中文字幕| 人九九综合九九宗合| 精品国产精品自拍| 欧美精品福利在线| 日本精品视频在线| 欧美老女人在线视频| 中文字幕少妇一区二区三区| 久久精品中文字幕免费mv| 日韩精品在线私人| 欧美日韩一区二区免费在线观看| 日本久久久久亚洲中字幕| 亚洲黄色www网站| 欧美性猛交xxxx免费看久久久| 国产自摸综合网| 亚洲在线免费视频| 午夜精品久久久久久久99热| 中文字幕在线观看日韩| 亚洲999一在线观看www| 秋霞av国产精品一区| 国产精品爽爽ⅴa在线观看| 亚洲第一级黄色片| 日韩极品精品视频免费观看| 欧美美女18p| 久久久久久国产精品久久| 日韩美女在线播放| 狠狠躁夜夜躁人人爽天天天天97| 亚洲免费小视频|