Java Web开发如何在注册和登录时对用户名和密码进行验证?

1 注册时,对注册的手机号和密码验证:

手机号码为常用的移动,联通,电信号

密码为数字和字母的组合,切长度不能少于8位

方案

在提交注册信息时,用Ajax提交手机号和密码到Servlet进行验证

代码如下:

  


 
     
public class RegisterCheckServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = -3093243729636232148L;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String userPhone = req.getParameter("userPhone");
		String phone_exp = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";
		String userPwd = req.getParameter("userPwd");
		String password_exp = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{8,16}$";
		if(userPhone.matches(phone_exp)){
			if(userPwd.matches(password_exp)){
				resp.getWriter().write("cuccess");
			}else{
				resp.getWriter().write("password is wrong");
			}
		}else{
			resp.getWriter().write("phone is wrong");
		}
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}

2 登录时,验证手机号是否已注册,密码是否正确,验证码是否正确

方案

和注册时一样,登录时也是使用Ajax提交数据到Servlet进行验证

代码如下:

点击刷新
登录即表示同意《注册协议》


function checkCodePost(){
			var code2=$("#code2").val();
			var userphone=$("#userphone").val();
			var password=$("#password").val();
			$.post("login_check.do",
					{
						code1:code2,
						userphone:userphone,
						password:password
					},
					function(data,status){
						console.log(data);
						if("cuccess"==data){
							$("form").submit();
						}else if("password is wrong"==data){
							alert("密码错误");
						}else if("this user is not exist"==data){
							alert("该用户不存在");
						}else{
							alert("验证码不对");
						}
					});
		}

public class LoginCheckServlet extends HttpServlet {
	/**
	 * 
	 */
	private static final long serialVersionUID = -7891104898799649898L;
	private IUserService service = new UserService();
	private String srcPhone;
	private String srcPwd;
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		String userPhone = req.getParameter("userphone");
		String passWord = req.getParameter("password");
		List userList = service.queryUserList(userPhone);
		for(UserBean user:userList){
			srcPhone = user.getUser_phone();
			srcPwd = user.getUser_password();
		}
		System.out.println(srcPhone+"----"+srcPwd);
		String code1 = req.getParameter("code1");
		String codeJ = new String(code1.getBytes("iso-8859-1"),"utf-8");
		String code_src=(String) req.getServletContext().getAttribute("code");
		if(srcPhone!=null){
			if(code_src.equals(codeJ)){
				if(srcPhone.equals(userPhone)&&srcPwd.equals(passWord)){
					resp.getWriter().write("cuccess");
				}else{
					resp.getWriter().write("password is wrong");
				}
			}else{
				resp.getWriter().write("code is error");
			}
		}else{
			resp.getWriter().write("this user is not exist");
		}
	}
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
		doGet(req, resp);
	}
}



你可能感兴趣的:(Java Web开发如何在注册和登录时对用户名和密码进行验证?)