用SSH来开发用户模块

这篇博客详细介绍了如何使用SSH框架进行用户模块的开发,包括开发准备、数据准备和注册功能的设计。在开发准备阶段,需要导入相关jar包并创建配置文件;在数据准备环节,设计了用户数据表;在设计注册功能时,不仅涉及前台js,还重点提到了后台代码及防止非法数据提交的拦截器实现。
摘要由CSDN通过智能技术生成

1.开发准备

1.1导入所需框架对应jar包


  友情连接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设计用户的数据表





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,以免重复激活)
/*
Navicat MySQL Data Transfer


Source Server         : mysql
Source Server Version : 50715
Source Host           : localhost:3306
Source Database       : upupgogogo


Target Server Type    : MYSQL
Target Server Version : 50715
File Encoding         : 65001


Date: 2017-10-19 13:39:55
*/


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', '1252078414@qq.com', '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]+@([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,点击注册来查看功能演示


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值