Java Web開發(fā)中,有許多共通的問題,是開發(fā)人員在開發(fā)過程中一定會遇到的,需要處理的問題:
1. 亂碼問題
為何會出現(xiàn)亂碼問題?既然有亂碼問題,肯定是由于編碼設(shè)置的不一致導(dǎo)致的。在Web開發(fā) 過程中,涉及以下一些編碼設(shè)置,客戶端參數(shù)的編碼設(shè)置,Web服務(wù)器的編碼設(shè)置,服務(wù)器端應(yīng)用程序的編碼設(shè)置,數(shù)據(jù)庫的編碼設(shè)置等。只要這四處的編碼設(shè)置 有不相同的,就可能會出現(xiàn)亂碼問題。開發(fā)人員在進行開發(fā)之前,不防先了解一下這四個編碼在哪里設(shè)置,當(dāng)前自己的項目設(shè)置是怎么樣的,這樣就可以很好的避免 編碼問題。
2. 權(quán)限控制
對于一個Java Web系統(tǒng),不是所有的頁面與功能都允許所有的用戶訪問的,這樣就需要對用戶能訪問哪些頁面進行控制了。一般的Java Web系統(tǒng),都需要進行權(quán)限控制。進行權(quán)限控制的方法有很多,以前看到有不少項目直接在程序里寫權(quán)限控制的代碼,這樣的弊端是顯而易見的,太不利于擴展 了,只要有任何的修改,都需要改動相當(dāng)?shù)拇a,一是容易出錯,二是修改的代價大。一個比較好的想法是基于AOP的思想,使用攔截器來進行權(quán)限控制,當(dāng)然前 提是系統(tǒng)要配置一定的數(shù)據(jù)庫結(jié)構(gòu),如用戶-角色-權(quán)限表這樣的表結(jié)構(gòu)。當(dāng)然,目前有不少的權(quán)限控制開源框架如acegi
3. 參數(shù)驗證
All Input Is Evil。對于輸入?yún)?shù)的驗證是少不了的。對于參數(shù)的驗證,有客戶端驗證與服務(wù)器端驗證,一般來說,能夠在客戶端進行驗證的,優(yōu)先考慮客戶端驗證以減少服 務(wù)器端壓力。現(xiàn)在有許多的Javascript框架可以很好的完成這一工作。如Jquery Validation插件。
4. 異常處理
應(yīng)該說對于每個系統(tǒng)來說,異常處理都是很重要的。但在B/S結(jié)構(gòu)的環(huán)境中,異常就顯得更為重要,一個設(shè)計良好的異常處理框架可以減少很多的代碼編寫工作。
5. 參數(shù)傳遞
在B/S結(jié)構(gòu),基于HTTP來完成通信,每一次的客戶端與服務(wù)器端的交互都是一次參數(shù)傳 遞的過程。控制參數(shù)的傳遞過程就顯得很重要了。要清楚的知道每一次的B/S的交互,需要傳遞哪些參數(shù),哪些參數(shù)是合法的,哪些參數(shù)是不合法的,是通過 GET方式還是通過POST方式,還是通過URL鏈接的方式。
6. Ajax
現(xiàn)在的Java Web系統(tǒng),不使用Ajax技術(shù)是不可能的了。Ajax實在是一項不錯的技術(shù),不刷新頁面而完成與服務(wù)器端的通信,它使得基于B/S的結(jié)構(gòu)功能更強大了, 許多傳統(tǒng)的Web應(yīng)用程序所無法完成的功能現(xiàn)在大都可以用B/S架構(gòu)來實現(xiàn)。對于Ajax現(xiàn)在已經(jīng)有很多成熟的Javascript框架可以使用。首推 jQuery,其提供的Ajax功能簡單而實用。
7. 客戶端Javascript技術(shù)
客戶端技術(shù)有很多,Javascript應(yīng)該說是功能最強大、應(yīng)用最廣泛的一個了。用好Javascript,在系統(tǒng)設(shè)計時多考慮客戶端的實現(xiàn)方式,可以很好的輔助進行服務(wù)器端的功能設(shè)計。優(yōu)秀的Javascript框架還是推薦jQuery,其功能簡單、實用而強大。