天天看点

用SSH来开发用户模块1.开发准备2.数据准备3.设计注册功能

1.开发准备

1.1导入所需框架对应jar包

用SSH来开发用户模块1.开发准备2.数据准备3.设计注册功能

  友情连接https://github.com/OMGye/upupgogogo/tree/master/WebRoot/WEB-INF/lib

1.2新建框架所需配置文件(和三大框架沟通的桥梁)

第一步:由于采用的是struts2而不是servlet,我们需要把action的类名,方法名,返回值写在struts配置文件中 第二步:spring的核心有两大块,一是ioc(控制反转),我们把数据库的连接,以及用户模块每一层的对象都交给application配置文件来管理,包括action对象,但是action对象必须是多例的,二是aop(面向切面编程),我们需要配置处理数据的事务问题。 第三步:web.xml是实现整个项目的与服务器的连接,所以我们需要把struts和application配置文件配置在web.xml中,可以让服务器识别action以及在服务器启动的时候能够初始化application配置文件。

2.数据准备

2.1设计用户的数据表

用SSH来开发用户模块1.开发准备2.数据准备3.设计注册功能
用SSH来开发用户模块1.开发准备2.数据准备3.设计注册功能
用SSH来开发用户模块1.开发准备2.数据准备3.设计注册功能

hibernate用面向对象的思想来操作数据库,通过编写javabean和相应的user.hbm.xml配置文件来创建数据表,并产生一一对应的关系,我这里编写的配置文件为了方便,属性的大小都是采用缺省值,这里是不可取的。配置一一对应的关系时,我们也要设置其大小,提高可扩展性和避免造成内存的浪费。 下面来介绍一下每个字段 1.date和redate(时间戳) ---->创建时间和修改时间 2.uid(primary key ,not null) ----> 用户id 3.email ---->邮箱,这里用来当作username 4.birthday ---->出生日期 5.state ---->用户状态(因为这里注册的用户需要通过邮件激活,以0,1的数据来展示其状态) 6.code ---->激活码(每个用户注册时都会通过UUID来生成一个唯一的激活码,激活后的用户激活码便变为null,以免重复激活)

SET FOREIGN_KEY_CHECKS=0;

-- ----------------------------

-- Table structure for `user`

-- ----------------------------

DROP TABLE IF EXISTS `user`;

CREATE TABLE `user` (

  `uid` int(11) NOT NULL AUTO_INCREMENT,

  `email` varchar(255) DEFAULT NULL,

  `password` varchar(255) DEFAULT NULL,

  `birthday` datetime DEFAULT NULL,

  `date` datetime DEFAULT NULL,

  `redate` datetime DEFAULT NULL,

  `state` int(11) DEFAULT NULL,

  `code` varchar(255) DEFAULT NULL,

  PRIMARY KEY (`uid`)

) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;

-- ----------------------------

-- Records of user

-- ----------------------------

INSERT INTO `user` VALUES ('5', '[email protected]', '147258', '2017-10-18 00:00:00', '2017-10-18 11:49:33', '2017-10-18 11:49:33', '1', null);

3.设计注册功能

3.1前台页面的js设计

我们设计好页面之后,需要对表单里面的文本框进行js的检测,首先email的通过正则表达式检测是否格式正确,密码和重复密码是否一致,密码位数是否大于等于6

3.2后台代码设计

后台我们按照mvc的模式编写好每一层的代码,还有我们需要通过ajax来检测用户名(emali)是否已经存在  function checkEmail(){

    var email = document.getElementById("email").value;

var myreg = /^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9][email protected]([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/;

if(!myreg.test(email)){

      document.getElementById('tip').innerHTML = "邮箱格式不正确";        

        return false;

      }

      // 1.创建异步交互对象

var xhr = createXmlHttp();

// 2.设置监听

xhr.onreadystatechange = function(){

if(xhr.readyState == 4){

if(xhr.status == 200){

document.getElementById("tip").innerHTML = xhr.responseText;

}

}

}

// 3.打开连接

xhr.open("GET","${pageContext.request.contextPath}/user_findByEmail.action?time="+new Date().getTime()+"&email="+email,true);

// 4.发送

xhr.send(null);

}

function createXmlHttp() {

      var xmlHttp;

  try{ // Firefox, Opera 8.0+, Safari

       xmlHttp=new XMLHttpRequest();

   }

   catch (e){

  try{// Internet Explorer

        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");

     }

   catch (e){

     try{

        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");

     }

     catch (e){}

     }

   }

return xmlHttp;

}

除了前台页面的提醒,我们还需要编写一个拦截器来避免用户提交过来的数据格式不正确。

3.3邮箱的验证 我们保存好用户传递过来的数据的同时,我们还需要去通过163的邮箱服务器(用其他的邮箱服务器也可以)来发送激活邮件修改用户状态和激活码(初始状态为0).java提供了已经封装好了mail.jar来操作邮箱服务器,当用户到自己邮箱中点击激活链接之后便修改了状态的激活码

邮箱服务链接https://github.com/OMGye/upupgogogo/blob/master/src/com/upupgogo/util/MailUtil.java 可以通过访问www.chaoaiyue.cn,点击注册来查看功能演示