服務端驗證的問題處理

2021-10-03 21:47:54 字數 1685 閱讀 1684

在使用服務端驗證的時候,因為各種需求的不同,可以用作一下的幾個處理。

使用sql語句的驗證

就是在寫sql語句的時候,進行使用者名稱和密碼的匹配查詢。如:where name = ? and password = ?。在客戶端請求時,在servlet層獲取使用者名稱和密碼引數。並呼叫該方法,如果返回有值,則驗證通過。反之,不通過。

通過這種方法。在客戶端提示頁面錯誤資訊的時候,可能體驗感不是太好。因為不能準確的提示使用者,是使用者名稱輸入錯誤,還是密碼輸入錯誤。

//獲取請求的使用者名稱和引數

string name = req.

getparameter

("name");

string password = req.

getparameter

("password");

//方法類

userdao userdao =

newuserdao()

;//通過sql驗證

list

user = userdao.

finduser

(name,password)

;//判斷

if(user.

size()

>0)

else

使用list集合儲存後台資料資訊,再進行驗證

寫sql語句的時候是獲取後台所有的資料資訊。如:select * from 表。在客戶端請求時,在servlet層獲取使用者名稱和密碼引數。並遍歷list集合,把list中的使用者名稱和密碼與servlet獲取到的引數進行比較驗證。

通過這種方法。在驗證後處理頁面的跳轉資訊的時候。很難去處理。

下面的方法進行處理後,可以使使用者介面出現錯誤是得到較好的體驗。

//獲取請求的引數

string name = req.

getparameter

("name");

string password = req.

getparameter

("password");

//方法類

userdao userdao =

newuserdao()

;// 獲取後台所有的使用者資訊 sql語句:select * from user

list

findalluser = userdao.

findalluser()

;//把list集合中的使用者名稱和密碼單獨抽離封裝成乙個集合

list

collectname = findalluser.

stream()

.map

(user:

:getname)

.collect

(collectors.

tolist()

);list

collectpassword = findalluser.

stream()

.map

(user:

:getpassword)

.collect

(collectors.

tolist()

);//進行驗證

if(collectname.

contains

(name)

)else

}else

CAS服務端取消https驗證

客戶覺得cas證書的提示太煩了,想去掉,又不想花錢認證證書,這兩天閒暇之時看了一下最新的cas文章,自己也配置了一套apache2.2 tomcat7 casserver 3.4.8 casclient3.2的配置,實現了負載均衡下tomcat集群中的cas認證,並使用了https的方式和http認...

HTTP服務端JSON服務端

最後更新日期 2014 5 18 author kagula 內容簡介 cppcms是個開源web開發框架,通過它可以很容易實現http服務和json服務,這裡介紹cppcms開發環境的搭建。寫乙個cppcms測試程式,它建立http服務,向瀏覽器返回hello,world頁面。cppcms依賴的一...

服務端大量CLOSE WAIT問題

服務端大量close wait問題.md 現象描述 服務端使用了quartz框架之後,剛開始啟動jetty容器的時候,請求正常,大概幾個請求完了之後,部分mac機子出現客戶端一直在請求,但是返回給客戶端的資訊是異常,服務端壓根沒有收到請求,或者收到請求 執行的非常慢 使用命令 lsof i 8080...