【正文】
。它提供一個控制器servlet 來處理導航流和一些特殊類來幫助數(shù)據(jù)訪問。 HTML 開發(fā)人員可以改變程序的外觀和感覺,并不需要改變后端 servlet 的工作方式。 Model 2 使 Java 工程師和HTML 設計者分別工作于 它們所擅長和負責的部分。在其后的規(guī)范中, Model 2 這個叫法消失了,但它已經(jīng)在 Java web 開發(fā)人員中非常通用了。一個頁面的動態(tài)數(shù)據(jù)可以使用一個 JavaBean 來傳遞,并且 JSP 標記可以隨后使用 bean 的屬性來定制頁面的輸出。 Sun 引入 JavaBean 是為了用于 GUI 組件,但它們已經(jīng)用在Java 開發(fā)的各個方面,包括 Web 應用。其他組件可以使用 Java 的反射 API 通過查找前綴為 set、 is 或者 get 的方法來發(fā)現(xiàn) JavaBean 的屬性。邏輯訪問器在其方法體中不 能接受參數(shù)。屬性名的首字母必須大寫。 屬性 weight 的訪問器方法體可能是: public Double getWeight() 如果訪問器返回一個邏輯值,這種情況下有個變體模式。簡單屬性的 Accessor 在其方法體中不能接受參數(shù)。屬性名的第一個字母必須大寫。例如,對 Double 類型的屬性 weight 的 mutator 方法體可能是: public void setWeight(Double weight) 相似的設計模式也用于訪問器方法的創(chuàng)建。簡單屬性的 mutator在其方法體中可能只有一個參數(shù),該參數(shù)可以是各種類型。屬性名的第一個字母必須大寫。 JavaBean 設計模式提供兩種類型的方式來訪問 bean 的內(nèi)部狀態(tài):訪問器( accessor) 用來讀 JavaBean 的狀態(tài),修改器( mutator )用來改變 JavaBean 的狀態(tài)。 4.這個語句導入將在本頁中使用的標簽庫,并分配給它一個前綴。 3.在你的 Web 應用描述符 ()中定義你的 taglib 元素。這些方法獲得一個JspWriter 對象,你可以用它來輸出你需要的 HTML 內(nèi)容。眾所周知,屬性名稱也符合這種模式,其他 JAVA 類可以通過自省機 制發(fā)現(xiàn)和操作這些 JavaBean 屬性。要編寫 JavaBean,類必須是大連交通大學信息工程學院 2021 屆本科生畢業(yè)設計(論文)外文翻譯 8 具體類和公共類,并且具有無參數(shù)的構(gòu)造器( NONARGS CONSTRUCTOR)。 JavaBean: JavaBean 是一種 Java 類,它遵從一定的設計模式,使它們易于和其他開發(fā)工具和組件一起使用。重要的是記住, JSP 頁面事實上是 一個 servlet。如果,JSP 文件自上次編譯以來被修改了,容器將重新翻譯和編譯 JSP 文件。當一個客戶請求 JSP 頁面時,容器將頁面翻譯成 Java servlet 源代碼文件,并將它編譯成 Java 類文件 —— 就象你寫的servlet 文件一樣。你可以在 JSP 頁面中很 容易的識別出腳本元素,他們被封裝在一對 % 和 %標記中。為將動態(tài)內(nèi)容引入頁面,開發(fā)人員可以將腳本元素置入頁面之中。 為解決這個問題, Sun 提出了一個將腳本和模板技術(shù)結(jié)合到一個組件中的服務器頁面技術(shù)( JavaServer Pages)。 它們喜歡 HTML 設計人員處理 表現(xiàn)層的工作,而 Java 工程師則專注于業(yè)務邏輯。隨著應用越來越復雜, Java 開發(fā)人員將不再扮演 HTML 頁面設計的角色。 在產(chǎn)生 HTTP 響應的 Servlet 中是很普遍的。比如這樣的代碼: (POne line of HTML./P)。 JavaServer Pages: 雖然 servlets 對 CGI 程序來說前進了一大步, 但它也不是萬能靈藥。 Servlet 的另一個好處是,它是多線程的, servlet 開發(fā)人員必須特別注意確保它們的servlet 是線程安全的。 Servlet 開發(fā)人員可以使用 init() 方法保持對昂貴資源 的引用,比如到數(shù)據(jù)庫或者 EJB Home 接口的連接 ,以便它們可以在不同的請求之間進行共享。 Java 線程可比使用 CGI 程序的服務器處理開銷小多了。大連交通大學信息工程學院 2021 屆本科生畢業(yè)設計(論文)外文翻譯 7 但和 CGI 程序不同,并不是針對每個請求都要創(chuàng)建一個新的 servlet。每 servlet 都可以聲明它可以處理何種樣式的 URL。為了使常規(guī) web servers 能訪問 servlet, servlet 被安插在一個容器之中。 Servlet 本身是要編譯成字節(jié)碼的 Java 類,就像其他 Java 對象一樣。它接受請求并產(chǎn)生響應。其次,一次編寫,隨處運行的 JAVA 特性意味著 servlet 在有 JVM 的操作系統(tǒng)間 是輕便的可移動的。作為一個 Struts 開發(fā)者,你并不需要知曉所有的相關(guān)知識,但是這些基本技術(shù)的工作原理可能有助于你針對棘手問題設計出創(chuàng)造性的方案。這些技術(shù)并不是專門針對Struts,而是所有 Java web 應用都可以使用的。如果你自己構(gòu)建它,在你完成時你就會理解它,但是在你被融入之前又將花費多長時間呢?如果要購買,你必須得克服學習曲線,同樣,在你可以用它進行工作之前又得花多長時間?這里沒有所謂正確答案,但許多觀察者都會同意,象 Struts 這樣的框架能提供比從頭開始開發(fā)更顯著的投資回報,特別是對于大型項目來說。構(gòu)架在這些公共基礎上的應用框架可以為開發(fā)人員提供可以為他們的產(chǎn)品提供可重用服務的基礎架構(gòu)。它們運行在相似的機器上,期望從相同的設備輸入信息,輸出到相同的顯示設備,并且將數(shù)據(jù)存儲到相同的硬盤設備。 they do not retrieve them. The mutator for a simple property takes only one parameter in its signature, which can be of any type. Mutators are often nicknamed setters after their prefix. The mutator method signature for a weight property of the type Double would be: public void setWeight(Double weight) 大連交通大學信息工程學院 2021 屆本科生畢業(yè)設計(論文)外文翻譯 4 A similar design pattern is used to create the accessor method signature. Accessor methods are always prefixed with the lowercase token get, followed by the property name. The first character in the property name must be uppercase. The return value will match the method parameter in the corresponding mutator. Ac