【正文】
數(shù)據(jù)是如何傳輸,以及它們到達(dá)后如何進(jìn)行解碼。作為一個(gè) Struts開發(fā)者,你并不需要知曉所有的相關(guān)知識(shí),但是這些基本技術(shù)的工作原理可能有助于你針對(duì)棘手問題設(shè)計(jì)出創(chuàng)造性的方案。對(duì)于你的工具,如果你可以用來開發(fā) Java, 你就可以用它來開發(fā) Struts。與應(yī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. 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 the same old HTML syntax. To bring dynamic content into the page, the developer can also place JSP scripting elements on the page. Scripting elements are tags that encapsulate logic that is recognized by the JSP. You can easily pick out scripting elements on JSP pages by looking for code that begins with % and ends with %. To be seen as a JSP page, the file just needs to be saved with an extension of .jsp. When a client requests the JSP page, the container translates the page into a source code file for a Java servlet and piles the source into a Java class file— just as you would do if you were writing a servlet from scratch. At runtime, the container can also check the last modified date of the JSP file against the class file. If the JSP file has changed since it was last piled, the container will retranslate and rebuild the page all over again. Project managers can now assign the presentation layer to HTML developers, who then pass on their work to Java developers to plete the businesslogic portion. The important thing to remember is that a JSP page is really just a servlet. Anything you can do with a servlet, you can do with a JSP. 7 JavaBeans: JavaBeans are Java classes which conform to a set of design patterns that make them easier to use with development tools and other ponents. DEFINITION A JavaBean is a reusable software ponent written in Java. To qualify as a JavaBean, the class must be concrete and public, and have a noargument constructor. JavaBeans expose internal fields as properties by providing public methods that follow a consistent design pattern. Knowing that the property names follow this pattern, other Java classes are able to use introspection to discover and manipulate JavaBean properties. The JavaBean design patterns provide access to the bean’s internal state through two flavors of methods: accessors are used to read a JavaBean’s state。 (PAnother line of HTML./P)。象人一樣,軟件應(yīng)用的相似性比不同點(diǎn)要多。 框架向開發(fā)人員提供一系列具有以下特征的骨架組件: 1.已經(jīng)知道它們?cè)谄渌绦蛏瞎ぷ鞯煤芎茫? 2.它們隨時(shí)可以在下一個(gè)項(xiàng)目 中使用; 3.它們可以被組織的其它團(tuán)隊(duì)使用; 對(duì)于框架是典型的構(gòu)建還是購(gòu)買命題。這些包括 Lucene 搜索引擎, Scaffold工具包,Struts 驗(yàn)證器,以及 Tiles 標(biāo)簽庫(kù)。你可以在很多環(huán)境中來開發(fā) Struts: Visual Age for Java, JBuilder, Eclipse, Emacs, 甚至使用 Textpad。開發(fā)者使用 Struts 之類的框架是為了隱藏在諸如 HTTP, CGI,以及 JSP之類技術(shù)后面的繁瑣的細(xì)節(jié)。同樣,當(dāng)計(jì)算機(jī)間需要對(duì)話,它們也遵循一個(gè)正式的協(xié)議。他們?cè)谟?jì)算機(jī)之間維護(hù)一個(gè)持久性的連接。 相反, HTTP是一個(gè)無狀態(tài)協(xié)議。 HTTP 成為通用標(biāo)準(zhǔn)的原因是其簡(jiǎn)單性。當(dāng) HTTP響應(yīng)返回時(shí),它也是一個(gè)開發(fā)者可以直接閱讀的平面文本??梢园?瀏覽器的種類和版本,可接受的文檔類型,瀏覽器的 cookies等等。狀態(tài)行后,服務(wù)器將返回一個(gè) HTTP 響應(yīng)頭,類似于 HTTP 請(qǐng)求頭。 Cookies和 URL 重寫是兩 個(gè)在請(qǐng)求間跟蹤用戶狀態(tài)的方式。對(duì)其本身來說,標(biāo)準(zhǔn)的 HTTP web服務(wù)器并不傳輸動(dòng)態(tài)內(nèi)容。用戶點(diǎn)擊連接將產(chǎn)生另一個(gè)請(qǐng)求,就開始一個(gè)新的處理過程。相反,動(dòng)態(tài)內(nèi)容是臨時(shí)產(chǎn)生的,典型地,它是針對(duì)瀏覽器的個(gè)別請(qǐng)求的響應(yīng)。當(dāng) web服務(wù)器接收到一個(gè)對(duì) CGI程序的請(qǐng)求時(shí),它便運(yùn)行這個(gè)程序并向其提供它請(qǐng)求里面所包含的信息。 CGI的主要缺點(diǎn)是它必須為每個(gè)請(qǐng)求運(yùn)行一個(gè)程序。其次,一次編寫,隨處運(yùn)行的 JAVA特性意味著 servlet在有 JVM 的操 作系統(tǒng)間是輕便的可移動(dòng)的。 xxx大學(xué)畢業(yè)設(shè)計(jì)(論文)外文翻譯 —— 譯文 4 Servlet 本身是要編譯成字節(jié)碼的 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)記xxx大學(xué)畢業(yè)設(shè)計(jì)(論文)外文翻譯 —— 譯文 5 中。如果, 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 的工作方式。 小結(jié): 在本文中,我們介紹了 Struts