Servlets和JSP開發原則

來源:互聯網
上載者:User

Servlet和JSP技術是用Java程式開發伺服器端應用的主要技術,是開發商務應用表示端的標準。Java開發人員喜歡使用它有多種原因,其一是對於已經熟悉Java語言的開發人員來說這個技術容易學習;其二是Java把“一次編寫,到處運行”的理念帶入到Web應用中,實現了“一次編寫,到處實現”。而且更為重要的是,如果遵循一些良好的設計原則的話,就可以把表示和內容相分離,創造出高品質的、可以複用的、易於維護和修改的應用程式。比方說,在HTML文檔中如果嵌入過多的Java代碼(scriptlet),就會導致開發出來的應用非常複雜、難以閱讀、不容易複用,而且對以後的維護和修改也會造成困難。事實上,在CSDN的JSP/Servlet論壇中,經常可以看到一些提問,代碼很長,可以邏輯卻不是很清晰,大量的HTML和Java代碼混雜在一起,讓人看得一頭霧水。這就是隨意開發的弊端。

如果你已經基本瞭解JSP和Servlet的各項技術(最好也開發過一些Web應用),那麼我們可以一起探討一下如何開發“好”的應用的一些指導原則。我們首先對Servlet和JSP技術做一個瀏覽。

Servlet和JSP概覽

早期的動態網頁主要採用CGI(Common Gateway Interface,公用網關介面)技術,你可以使用不同的語言編寫CGI程式,如VB、C/C++或Delphi等。雖然CGI技術發展成熟且功能強大,但由於編程困難、效率低下、修改複雜等缺點,所以有逐漸被取代的趨勢。在所有的新技術中,JSP/Servlet具備更高效、更容易編程、功能更強、更安全和具有良好的可移植性,因而被許多人認為是未來最有發展前途的動態網站技術。

與CGI相似,Servlet支援要求/響應模型。當一個客戶向伺服器遞交一個請求時,伺服器把請求送給Servlet,Servlet負責處理請求並產生響應,然後送給伺服器,再由伺服器發送給客戶。與CGI不同的是,Servlet沒有產生新的進程,而是與HTTP Server處於同一進程中。它通過使用線程技術,減小了伺服器的開銷。Servlet處理請求的過程是這樣的:當收到來自用戶端的請求後,調用service方法,該方法中Servlet先判斷到來的請求是什麼類型的(GET/POST/HEAD…),然後調用相應的處理方法(doGet/doPost/doHead…)並產生響應。

別看這麼複雜,其實簡單說來Servlet就是一個Java類。與一般類的不同之處是,這個類運行在一個Servlet容器內,可以提供session管理和對象生命週期管理。因而當你使用Servlet的時候,你可以得到Java平台的所有好處,包括安全性管理、使用JDBC訪問資料庫以及跨平台的能力。而且,Servlet使用線程,因而可以開發出效率更高的Web應用。

JavaServer Pages (JSP)

JSP技術是J2EE的一個關鍵技術,它在更高一級的層次上抽象Servlet。它可以讓常規靜態HTML與動態產生的內容相結合,看起來像一個HTML網頁,卻作為Servlet來運行。現在有許多商業應用伺服器支援JSP技術,比如BEA WebLogic、IBM WebSphere、 JRun等等。使用JSP比用Servlet更簡單。如果你有一個支援JSP的Web伺服器,並且有一個JSP檔案,你可以把它放倒任何靜態HTML檔案可以放置的位置,不用編譯,不用打包,也不用進行ClassPath的設定,就可以像訪問普通網頁那樣訪問它,伺服器會自動幫你做好其他的工作。

JSP工作原理

JSP 檔案看起來就像一個普通靜態HTML檔案,只不過裡麵包含了一些Java代碼。它使用.jsp的尾碼,用來告訴伺服器這個檔案需要特殊的處理。當我們訪問一個JSP頁面的時候,這個檔案首先會被JSP引擎翻譯為一個Java源檔案,其實就是一個Servlet,並進行編譯,然後像其他Servlet一樣,由Servlet引擎來處理。Servlet引擎裝載這個類,處理來自客戶的請求,並把結果返回給客戶,如下圖所示:

圖1: 調用JSP頁面的流程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.