2011-07-16 77 views
1

我是JSP和Servlet Web開發人員的絕對初學者,因此我正在爲一些概念性的東西苦苦掙扎。當我們有.java文件可用時,爲什麼我們需要JSP文件?

1)我不明白爲什麼我們需要有我們編譯的純Java代碼文件,但也有單獨的JSP文件......難道他們最終實現在Java中的邏輯/功能?

2)您如何確定您應該在java文件中包含哪些函數/操作以及哪些應該包含在JSP文件中?

3)最後,還有在的Java和JSP文件(儘管在Java文件中,我們動態輸出HTML代碼的HTML代碼。但不會在重複的HTML代碼這樣的結果?

+2

這個鏈接也有助於獲得更好的理解「正常慣例」:http://stackoverflow.com/questions/3177733/how-to-avoid-java-code-in-jsp-files簡而言之:HTML代碼屬於JSP文件。 Java代碼屬於Java類。就那麼簡單。 – BalusC

回答

3

1)我真的不明白,爲什麼我們需要純Java代碼文件 我們編譯,但也有獨立的JSP文件?難道他們不都 結束了用Java實現的邏輯/功能?

我想你指的是純Java代碼文件是Servlet.In事實上,你只能使用servlet寫整個Web應用程序,但你會發現在你的應用程序如下缺點:

  • HTML是使用println()生成的,這意味着如果想對HTML進行一些更改,則必須更改,重新編譯並重新部署Java代碼。這會導致維護問題。

  • java代碼很難理解網頁設計者。

  • 由於每件事都在Java代碼中表達,所以內容和表示之間的差距很小。

JSP被設計來解決這些缺點:

  • 您不必重新編譯JSP以反映更改。只需更新並保存JSP,Web容器將在下一個請求中檢索到JSP時自動重新編譯代碼。

  • JSP頁面看起來與HTML頁面非常相似,網頁設計人員使用JSP頁面而不是Servlet更容易。

  • JSP有助於將演示文稿和業務邏輯代碼分開,其中演示文稿可以在JSP中表達,而業務邏輯可以以Java Bean或自定義標籤的形式實現。這種分離將導致更好可維護性。

2)你如何確定哪些功能/操作的,你應該包括在Java文件 ,哪些是你應該包括JSP文件...?

JSP的優勢在於顯示HTML。您應該使用JSP來定義視圖以將數據呈現給用戶。例如,如果要根據某些輸入參數或某些業務邏輯處理顯示不同的內容,則應該執行此調度工作,並選擇要顯示結果的JSP(JSP)以顯示結果在Servlet中。

如果請求的輸出不包含HTML,例如生成圖形或下載文件,則應該在Servlet中執行。因此,從MVC模式的角度來看,Servlet扮演Controller角色,而JSP扮演View角色。

可以發現使用Servlet和JSP在這裏的最佳做法: http://www.oracle.com/technetwork/articles/javase/servlets-jsp-140445.html

1

Java servlet爲JSP對比的解釋可以在這裏找到:

http://www.oxxus.net/tutorials/jsp/why-jsp

最重要的

JSP使業務邏輯能夠與演示文件完全分離。通過使用Java作爲腳本語言,JSP不限於特定的供應商平臺。作爲J2EE架構的組成部分,JSP可以完全訪問服務器端資源。

2:如果該功能只是由該JSP調用,請繼續並將其放在那裏。一般來說,你只需要從JSP中調用Java的代碼,而不是在代碼中留下太多的代碼。將這些函數構建到.java中並從JSP中調用它們將促進代碼重用,並讓您更仔細地考慮如何實現這些功能。

3:儘量避免與業務邏輯(Java)混合呈現(HTML,否則)。

這不會導致重複的html代碼?

它確實,不這樣做。

相關問題