//查询出指定名称的用户是否存在
List users = userDao.selectUserByCondition(userTemp);
if (users.size() <= 0) {
throw new RuntimeException(“用户名不存在”);
}
User userInDB = users.get(0);
//比较加密后的密码是否一致
if (MD5Util.encode(user.getPassword(), userInDB.getSalt()).equals(userInDB.getPassword())) {
return userInDB;
} else {
throw new RuntimeException(“密码不正确”);
}
}
}
UserServiceImpl中实现用户注册成功时,发送激活邮件功能。
public class UserServiceImpl implements UserService {
private UserDao userDao = new UserDaoImpl();
@Override
public void regist(User user) throws SQLException {
//保存用户信息到数据库
int insertUserRes = userDao.insertUser(user);
if (insertUserRes >= 1) {
//3.发送激活码到邮箱
String subject = “来自微风商城的激活邮箱”;
String content = “点击如下连接激活账户,如果不能点击请复制到浏览器地址栏访问:http://www.wego.com/userServlet?op=active&code=检验码”;
EmailUtil.send(user.getEmail(), subject, content);
} else {
throw new RuntimeException(“用户注册失败”);
}
}
@WebServlet(urlPatterns = “/userServlet”)
public class UserServlet extends HttpServlet {
private UserService userService = new UserServiceImpl();
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String op = request.getParameter(“op”);
switch (op) {
case “regist”:
try {
regist(request, response);
} catch (InvocationTargetException | IllegalAccessException | SQLException e) {
e.printStackTrace();
}
break;
case “login”:
try {
login(request,response);
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (SQLException throwables) {
throwables.printStackTrace();
}
break;
default:
break;
}
}
private void login(HttpServletRequest request,HttpServletResponse response) throws IllegalAccessException, InvocationTargetException, SQLException, ServletException, IOException {
//获取用户名和密码
User user = new User();
BeanUtils.populate(user, request.getParameterMap());
user = userService.login(user);
if(user == null){
request.setAttribute(“msg”, “用户名或密码不正确!”);
request.getRequestDispatcher(“/login.jsp”).forward(request, response);
return;
}
// 检查用户激活状态
if(user.getStatus() == 0){
request.setAttribute(“msg”, “用户尚未激活,请到邮箱中进行激活!”);
request.getRequestDispatcher(request.getContextPath()+“/login.jsp”).forward(request, response);
return;
}
request.getSession().setAttribute(“user”,user);//将用户信息添加到Session中
//重定向到主页
response.sendRedirect(request.getContextPath()+“/index.jsp”);
}
/**
-
用户注册
-
@param request
-
@param response
-
@throws ServletException
-
@throws IOException
*/
private void regist(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, InvocationTargetException, IllegalAccessException, SQLException {
//1.校验验证码
String verifyCode = request.getParameter(“verifyCode”);
String verifyCode0 = request.getSession().getAttribute(“verifyCode”).toString();
if (verifyCode == null || verifyCode0 == null || !verifyCode.equalsIgnoreCase(verifyCode0)) {
request.setAttribute(“msg”, “验证码不正确!”);
request.getRequestDispatcher(“/regist.jsp”).forward(request, response);
return;
}
//2.封装校验数据
User user = new User();
BeanUtils.populate(user, request.getParameterMap());
//3.调用Service注册用户
userService.regist(user);
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://img-blog.csdnimg.cn/img_convert/1fc8b47b1b743ec70b7afa0f7e5e064f.jpeg)
最后
技术是没有终点的,也是学不完的,最重要的是活着、不秃。零基础入门的时候看书还是看视频,我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取。
我觉得成年人,何必做选择题呢,两个都要。喜欢看书就看书,喜欢看视频就看视频。最重要的是在自学的过程中,一定不要眼高手低,要实战,把学到的技术投入到项目当中,解决问题,之后进一步锤炼自己的技术。
技术学到手后,就要开始准备面试了,找工作的时候一定要好好准备简历,毕竟简历是找工作的敲门砖,还有就是要多做面试题,复习巩固。有需要面试题资料的朋友点击这里可以免费领取。
[外链图片转存中…(img-2JSI4AVV-1712379372055)]