設置JSP頁面指令
1、始終把會話頁面指令設置為False,除非希望在JSP頁面中使用會話信息,False設置不會刪除現有的會話,但是true設置將創建一個會話,但也許不是有意的。了解使用request.getSession(true)時警告,為了避免這種調用帶來的安全問題,應該確保限制了帶有頁面指令sesion = true的JSP頁面的使用。
2、設置頁面指令
“防彈的”應用程序使用頁面指令重寫Session和errorPage的默認值。應始終把會話頁面指令設為False,除非希望在JSP頁面中使用會話的信息。False設置不會刪除任何現有的會話,但是true設置會創建一個會話(或許是無心的)。為了避免request.getSession(true)調用引入的安全問題,應確保使用頁面指令Session="true"限制了JSP頁面的使用。只有在確認會話后,對這些受限制的頁面的直接請求才確實存在。可以限制對JSP的訪問,具體做法是把它們放在web應用程序的web-inf目錄中。可以在web-inf目錄中包含或轉發資源,但是外部用戶無法直接訪問這些資源。此外,我們無法知道應用程序何時會拋出異常。使用errorPage頁面指令把這些失敗的請求重定向到一個用戶友好的錯誤頁面。
3、基于模板進行開發
沒有理由重頭開始編寫應用程序組件。更好的辦法是采用一個與計劃開發的應用程序相近的應用程序,對它進行修改,直到滿足需要為止。設計 WebAuction應用程序的目的就是如此,此外,sun公司發行的j2ee Blueprints為應用程序開發提供了一個極好的起點。
4、注意大寫和空格
xml編碼格式的j2ee部署文件的出現意味著需要注意大寫和空格。開發人員可能花費了大量時間來調試一個應用程序,最后卻發現,原來是一個錯誤使用空格或括號導致了錯誤。
5、使用正確的包含機制
使用包含指令模塊化頁面。如果站點定期重用組件,比如橫跨web站點頂部的導航欄或標題,考慮把用于生成這些組件的代碼放入單獨的JSP頁面中。接著,使用JSP包含指令把上述代碼包含到每個頁面中。包含指令是一種高效的操作。如果又特殊的需要,想動態選擇被包含的資源,或者需要對字符編碼進行高級控制,就開一個使用包含動作。
6、在JSP中盡量少使用Java
混合使用JSP和Java代碼很可能導致二者都顯示的晦澀。應利用JavaBean和定制標簽庫的優點,盡可能地少自傲JSP頁面中使用Java代碼,最理想的情況是完全不使用Java代碼。
7、把業務邏輯放在JavaBean中
JSP設計的一個好處是能夠避免把敏感的代碼放在web頁面中,業務邏輯可以在web應用程序、服務器操作和Java客戶端應用程序中應用程序。可以在整個J2EE平臺上廣泛使用JavaBean,所以JavaBean是定義應用程序業務邏輯的好地方。
8、標簽庫中的表示邏輯
定制標簽庫提供了一種方式,允許使用JSP標簽來替換表示層邏輯。然而,標簽庫處理程序類與JSP緊密相關,不能在其他上下文中被重用。同樣,定制標簽是定義表示邏輯的好地方,但是不適合定義業務邏輯。
9、使用現有的標簽庫
沒有必要重復發明輪子。又大量多種用途的標簽庫已經存在。如jstl
【編輯推薦】