簡體   English   中英

Java與JSP的JSTL的性能比較

[英]Performance comparison for Java vs JSP's JSTL

很多時候,我們可以使用Java以及帶有JSTL的JSP處理一段代碼,例如,一個簡單的比較並在比較的基礎上適當地設置值。

考慮到最佳實踐和性能,我們應該選擇哪種選擇? 從性能角度來看,兩者是否相同?

PS不談論Java腳本。

為此,JSTL和任何JSP服務器標簽的目的是使Java代碼脫離JSP。

JSP是一種表示技術,用於應用程序的“視圖”部分。 它僅應處理表示邏輯。 但是因為在scriptlet中添加Java代碼非常容易,所以許多開發人員開始在JSP中添加業務邏輯。 因此,您最終會遇到一個可測試性差的應用程序(如@Steve C在他的回答中評論的那樣),因為您的關注點分離很差。 反過來,這會導致很大的可維護性混亂。

因此,服務器標記代替了scriptlet的使用(一種習慣的做法),並迫使您將業務代碼置於所屬位置:在Java類中具有明確定義的行為。

那是介紹,現在回到您的問題...

使用服務器標簽確實比執行普通Java代碼中的相同操作需要更多的代碼執行,因為容器在整個生命周期中都會放入標簽以從中獲取輸出。 是的,它比較慢,但是大多數時候都無關緊要。 在考慮性能時,您必須牢記優化規則

優化的第一法則-不要。
優化的第二條規則-還沒有。
優化前的配置文件

對於最佳實踐,不應僅僅因為可以就在Java類和JSP之間划分代碼,就應該犧牲代碼的可讀性和可維護性。 正如我在一開始所說的那樣,JSP是用於表示的,而不是業務邏輯。 相關的代碼應該粘在一起,不要分散在應用程序的不同層上。

最佳實踐是盡可能使JSP保持邏輯自由。

為用Java實現的邏輯編寫單元測試要容易得多。

JSF JSTL和JSP JSTL是同一件事,因此它們執行相同的操作。 您需要考慮的唯一因素是,對JSF JSTL表達式的求值次數最多可以達到六倍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM