由于用戶名及密碼都是由a-z,a-z,0-9這幾字符組成, 我參考了一下正則表達式的算法,故有已下想法: 把用戶輸入的用戶名及密碼判斷一下,看是否是這幾個字符組成, 如果是,進行登錄驗證,否則提示有非法字符 
代碼如下: 
//login.jsp 
<%@ page contenttype="text/html; charset=gbk" language="java" import="java.io.*" errorpage="error.jsp" %> 
<%! 
boolean regex(string str){ 
java.util.regex.pattern p=null; //正則表達式 
java.util.regex.matcher m=null; //操作的字符串 
boolean value=true; 
try{ 
p = java.util.regex.pattern.compile("[^0-9a-za-z]"); 
m = p.matcher(str); 
if(m.find()) { 
value=false; 
} 
}catch(exception e){} 
return value; 
} 
%> 
<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=gbk"> 
<title>無標題文檔</title> 
</head> 
<body> 
<table width="100%" height="100%" border="0"> 
<tr> 
<td align="center" valign="middle"> 
<% string action=request.getparameter("action"); 
if (action!=null&&action.equals("login")){ 
string username=request.getparameter("username"); 
string password=request.getparameter("password"); 
if(!regex(username)||!regex(password)){ 
out.println("<script language=´javascript´>"); 
out.println("alert(´1.用戶名只能是a-z,a-z,0-9的字符//n2.密碼只能是a-z,a-z,0-9的字符//n3.不允許空格´)"); 
out.println("history.go(-1)"); 
out.println("</script>"); 
out.print("用戶名只能是a-z,a-z,0-9的字符"); 
return;//跳出程序 
} 
out.println(action);//登錄驗證 
out.println("用戶名是"+username+"<br>"); 
out.println("密碼"+password); 
} 
else{ 
%> 
<form name="form1" method="post" action="#"> 
<table width="70%" border="0"> 
<tr> 
<td>username</td> 
<td><input name="username" type="text" id="username"> 
</td> 
</tr> 
<tr> 
<td>password</td> 
<td><input name="password" type="text" id="password"></td> 
</tr> 
<tr> 
<td> </td> 
<td><input name="action" type="hidden" id="action" value="login"> 
用戶名及密碼只能是a-z,a-z,0-9的字符</td> 
</tr> 
<tr> 
<td><input type="submit" name="submit" value=" o k "></td> 
<td><input type="reset" name="submit2" value="cancle"></td> 
</tr> 
</table> 
</form><% } %></td> 
</tr> 
</table> 
</body> 
</html> 
| 
 
 | 
新聞熱點
疑難解答