程序 |
描述 |
index.jsp |
註冊信息填寫頁,同時會將輸入錯誤的數據進行錯誤提示 |
check.jsp |
將輸入的表單數據自動賦值給JavaBean,同時進行驗證,如果失敗則返回index.jsp |
success.jsp |
註冊成功頁,可以顯示出用戶註冊成功的信息 |
Register.java |
註冊使用的JavaBean,可以接收參數,同時進行判斷,並返回錯誤的結果 |
Register.java
package he.xiao.wei;
import java.util.HashMap;
import java.util.Map;
public class Register{
private String name;
private String age; //在用戶自己輸入的情況下就用String類型
private String email;
private Map<String, String> errors = null;
public Register(){
this.name = "";
this.age = "";
this.email = "";
this.errors = new HashMap<String, String>();
}
public boolean isValidate(){
boolean flag = true;
if(!this.name.matches("\\w{6,15}")){
flag = false;
this.name = "";
this.errors.put("errname", "用戶名是6~15位的字母或數字.");
}
if(!this.email.matches("\\w+@\\w+.\\w+\\.?\\w*")){
flag = false;
this.email = "";
this.errors.put("erremail", "輸入的email地址不合法.");
}
if(!this.age.matches("\\d+")){
flag = false;
this.age = "";
this.errors.put("errage", "年齡只能是數字.");
}
return flag;
}
public String getErrorMsg(String key){
String value = this.errors.get(key);
return value == null ? "" : value;
}
public void setName(String name){
this.name = name;
}
public void setAge(String age){
this.age = age;
}
public void setEmail(String email){
this.email = email;
}
public String getName(){
return this.name;
}
public String getAge(){
return this.age;
}
public String getEmail(){
return this.email;
}
}
index.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>歡迎來到望星空</title></head>
<%
request.setCharacterEncoding("GBK");
%>
<body>
<jsp:useBean id="reg" scope="request" class="he.xiao.wei.Register"/>
<form action="check.jsp" method="post">
用戶名:<input type="text" name="name" value="<jsp:getProperty name="reg" property="name"/>"/><%=reg.getErrorMsg("errname")%><br>
年 齡:<input type="text" name="age" value="<jsp:getProperty name="reg" property="age"/>"/><%=reg.getErrorMsg("errage")%><br>
E-MAIL:<input type="text" name="email" value="<jsp:getProperty name="reg" property="email"/>"/><%=reg.getErrorMsg("erremail")%><br>
<input type="submit" value="註冊">
<input type="reset" value="重置">
</form>
</body>
</html>
check.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>歡迎來到望星空</title></head>
<%
request.setCharacterEncoding("GBK");
%>
<jsp:useBean id="reg" scope="request" class="he.xiao.wei.Register"/>
<jsp:setProperty name="reg" property="*"/>
<body>
<%
if(reg.isValidate()){
%>
<jsp:forward page="success.jsp"/>
<%
}else{
%>
<jsp:forward page="index.jsp"/>
<%
}
%>
</body>
</html>
success.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<html>
<head><title>歡迎來到望星空</title></head>
<%
request.setCharacterEncoding("GBK");
%>
<jsp:useBean id="reg" scope="request" class="he.xiao.wei.Register"/>
<body>
用戶名:<jsp:getProperty name="reg" property="name"/><br>
年 齡:<jsp:getProperty name="reg" property="age"/><br>
E-MAIL:<jsp:getProperty name="reg" property="email"/><br>
</body>
</html>