开发者学堂课程【Java Web项目实战2:图书商城:用户模块之激活功能完成】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:
https://developer.aliyun.com/learning/course/35/detail/768用户模块之激活功能完成
内容介绍:
一、什么是模板
二、可变参数
三、占位符举例
四、 用户激活流程
五、按激活码查询
六、修改指定用户的指定状态
七、激活功能
一、什么是模板
包含了占位符的字符串就是模板!
二、 可变参数
需要指定模板中的占位符的值!有几个占位符就要提供几个参数。
例如:String s=Message.format (“{0}或{1}错误!“,”用户名“,”密码“);
——用户名或密码错误!
四、用户激活流程
UserServlet#active()
1.获取参数:激活码
2.使用激活码来调用 service#active(String code) 方法
>保存异常信息到 reqeust 中
>转发到 msg.jsp
3.保存激活成功信息到 reqeust 中
4.转发到 msg.jsp
UserService#active(String code)
1.使用 code 去查询数据库,得到 User 对象
>如果数据库返回的是 null ,抛出异常
2.查看用户的状态
> true : 抛出异常
>false : 修改用户的状态为 true
UserDao
1. User findByCode(String code)
2. void updateState(String uid, boolean state)
msg.jsp
public User findByCode(String code){
try {
String sql="select * from tb_user where code=?";
return qr.query(sql,new Beanhandler<User>(User.class),code);
} catch(SQLException e) {
throw new RuntimeExceptiop(e);
}
}
六、 修改指定用户的指定状态
* @param uid
* @param state
*/
public void updatestate(String uid, boolean state) (
try {
String sql = "update tb_user set state=? where uid=?";qr.update(sql,state,uid);
} catch(SQLException e) {
throw new RuntimeException(e)
;
}
}
}
七、激活功能
* @throws UserException
public void active(String code) throws UserException {
/*
*1.使用code查询数据库,得到user
User user = userDao.findByCode(code);
*2.如果user不存在,说明激活码错误
if(user==null)throw new UserException("激活码无效!");
*3.校验用户的状态是否为未激活状态,如果已激活,说明是二次激活,抛出异常
if(user.isstate())throw new UserException("您已经激活过了,不要再激活了");
*4.修改用户的状态
userDao.updatestate(user.getUid(),true);
*激活功能
* @param request
*@param response*
* @return
*@throws ServletException
* @throws IOException
*/
public String active(HttpServletRequest request,HttpservletResponse response)
throws ServletException,IOException {
*1.获取参数激活码
*2.调用service方法完成激活
*>保存异常信息到request域,转发到msg-jsp
*3.保存成功信息到xequest域,转发到msg-jsp
String code = request.getParameter("code");
try {
userService.active(code);
request.setAttribute("msg”,"恭喜,您激活成功了!请马上登录!");
} catch (UserException e) {
request.setAttribute("msg",e.getMessage());
}
return"f:/jsps";