【正文】
如果 JSP 的頁面一般由嵌入設(shè)計師完成 ,一般人是看不到的 :使用趨向的方法設(shè)計出代碼,你現(xiàn)在所寫的你的代碼,都是由其他人 觀看的 。(比如連接 JDBC 就是一個很好的例子,不論是 Servlets 還是 JSPs 的連接都需要連接池)。 型號 1 的編程方法 : 這種方法的優(yōu)點是,它是 siple 編程,創(chuàng)造者容易根據(jù)請求和資源狀態(tài)允許生成動態(tài)頁面。 JSP 頁攔截并處理即將到來的請求服務(wù),并把聽應(yīng)反饋給客戶。 這種模式使 JSPs 或 Servlets 直接獲取一些資源,如數(shù)據(jù)庫遺留應(yīng)用或用以服務(wù)客戶的要求。 網(wǎng)頁探討中心 使用客戶服務(wù)器方式的值用結(jié)構(gòu)己得到運用,他們包含一個或多個在客戶機制上動行的應(yīng)用程序,并連接到服務(wù)器運用的運轉(zhuǎn)( PowerBuilder 或 Oracle Formsbased系統(tǒng)就是最好的例子)。初 步設(shè)想涉及到向網(wǎng)頁界面提供不久將要出現(xiàn)的數(shù)字估計統(tǒng)計,它的臆測被保留著,并可以由另方法證實,看看誰猜測得最接近。 11 ? 第二種方法,發(fā)送員(或幾層)方法,一個基本的 Servlet 或 JSP 充當調(diào)解員或操作員,發(fā)送指令給 JSP 網(wǎng)頁和 JavaBeans 網(wǎng)頁。 現(xiàn)在,讓我們探討如何建 立這些系統(tǒng)。( Servlets 使用一個會連接機制物體),可以回頭看看本書第五章的 JSP 時段,從本書中可以看到更清晰的圖形。 ? 在一個發(fā)送機制里,要求所需對象被發(fā)送到第二資源,從而保持任何物體反應(yīng)的要求以及 它的指示上,沒有來回的網(wǎng)絡(luò)客戶。服務(wù)器傳送一個 Http302信息回客戶,并告訴它這個資源己經(jīng)轉(zhuǎn)移到另一個 URL上了,客戶應(yīng)該進入里 內(nèi)。 相反,多數(shù)網(wǎng)頁都應(yīng)該傳送我們的意圖,即顯示我們傳統(tǒng)技術(shù)具有代表性的信息,指導他的從模型 中獲得狀態(tài)指示或調(diào)去完成一些業(yè)務(wù)處理。我們稱這種常見的模式為“前沿因子 — 因子后端”。代碼是一種很常見的多樣要求,例如認證,是為了一個調(diào)處 Servlet 的最佳選擇。 所以,我們應(yīng)該盡量把包含我們的 JSP 頁面的 Java代碼降為最低,為了維持這種發(fā)展 角色間的清楚分離。當然,這將需要一個同樣由個人來完成 JSP來源頁面,但是這種依賴減少,而這些頁面變成制作團隊的焦點。 如果代碼可以計算出一個包含 Servlet 而不是 HTML 標記,然后在軟件開發(fā)角色個人的潛力存在和在網(wǎng)頁制作角色中變得更加依賴于必要的工作進展和其它的,類似這種依賴可能造成更多的錯誤傾向環(huán)境,而這種事情被其 它認員無意識的改變的環(huán)境變得更加普遍。例如, 一個程序員在網(wǎng)頁制作時將充分發(fā)揮網(wǎng)頁創(chuàng)作的角色(地位),同時 即 在 Java編程語言中編寫軟件的過程中沒有 發(fā)揮 出 軟件開發(fā)的作用。 讓我們進一步對這個進行探討研究。記住, JSP 與 Servlet 的共同發(fā)展局面是它們將在 Servlet 本身的 Java 代碼內(nèi)嵌入 HTML 標記。良好的應(yīng)用設(shè)計就是建立在這個理念上并試著將目標對象,簡報和對象操作分解成壁壘分明有區(qū)別的層次。因為申請對象更多是以業(yè)務(wù)目標或幾層結(jié)構(gòu)為基礎(chǔ)的,重點又將轉(zhuǎn)變成將 HTML 從 Java 代碼中分離出來,同時仍堅持技術(shù)所提供的整體性和靈活性。 編程要素和角色分離 為什么 JSP 的技術(shù)演變成今天的樣子(它一直在演變發(fā)展)的一個重要原因是對通過 從 靜態(tài)演示數(shù)據(jù)中分離動態(tài) 展示數(shù)據(jù) 來簡化設(shè)計的技術(shù)需求很大。我們要調(diào)查研究涉及到 JSP和 Servlet 的結(jié)構(gòu)問題,并在對其權(quán)衡的同時討論一些有效的設(shè)計。 必須認識到 ,盡管 JSP 技術(shù)將會成為基礎(chǔ) Servlets 的有力后繼,但是他們有 一個漸進的關(guān)系,并且可以在合作與互補的方式下使用,認識這一點,是很重要的。 JSP 的理解是建立在Servlet API 的高層 基礎(chǔ)上 ,并使用 Servlet 語義,引起一些有趣的問題。雖然 JSP 是 Java2 平臺企業(yè)版規(guī)格的核心部分,但作為首 選 的管理者和反應(yīng)機制,我們必須進一步調(diào)查,了解 JSP 與 Servlets 這間的關(guān)系。下面的圖示顯示了這一過程 ,個別圖示將 于稍后在這篇文章中作了解釋。 JSP 的結(jié)構(gòu) 我們將研究采取各種方式來設(shè)計利用關(guān)于 JSP 的結(jié)構(gòu)層次 , 還有 Servlets 以及 JavaBeans 技術(shù)。采用 JSP 技術(shù)的一個好處在于它使我們更清楚地把 Web 設(shè)計者的作用從一個軟件開發(fā)商中分離出來。s request: the early JSP specifications termed this a Model 1 programming approach. The JSP page is where the ining request is intercepted and processed, and the response is sent back to the client。s investigate how we build these systems. Architectures Before discussing specific architectures that we can use to build systems with servlets and JSP, it is worth mentioning two basic ways of using the JSP technology. Each of the architectures discussed in this chapter will be based on one of these approaches: ? The first method is referred to here as the pagecentric (or clientserver) approach. This approach involves request invocations being made directly to JSP page. ? In the second method, the dispatcher (or ntier) approach, a basic servlet or JSP acts as a mediator or controller, delegating requests to JSP pages and JavaBeans. We will examine these approaches in light of a simple example, which will evolve to satisfy the requirements of various scenarios. The initial scenario involves providing a Web interface for guessing statistics about a soontobeborn baby. The guesses are stored, and can be reviewed later by the parents, to see who has guessed the closest. As the requirement 6 scenarios bee more sophisticated, such as adding the desire for a persistence mechanism, the solution scenarios will bee more sophisticated, as well. Thus, our example will evolve and we