**功能一:用户注册功能**
1. 可以先判断登录名是否已经存在
2. 要给密码使用MD5进行加密操作
1、导入md5工具类
package com.louis.utils; import java.math.BigInteger; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; public class MD5Utils { /** * 使用md5的算法进行加密 */ public static String md5(String plainText) { byte[] secretBytes = null; try { secretBytes = MessageDigest.getInstance("md5").digest( plainText.getBytes()); } catch (NoSuchAlgorithmException e) { throw new RuntimeException("没有md5这个算法!"); } String md5code = new BigInteger(1, secretBytes).toString(16);// 16进制数字 // 如果生成数字未满32位,需要前面补0 for (int i = 0; i < 32 - md5code.length(); i++) { md5code = "0" + md5code; } return md5code; } public static void main(String[] args) { System.out.println(md5("123")); } }
com.louis.web.action
/** * 注册功能 * @return */ public String regist(){ userService.save(user); return LOGIN; }
/crm/src/com/louis/service/UserServiceImpl.java
/** * 保存用户,密码需要加密 */ public void save(User user) { String pwd = user.getUser_password(); // 给密码加密 user.setUser_password(MD5Utils.md5(pwd)); // 用户的状态默认是1状态 user.setUser_state("1"); // 调用持久层 userDao.save(user); }
/crm/src/com/louis/dao/UserDaoImpl.java
/** * 保存用户 */ public void save(User user) { this.getHibernateTemplate().save(user); }
/crm/src/struts.xml
<!-- 配置全局的结果页面 --> <global-results> <result name="login" type="redirect">/login.jsp</result> </global-results>
/crm/WebContent/WEB-INF/web.xml
<!-- 程序出现了500的异常,跳转到error.jsp的页面 --> <error-page> <error-code>500</error-code> <location>/jsp/error.jsp</location> </error-page>
问题
service上为什么要加@transactional