`
cookieandsession
  • 浏览: 19356 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

服务器端表单检验(非检验框架实现)

    博客分类:
  • j2ee
阅读更多
public class RegisterForm {
	private String username;
	private String password;
	private String password2;
	private String email;
	private String birthday;
	private String nickname;
	
	private String client_checkcode;
	private String server_checkcode;
	
	private Map<String, String> errors = new HashMap<String, String>();

	
	//用户名不能为空,并且要是3-8位字母
	//密码不能为空,并且是3-8位数字
	//确认密码不能为空,并且要和一次一致
	//电子邮箱不能为空,并且要是一个格式合法的邮箱
	//生日可以为空,不为空时,必须要是一个日期
	//昵称不可以为空,并且要是汉字
	public boolean validate() {
		if (username == null || "".equals(username.trim())) {
			errors.put("username", "用户名不能为空");
			return false;
		} else {
			if (!username.matches("[a-zA-Z]{3,8}")) {
				errors.put("username", "用户名必须为3到8位字母");
				return false;
			}
		}
		
		if (password == null || "".equals(password.trim())) {
			errors.put("password", "密码不能为空");
			return false;
		} else {
			if(!password.matches("\\d{3,8}")) {
				errors.put("password", "密码必须为3到8位数字");
				return false;
			}
		}

		if (password2 == null || "".equals(password2.trim())) {
			errors.put("password2", "确认密码不能为空");
			return false;
		} else {
			if (!password2.equals(password)) {
				errors.put("password2", "两次密码必须一致");
				return false;
			}
		}
		
		if(email==null || "".equals(email.trim())) {
			errors.put("email", "邮箱不能为空");
			return false;
		} else {
			if(!email.matches("\\w+@\\w+[\\.\\w]+")) { //sabc@sina.com
				errors.put("email", "邮箱格式不正确");
				return false;
			}
		}
		
		if (birthday != null && !"".equals(birthday.trim())) {
			try {
				DateLocaleConverter dlc = new DateLocaleConverter();
				dlc.convert(birthday, "yyyy-MM-dd");
			} catch(Exception e) {
				errors.put("birthday", "日期格式不正确");
				return false;
			}
		}
		
		if (nickname == null || "".equals(nickname.trim())) {
			errors.put("nickname", "昵称不能为空");
			return false;
		} else {
			if (!nickname.matches("^([\u4e00-\u9fa5]+)$")) {
				errors.put("nickname", "昵称应为汉字");
				return false;
			}
		}
		
		if (client_checkcode == null || "".equals(client_checkcode.trim())) {
			errors.put("client_checkcode", "必须输入验证码");
			return false;
		} else {
			if (!server_checkcode.equals(client_checkcode)) {
				errors.put("client_checkcode", "验证码正确");
				return false;
			}
		}
		return true;
	}

	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 getPassword2() {
		return password2;
	}

	public void setPassword2(String password2) {
		this.password2 = password2;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getBirthday() {
		return birthday;
	}

	public void setBirthday(String birthday) {
		this.birthday = birthday;
	}

	public String getNickname() {
		return nickname;
	}

	public void setNickname(String nickname) {
		this.nickname = nickname;
	}
	
	public String getClient_checkcode() {
		return client_checkcode;
	}

	public void setClient_checkcode(String client_checkcode) {
		this.client_checkcode = client_checkcode;
	}

	public String getServer_checkcode() {
		return server_checkcode;
	}

	public void setServer_checkcode(String server_checkcode) {
		this.server_checkcode = server_checkcode;
	}

	public Map<String, String> getErrors() {
		return errors;
	}

	public void setErrors(Map<String, String> errors) {
		this.errors = errors;
	}
}
分享到:
评论

相关推荐

    Java EE常用框架.xmind

    热加载代表的是:我们不需要重启服务器,就能够类检测得到,重新生成类的字节码文件 无论是热部署或者是热加载、都是基于Java类加载器来完成的。 SpringBoot实现热部署 1、在plugin标签中加入插件 ...

    详解ABP框架的参数有效性验证和权限验证

    但是,服务器端的校验是更关键和不可缺失的(不要只做客户端检验而不做服务器端检验)。 服务器端的检验通常是被应用服务(层)执行,应用服务(层)中的方法首先检验数据的有效性,然后才使用这些通过验证的数据。ABP...

    基于J2EE框架的个人博客系统项目毕业设计论文(源码和论文)

    即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)...

    JavaScript完全自学宝典 源代码

    \ajaxmodel\src\bonze\AutoRefServlet.java 自动刷新网页的服务器端。 \ajaxmodel\src\bonze\ProcessServlet.java 显示进度条的服务器端。 第20章(\c20) 示例描述:学习JSON并介绍Ajax与JSON。 20.1....

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    风越.Net代码生成器 [FireCode Creator] V1.3 精简版

    09、支持对用户输入内容进行服务器端与客户端JS双重验证,有效防止SQL注入 ★ 10、支持自动生成多组多级的级联下拉框功能,快速建立如:省、市、县/公司、部门、小组等形式下拉框 ★ 11、支持表单提交超过100KB的...

    java源码包3

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 ...

    超实用的jQuery代码段

    8.3 加载网页文件内容并传递服务器端参数 8.4 使用AJAX刷新删除网页记录 8.5 使用AJAX异步验证用户名和密码 8.6 页面滚动时加载新的网页内容 8.7 打造自己的站内搜索引擎 8.8 异步加载并解析XML文件 8.9 动态加载...

    vial::test_tube:防锈的微型框架

    单个文件,服务器端应用程序? 你打赌! 快速编译? 是的,请! 点菜依赖? 现在你在说话! 这有点像野餐,播放列表都是90年代的音乐,您必须自带饮料。 和食物。 要了解更多信息,请继续阅读或访问以下链接之一...

    Hyperf 协程框架 v2.1.10

    Hyperf简介Hyperf 是基于 Swoole 4.4+ 实现的高性能、高灵活性的 PHP 协程框架,内置协程服务器及大量常用的组件,性能较传统基于 PHP-FPM 的框架有质的提升,提供超高性能的同时,也保持着极其灵活的可扩展性,标准...

    ASP.NET4高级程序设计第4版 带目录PDF 分卷压缩包 part1

    4.2.7 处理服务器端事件 4.3 Web控件 4.3.1 WebControl基类 4.3.2 基本的Web控件类 4.3.3 单位 4.3.4 枚举 4.3.5 颜色 4.3.6 字体 4.3.7 焦点 4.3.8 默认按钮 4.3.9 可滚动面板 4.3.10 处理...

    精通JavaScript

    服务器采用IIS5.1 或以上版本 数据库使用MS Access 2000以上 2.本书所附光盘实例代码: 第1章(\第1章) 查看1.2.htm中noscript显示效果的方法如下: 1.将该实例复制到C:\Inetpub\wwwroot下; 2.选择浏览器的...

    Servlet与JSP核心编程第2版

    JSP初学者用书 很不错的一本书 第1章 servlet和jsp技术概述 1.1 servlet的功用 ...19.8 服务器端图像映射 19.9 隐藏域 19.10 控件组 19.11 制表次序 19.12 用于调试的web服务器 附录 服务器的组织与结构

    AJAX基础概念、核心技术与典型案例(内涵动态实例)

    程序描述:本章将利用开源框架Prototype,讲述如何在网页中实现Windows关机效果,使读者对Prototype框架有进一步的认识。 /lightbox.html 仿Window关机效果 /lightbox.js JavaScript脚本文件 第23章...

    structs程序设计从入门到精通word文档

    11.1 在struts中用validator作服务器端验证 14 第12章 Struts HTML标签库 14 12.1 Struts中基本的HTML标签 14 12.1 Struts中表单处理的HTML标签 14 12.1 Struts中复选框和单选框的HTML标签 14 12.1 Struts下JSP页面...

    java源码包---java 源码 大量 实例

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    asp.net技术内幕(1)

    1.4.2 代码声明块 1.4.3 ASP.NET控件 1.4.4 代码显示块 1.4.5 服务器端注释 1.4.6 服务器端包含指令 1.4.7 文本和HTML标记 1.5 小结 &lt;br&gt;第2章 用Web服务器控件建立表单 &lt;br&gt;...

Global site tag (gtag.js) - Google Analytics