判断注册用formbean
RegisterFormBean.java
package com.formbean;
import java.util.HashMap;
import java.util.Map;
/**
* 自定义formbean验证框架
* 验证注册输入无误
* @author HouYong
*
*/
public class RegisterFormBean {
private String username;
private String password;
private String password1; //重复密码
private String email;
private Map<String, String> errorMap = new HashMap<String, String>();
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPassword1() {
return password1;
}
public void setPassword1(String password1) {
this.password1 = password1;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public Map<String, String> getErrorMap() {
return errorMap;
}
public void setErrorMap(Map<String, String> errorMap) {
this.errorMap = errorMap;
}
public boolean registerVerify()
{
//判断用户名输入框
if(username==null || "".equals(username.trim()))
{
errorMap.put("username", "用户名不能为空");
}else if(!username.matches("[a-zA-Z]{3,8}"))
{
errorMap.put("username", "用户名必须是3~8位的字母");
}
//判断密码输入框
if(password==null || "".equals(password.trim()))
{
errorMap.put("password", "密码不能为空");
}else if(!password.matches("[0-9a-zA-Z]{3,16}"))
{
errorMap.put("password", "密码必须是3-16位数字或字母");
}
//两次密码比较
if(!password.equals(password1))
{
errorMap.put("password1", "前后两次密码不一样");
}
//验证邮箱,有些复杂
if(email==null || "".equals(email.trim()))
{
errorMap.put("email", "邮箱不能为空");
}
else if(!email.matches("\\w+@\\w+(.\\w+)+"))
{
errorMap.put("email", "请输入正确的邮箱");
}
return errorMap.isEmpty();
}
}
因此在servlet中有如下部分代码:
ServletPage.java
/**
* 注册新的数据项
*/
if(parameter.equals("register"))
{
String username = request.getParameter("username");
String password = request.getParameter("password");
String password1 = request.getParameter("password1");
String email = request.getParameter("email");
RegisterFormBean formBean = new RegisterFormBean();
formBean.setUsername(username);
formBean.setPassword(password);
formBean.setPassword1(password1);
formBean.setEmail(email);
if(!formBean.registerVerify())
{
request.setAttribute("registerFormBean", formBean);
request.getRequestDispatcher("register.jsp").forward(request, response);
}
else
{
Users users = new Users();
users.setUsername(username);
users.setPassword(password);
users.setEmail(email);
IUserBizImpl impl = new IUserBizImpl();
if(impl.insertUser(users))
{
out.println("注册成功");
}
else {
out.println("注册失败");
}
}
}
对应jsp部分代码:
register.jsp
<body>
注册界面. <br>
<form action="ServPge?parameter=register" method="post" >
名字:<input type="text" name="username" />
<%
if(request.getAttribute("registerFormBean")!=null)
{
if(!"".equals(((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("username")))
{
out.print(((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("username") );
}
else
{
out.print(" ");
}
}
%>
<br>
密码:<input type="text" name="password" />
<%
if(request.getAttribute("registerFormBean")!=null)
{
if( !"".equals(((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("password")))
{
out.print( ((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("password") );
}
else
{
out.print(" ");
}
}
%>
<br>
确认:<input type="text" name="password1" />
<%
if(request.getAttribute("registerFormBean")!=null)
{
if( !"".equals(((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("password1")))
{
out.print( ((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("password1") );
}
else
{
out.print(" ");
}
}
%>
<br>
邮箱:<input type="text" name="email" />
<%
if(request.getAttribute("registerFormBean")!=null)
{
if( !"".equals(((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("email")))
{
out.print( ((RegisterFormBean)request.getAttribute("registerFormBean")).getErrorMap().get("email") );
}
else
{
out.print(" ");
}
}
%>
<br>
<input type="submit" value="注册" />
</form>
</body>