文章目录
前言
昨天我们做了这个项目的前期准备工作,今天就让我们来看看业务代码的开发吧
二、业务代码
1.注册业务处理
1. Controller层处理
在SysUserController中接收用户注册请求的业务处理方法:
SysUserController代码:
package com.fire.schedule.controller;
import com.fire.schedule.pojo.SysUser;
import com.fire.schedule.service.SysUserService;
import com.fire.schedule.service.impl.SysUserServiceImpl;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/user/*")
public class SysUserController extends BaseContoller {
private SysUserService userService =new SysUserServiceImpl();
/**
* 接收用户注册请求的业务处理方法( 业务接口 不是java中的interface )
* @param req
* @param resp
* @throws ServletException
* @throws IOException
*/
protected void regist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
// 1 接收客户端提交的参数
String username = req.getParameter("username");
String userPwd = req.getParameter("userPwd");
// 2 调用服务层方法,完成注册功能
//将参数放入一个SysUser对象中,在调用regist方法时传入
SysUser sysUser =new SysUser(null,username,userPwd);
int rows =userService.regist(sysUser);
// 3 根据注册结果(成功 失败) 做页面跳转
if(rows>0){
resp.sendRedirect("/registSuccess.html");
}else{
resp.sendRedirect("/registFail.html");
}
}
}
2.service层处理
SysUserServiceImpl用户完成注册的业务方法
SysUserService代码:
package com.fire.schedule.service;
import com.fire.schedule.pojo.SysUser;
public interface SysUserService {
/**
* 用户完成注册的业务方法
* @param registUser 用于保存注册用户名和密码的对象
* @return 注册成功返回>0的整数,否则返回0
*/
int regist(SysUser registUser);
}```
SysUserServiceImpl代码:
package com.fire.schedule.service.impl;
import com.fire.schedule.dao.SysUserDao;
import com.fire.schedule.dao.impl.SysUserDaoImpl;
import com.fire.schedule.pojo.SysUser;
import com.fire.schedule.service.SysUserService;
import com.fire.schedule.util.MD5Util;
public class SysUserServiceImpl implements SysUserService {
private SysUserDao userDao =new SysUserDaoImpl();
@Override
public int regist(SysUser sysUser) {
// 将用户的明文密码转换为密文密码
sysUser.setUserPwd(MD5Util.encrypt(sysUser.getUserPwd()));
// 调用DAO 层的方法 将sysUser信息存入数据库
return userDao.addSysUser(sysUser);
}
}
3.dao层处理
SysUserDao代码:
package com.fire.schedule.dao;
import com.fire.schedule.pojo.SysUser;
public interface SysUserDao {
/**
* 向数据库中增加一条用户记录的方法
* @param sysUser 要增加的记录的username和user_pwd字段以SysUser实体类对象的形式接收
* @return 增加成功返回1 增加失败返回0
*/
int addSysUser(SysUser sysUser);
}
SysUserDaoImpl代码:
package com.fire.schedule.dao.impl;
import com.fire.schedule.dao.BaseDao;
import com.fire.schedule.dao.SysUserDao;
import com.fire.schedule.pojo.SysUser;
public class SysUserDaoImpl extends BaseDao implements SysUserDao {
@Override
public int addSysUser(SysUser sysUser) {
String sql ="insert into sys_user values(DEFAULT,?,?)";
return baseUpdate(sql,sysUser.getUsername(),sysUser.getUserPwd());
}
}
以上就是注册业务的实现了,下面来看看登录业务的实现吧
2.登录业务实现
这里我将注册业务的代码也复制了进来,方便大家进行学习
1. Controller层处理
SysUserController代码:
package com.fire.schedule.controller;
import com.fire.schedule.pojo.SysUser;
import com.fire.schedule.service.SysUserService;
import com.fire.schedule.service.impl.SysUserServiceImpl;
import com.fire.schedule.util.MD5Util;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/user/*")
public class SysUserController extends BaseController{
private SysUserService userService = new SysUserServiceImpl();
protected void regist(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
String userPwd = req.getParameter("userPwd");
SysUser sysUser = new SysUser(null,username,userPwd);
int row = userService.regist(sysUser);
if (row > 0) {
resp.sendRedirect("/registSuccess.html");
}else {
resp.sendRedirect("/registFail.html");
}
}
protected void login(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//1 接收用户名和密码
String username = req.getParameter("username");
String userPwd = req.getParameter("userPwd");
//2 调用服务层方法,根据用户名查询用户信息
SysUser loginUser =userService.findByUsername(username);
if(null == loginUser){
// 跳转到用户名有误提示页
resp.sendRedirect("/loginUsernameError.html");
}else if(! MD5Util.encrypt(userPwd).equals(loginUser.getUserPwd())){
//3 判断密码是否匹配
// 跳转到密码有误提示页
resp.sendRedirect("/loginUserPwdError.html");
}else{
//4 跳转到首页
resp.sendRedirect("/showSchedule.html");
}
}
}
2.service层处理
SysUserService代码:
package com.fire.schedule.service;
import com.fire.schedule.pojo.SysUser;
public interface SysUserService {
int regist(SysUser sysUser);
/**
* 根据用户名获得完整用户信息的方法
* @param username 要查询的用户名
* @return 如果找到了返回SysUser对象,找不到返回null
*/
SysUser findByUsername(String username);
}
SysUserServicelmpl代码:
package com.fire.schedule.service.impl;
import com.fire.schedule.dao.SysUserDao;
import com.fire.schedule.dao.impl.SysUserDaoImpl;
import com.fire.schedule.pojo.SysUser;
import com.fire.schedule.service.SysUserService;
import com.fire.schedule.util.MD5Util;
public class SysUserServiceImpl implements SysUserService {
private SysUserDao userDao = new SysUserDaoImpl();
@Override
public int regist(SysUser sysUser) {
// 将用户的明文密码转换为密文密码
sysUser.setUserPwd(MD5Util.encrypt(sysUser.getUserPwd()));
// 调用DAO 层的方法 将sysUser信息存入数据库
return userDao.addSysUser(sysUser);
}
@Override
public SysUser findByUsername(String username) {
// 调用服务层方法,继续查询
return userDao.findByUsername(username);
}
}
3.dao层处理
SysUserDao代码:
package com.fire.schedule.dao;
import com.fire.schedule.pojo.SysUser;
public interface SysUserDao {
/**
* 向数据库中增加一条用户记录的方法
* @param sysUser 要增加的记录的username和user_pwd字段以SysUser实体类对象的形式接收
* @return 增加成功返回1 增加失败返回0
*/
int addSysUser(SysUser sysUser);
/**
* 根据用户名获得完整用户信息的方法
* @param username 要查询的用户名
* @return 如果找到了返回SysUser对象,找不到返回null
*/
SysUser findByUsername(String username);
}
SysUserDaolmpl代码:
package com.fire.schedule.dao.impl;
import com.fire.schedule.dao.BaseDao;
import com.fire.schedule.dao.SysUserDao;
import com.fire.schedule.pojo.SysUser;
import java.util.List;
public class SysUserDaoImpl extends BaseDao implements SysUserDao {
@Override
public int addSysUser(SysUser sysUser) {
String sql ="insert into sys_user values(DEFAULT,?,?)";
return baseUpdate(sql,sysUser.getUsername(),sysUser.getUserPwd());
}
@Override
public SysUser findByUsername(String username) {
String sql ="select uid,username, user_pwd userPwd from sys_user where username = ?";
List<SysUser> userList = baseQuery(SysUser.class, sql, username);
return null != userList&& userList.size()>0? userList.get(0):null;
}
}
三、功能检验
1.注册功能检验
当username和数据库中有相同的时出跳转以下页面:
当注册成功时会跳转下面页面:
并且数据库中会成功添加:
2.登录功能检验
当密码有误时,会跳转下面页面:
当用户名有误时,会跳转下面页面:
登录成功:
总结
例如:以上就是今天要讲的内容,本文对一个对实现登录注册业务的小项目进行讲解剖析,希望大家能够从中间学到东西,最后感谢大家的观看,我们下期再见哦