本文為大家講解了商城項目用戶註冊模塊,供大家參考,先看看效果圖:
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("[email protected]", "111"); } }); // 2.創建一個郵件的對象Message message = new MimeMessage(session); // 設置發件人: try { message.setFrom(new InternetAddress("[email protected]")); // 設置收件人: 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完整代碼:https://github.com/ganchuanpu/itcastshop
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。