【正文】
Java 類,就像其他 Java 對(duì)象一樣。每 servlet 都可以聲明它可以處理何種樣式的 URL。 Java 線程可比使用 CGI 程序的服務(wù)器處理開銷小多了。 Servlet 的另一個(gè)好處是,它是多線程的, servlet 開發(fā)人員必須特別注意確保它們的servlet 是線程安全的。比如這樣的代碼: (POne line of HTML./P)。隨著應(yīng)用越來越復(fù)雜, Java 開發(fā)人員將不再扮演 HTML 頁面設(shè)計(jì)的角色。 為解決這個(gè)問題, Sun 提出了一個(gè)將腳本和模板技術(shù)結(jié)合到一個(gè)組件中的服務(wù)器頁面技術(shù)( JavaServer Pages)。你可以在 JSP 頁面中很 容易的識(shí)別出腳本元素,他們被封裝在一對(duì) % 和 %標(biāo)記中。如果,JSP 文件自上次編譯以來被修改了,容器將重新翻譯和編譯 JSP 文件。 JavaBean: JavaBean 是一種 Java 類,它遵從一定的設(shè)計(jì)模式,使它們易于和其他開發(fā)工具和組件一起使用。眾所周知,屬性名稱也符合這種模式,其他 JAVA 類可以通過自省機(jī) 制發(fā)現(xiàn)和操作這些 JavaBean 屬性。 3.在你的 Web 應(yīng)用描述符 ()中定義你的 taglib 元素。 JavaBean 設(shè)計(jì)模式提供兩種類型的方式來訪問 bean 的內(nèi)部狀態(tài):訪問器( accessor) 用來讀 JavaBean 的狀態(tài),修改器( mutator )用來改變 JavaBean 的狀態(tài)。簡(jiǎn)單屬性的 mutator在其方法體中可能只有一個(gè)參數(shù),該參數(shù)可以是各種類型。屬性名的第一個(gè)字母必須大寫。 屬性 weight 的訪問器方法體可能是: public Double getWeight() 如果訪問器返回一個(gè)邏輯值,這種情況下有個(gè)變體模式。邏輯訪問器在其方法體中不 能接受參數(shù)。 Sun 引入 JavaBean 是為了用于 GUI 組件,但它們已經(jīng)用在Java 開發(fā)的各個(gè)方面,包括 Web 應(yīng)用。在其后的規(guī)范中, Model 2 這個(gè)叫法消失了,但它已經(jīng)在 Java web 開發(fā)人員中非常通用了。 HTML 開發(fā)人員可以改變程序的外觀和感覺,并不需要改變后端 servlet 的工作方式。 。它提供一個(gè)控制器servlet 來處理導(dǎo)航流和一些特殊類來幫助數(shù)據(jù)訪問。 Model 2 使 Java 工程師和HTML 設(shè)計(jì)者分別工作于 它們所擅長(zhǎng)和負(fù)責(zé)的部分。一個(gè)頁面的動(dòng)態(tài)數(shù)據(jù)可以使用一個(gè) JavaBean 來傳遞,并且 JSP 標(biāo)記可以隨后使用 bean 的屬性來定制頁面的輸出。其他組件可以使用 Java 的反射 API 通過查找前綴為 set、 is 或者 get 的方法來發(fā)現(xiàn) JavaBean 的屬性。屬性名的首字母必須大寫。簡(jiǎn)單屬性的 Accessor 在其方法體中不能接受參數(shù)。例如,對(duì) Double 類型的屬性 weight 的 mutator 方法體可能是: public void setWeight(Double weight) 相似的設(shè)計(jì)模式也用于訪問器方法的創(chuàng)建。屬性名的第一個(gè)字母必須大寫。 4.這個(gè)語句導(dǎo)入將在本頁中使用的標(biāo)簽庫(kù),并分配給它一個(gè)前綴。這些方法獲得一個(gè)JspWriter 對(duì)象,你可以用它來輸出你需要的 HTML 內(nèi)容。要編寫 JavaBean,類必須是大連交通大學(xué)信息工程學(xué)院 2021 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 8 具體類和公共類,并且具有無參數(shù)的構(gòu)造器( NONARGS CONSTRUCTOR)。重要的是記住, JSP 頁面事實(shí)上是 一個(gè) servlet。當(dāng)一個(gè)客戶請(qǐng)求 JSP 頁面時(shí),容器將頁面翻譯成 Java servlet 源代碼文件,并將它編譯成 Java 類文件 —— 就象你寫的servlet 文件一樣。為將動(dòng)態(tài)內(nèi)容引入頁面,開發(fā)人員可以將腳本元素置入頁面之中。 它們喜歡 HTML 設(shè)計(jì)人員處理 表現(xiàn)層的工作,而 Java 工程師則專注于業(yè)務(wù)邏輯。 在產(chǎn)生 HTTP 響應(yīng)的 Servlet 中是很普遍的。 JavaServer Pages: 雖然 servlets 對(duì) CGI 程序來說前進(jìn)了一大步, 但它也不是萬能靈藥。 Servlet 開發(fā)人員可以使用 init() 方法保持對(duì)昂貴資源 的引用,比如到數(shù)據(jù)庫(kù)或者 EJB Home 接口的連接 ,以便它們可以在不同的請(qǐng)求之間進(jìn)行共享。大連交通大學(xué)信息工程學(xué)院 2021 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 7 但和 CGI 程序不同,并不是針對(duì)每個(gè)請(qǐng)求都要?jiǎng)?chuàng)建一個(gè)新的 servlet。為了使常規(guī) web servers 能訪問 servlet, servlet 被安插在一個(gè)容器之中。它接受請(qǐng)求并產(chǎn)生響應(yīng)。作為一個(gè) Struts 開發(fā)者,你并不需要知曉所有的相關(guān)知識(shí),但是這些基本技術(shù)的工作原理可能有助于你針對(duì)棘手問題設(shè)計(jì)出創(chuàng)造性的方案。如果你自己構(gòu)建它,在你完成時(shí)你就會(huì)理解它,但是在你被融入之前又將花費(fèi)多長(zhǎng)時(shí)間呢?如果要購(gòu)買,你必須得克服學(xué)習(xí)曲線,同樣,在你可以用它進(jìn)行工作之前又得花多長(zhǎng)時(shí)間?這里沒有所謂正確答案,但許多觀察者都會(huì)同意,象 Struts 這樣的框架能提供比從頭開始開發(fā)更顯著的投資回報(bào),特別是對(duì)于大型項(xiàng)目來說。它們運(yùn)行在相似的機(jī)器上,期望從相同的設(shè)備輸入信息,輸出到相同的顯示設(shè)備,并且將數(shù)據(jù)存儲(chǔ)到相同的硬盤設(shè)備。 is all too mon in servlets that generate the HTTP response. There are libraries that can help you generate HTML, but as applications grow more plex, Java developers end up being cast into the role of HTML page designers. Meanwhile, given the choice, most project managers prefer to divide development teams into specialized groups. They like HTML designers to be working on the presentation while Java engineers sweat the business logic. Using servlets alone encourages mixing markup with business logic, making it difficult for team members to specialize. 大連交通大學(xué)信息工程學(xué)院 2021 屆本科生畢業(yè)設(shè)計(jì)(論文)外文翻譯 3 To solve this problem, Sun turned to the idea of using server pages to bine scripting and templating technologies into a single ponent. To build Java Server Pages, developers start by creating HTML pages in the same old way, using