欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java网上商城项目第1篇之用户注册模块

程序员文章站 2024-03-09 13:26:55
本文为大家讲解了商城项目用户注册模块,供大家参考,先看看效果图: 1.前台js校验:  事件触发: onsubmit=”checkform()” 2.使...

本文为大家讲解了商城项目用户注册模块,供大家参考,先看看效果图:

java网上商城项目第1篇之用户注册模块

1.前台js校验:

 事件触发: onsubmit=”checkform()”

2.使用ajax完成异步用户名是否存在校验

①事件触发:onblur=”checkusername()”

②ajax

function checkusername(){
 var username = $("#username").val();
 $("#span1").load("${pagecontext.request.contextpath}/user_checkusername.action",{'username':username});
} 

3.后台struts2的数据校验

①.编写表单中的<form action=”${ pagecontext.request.contextpath }/user_regist.action”/>

②.在action中编写方法

③.完成数据校验:

在action所在包下创建一个类名-方法对应访问路径-validation.xml

useraction-user_regist-validation.xml

<?xml version="1.0" encoding="utf-8"?>
<!doctype validators public
  "-//apache struts//xwork validator 1.0.3//en"
  "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
<validators>
 <!-- name:要校验的字段名 -->
 <field name="username">
 <field-validator type="requiredstring">
  <message>用户名不能为空!</message>
 </field-validator>
 </field>
 
 <!-- name:要校验的字段名 -->
 <field name="password">
 <field-validator type="requiredstring">
  <message>密码不能为空!</message>
 </field-validator>
 </field>
 
 
 <!-- 校验邮箱 -->
 <field name="email">
 <field-validator type="email">
  <message>邮箱格式不正确!</message>
 </field-validator>
 </field>
 
 <!-- 校验电话 -->
 <field name="phone">
 <field-validator type="regex">
  <param name="regex"><![cdata[^15\d{9}$]]></param>
  <message>电话不合法</message>
 </field-validator>
 </field>
</validators>

4.发送激活邮件

① 引入两个包: activation.jarmail.jar

②userservice.java

/**
 * 注册用户的方法
 * @param user
 */
public void save(user user) {
 // 保存到数据库:
 user.setstate(0); // 0:未激活 1:已经激活
 string code = uuidutils.getuuid()+uuidutils.getuuid();
 user.setcode(code);
 userdao.save(user);
 // 发送一封激活邮件:
 mailutils.sendmail(user.getemail(), code);
}

③mailutils

/**
 * 发送邮件方法:
 */
public static void sendmail(string to,string code){
 properties props = new properties();
 props.setproperty("mail.smtp", "localhost");
 // 1.获得连接:
 session session = session.getinstance(props, new authenticator() {
 
 @override
 protected passwordauthentication getpasswordauthentication() {
  return new passwordauthentication("service@shop.com", "111");
 }
  
 });
 // 2.创建一个邮件的对象
 message message = new mimemessage(session);
 // 设置发件人:
 try {
 message.setfrom(new internetaddress("service@shop.com"));
 // 设置收件人:
 message.setrecipient(recipienttype.to, new internetaddress(to));
 // 设置主题:
 message.setsubject("来自itcastshop商城激活邮件");
 // 设置邮件正文:
 message.setcontent("<h1>来自itcastshop购物天堂的激活邮件</h1><h3><a href='http://192.168.30.123:8080/itcastshop/user_active.action?code="+code+"'>http://192.168.30.123:8080/itcastshop/user_active.action?code="+code+"</a></h3>", "text/html;charset=utf-8");
 // 发送邮件:
 transport.send(message);
 } catch (addressexception e) {
 e.printstacktrace();
 } catch (messagingexception e) {
 e.printstacktrace();
 }
}

5.用户激活

在邮箱中点击连接提交到action.
action中接收激活码:
按照激活码查询这个用户:
* 如果查询到了:
* 修改用户状态
* 如果没有用户:
* 激活失败:

/**
 * 用户激活的方法:
 */
public string active() {
 // 模型驱动会接收激活码:
 // 按照激活码查询用户 :
 user existuser = userservice.findbycode(user.getcode());
 if (existuser == null) {
 // 激活码篡改
 this.addactionmessage("激活失败:激活码被篡改了!");
 } else {
 // 激活:修改用户状态
 existuser.setstate(1);
 userservice.update(existuser);
 // 激活成功:
 this.addactionmessage("激活成功:请去登录!");
 }
 return "msg";
}

 github完整代码:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。