简单的服务端登录注册校验
前端校验
前面,我们实现了一个前端界面校验(可点击上面链接查看)
但是一个项目,单有前端校验还是不行的
如果直接在链接上通过Servlet访问,还是可能存在没有校验的情况出现
所以还需要在服务端进行校验
下面,就以注册为例,实现一个服务端校验
StringBuffer sb=new StringBuffer(); //设置一个字符缓冲区
if(username==null||"".equals(username.trim())) {
sb.append("用户不能为空!"); //将要显示的内容存入字符缓冲区
}
if(password==null||"".equals(password.trim())) {
sb.append("密码不能为空!");
}
if(password_confirm==null||"".equals(password_confirm.trim())) {
sb.append("密码不能为空!");
}else {
if(!password_confirm.equals(password)) {
sb.append("两次密码输入不一致");
}
}
if(realname==null||"".equals(realname.trim())) {
sb.append("真实姓名不能为空!");
}
if(cardtype==null||"".equals(cardtype)) {
sb.append("证件类型不能为空!");
}
if(cardcode==null||"".equals(cardcode.trim())) {
sb.append("证件号不能为空!");
}
//判断字符缓冲区是否有内容,当字符缓冲区有内容的时候,说明有某个地方没有通过验证
if(sb.length()>0) {
try {
request.setAttribute("mess", sb.toString()); //设置在界面显示
request.getRequestDispatcher("register.jsp").forward(request, response); //验证不通过,返回原界面
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
//判断用户名是否与数据库中的内容重复,重复说明该用户名已存在
if(UsersService.getInstance().isExists(username)) {
try {
request.setAttribute("mess", "用户名不能重复!!");
request.getRequestDispatcher("register.jsp").forward(request, response);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else {
//如果验证没问题,跳转到登录界面
Users users=new Users(username,password,realname,sex,Integer.parseInt(cardtype),cardcode,Integer.parseInt(usertype),content);
UsersService usersService=UsersService.getInstance();
usersService.register(users);
try {
request.getRequestDispatcher("login.jsp").forward(request, response);
} catch (ServletException | IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
还没有评论,来说两句吧...