正規表達式復習:http://114.xixik.com/regex/
表單的認證:
完善的認證要靠客戶端和服務器端的認證;它們兩者的區別:
客戶端確認:(通常是JavaScript)
減少服務器的負載
縮短用戶等待時間
兼容性難
服務器端確認:
統一確認(統一把請求發到服務器端)
兼容性強
服務器負載重
簡單實用javascript認證:
以后寫javascript時,發現不了函數的錯誤,就用alert()l來debug、、、
今晚找一個渣渣錯誤找了好久。心塞塞啊啊啊啊。。
<script>
function vadacate() {
var username = document.getElementById("username");
var password = document.getElementById("password");
var repassword = document.getElementById("repassword");
var type = "^[1-9]{1,2}$"; //設置年齡是在0到99歲之間
var re = new RegExp(type);
var age = document.getElementById("age").value;
if(username.value.length == 0) {
alert("用戶名不能為空!");
return false;
}
if(password.value.length < 6 || password.value.length > 12) {
alert("用戶密碼長度非法!");
return false;
}
if(password.value != repassword.value) {
alert("兩次密碼輸入不一致!");
return false;
}
if(age.match(re) == null) {
alert("年齡要大于1歲和少于99歲!");
return false;
}
return true;
}
</script>
需要認證的表單如下:
<form action="LoginServlet" method="post" onsubmit="return vadacate()"><br>
username:<input type="text" name="username" id="username" value=""><br>
password:<input type="password" name="password" id="password" value=""><br>
repassword:<input type="password" name="repassword" id="repassword" value=""><br>
age:<input type="text" name="age" id="age"><br>
<input type="submit" value="submit">
<input type="reset" value="reset">
</form>
但是如果只有上面的javascript來驗證表單的,非法用戶可以通過訪問./LoginServlet?username=""&userpassword="111!"等訪問,從而會導致錯誤。。。