9.注册用户功能(实现电子邮箱激活)
public void register(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException,
IllegalAccessException, InvocationTargetException {
// 封装user对象
Map<String, String[]> properties = request.getParameterMap();
User user = new User();
// 自定义类型转换器
// 参数1:类型转换器
// 参数2:要转换至的类型
ConvertUtils.register(new Converter() {
@Override
// 参数一:要转换成的类型
// 参数二:要转换的对象
public Object convert(Class arg0, Object arg1) {
// TODO Auto-generated method stub
// 将字符串转data
System.out.println(arg0);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
try {
return sdf.parse(arg1.toString());
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}, Date.class);
// 封装属性
BeanUtils.populate(user, properties);
// 校验验证码
if (request.getParameter("code").equals(
request.getSession().getAttribute("sRand"))) {
boolean result = us.addUser(user);
// code与uid一致 方便验证
String emailMsg = "恭喜您注册成功,请点击下面的连接进行激活账户"
+ "<a href='http://localhost:8081/ShopStore/user?method=validate&&activeCode="
+ user.getCode() + "'>"
+ "http://localhost:8081/ShopStore/login.jsp</a>";
if (result) {
try {
MailUtils.sendMail(user.getEmail(), emailMsg);
response.sendRedirect("/ShopStore/registerSuccess.jsp");
} catch (Exception e) {
// 发送失败
response.sendRedirect("/ShopStore/registerFail.jsp");
}
} else {
response.getWriter()
.println(
"<script>confirm('注册失败');location.href='/ShopStore/register.jsp';</script>");
}
}else{
response.setContentType("text/html;charset=UTF-8");
response.getWriter()
.println(
"<script>alert('succes哈哈哈');location.href='/ShopStore/register.jsp';</script>");
}
}
// 激活
public void validate(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException,
IllegalAccessException, InvocationTargetException {
String activeCode = request.getParameter("activeCode");
// 激活码与uid一致
us.updateState(activeCode);
response.sendRedirect("/ShopStore/login.jsp");
}