1.时序图
2.编写SysUserDao
SysUser selectByUserNameOrMobile(String um) throws SQLException;
3.编写SysUserDaoImpl
@Override
public SysUser selectByUserNameOrMobile(String um) throws SQLException {
Connection conn = JDBCUtils.getConn();
String sql = "select * from sys_user where username = ? or mobile = ?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1,um);
ps.setString(2,um);
ResultSet rs = ps.executeQuery();
if(rs.next()){
SysUser sysUser = new SysUser();
sysUser.setId(rs.getString("id"));
sysUser.setUsername(rs.getString("username"));
sysUser.setMobile(rs.getString("mobile"));
sysUser.setPassword(rs.getString("password"));
sysUser.setZhuceTime(rs.getString("zhuce_time"));
return sysUser;
}
return null;
}
4.编写SysUserService
SysUser login(String um,String password);
5.编写SysUserServiceImpl
@Override
public SysUser login(String um, String password) {
try {
SysUser sysUser = sysUserDao.selectByUserNameOrMobile(um);
if(sysUser==null){
throw new RuntimeException("用户名或手机号不存在");
}else{
if(!sysUser.getPassword().equals(password)){
throw new RuntimeException("密码不对");
}else{
return sysUser;
}
}
} catch (SQLException throwables) {
throwables.printStackTrace();
throw new RuntimeException("网络异常,请稍后重试!");
}
}
6.编写DoLoginServlet
@WebServlet("/sysUser/doLogin")
public class DoLoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req,resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html;charset=utf-8");
PrintWriter out = resp.getWriter();
String um = req.getParameter("um");
String password = req.getParameter("password");
SysUserService sysUserService = new SysUserServiceImpl();
try {
SysUser sysUser = sysUserService.login(um, password);
out.print("系统首页,登录成功,欢迎您:"+sysUser.getUsername());
} catch (RuntimeException e) {
e.printStackTrace();
req.setAttribute("msg",e.getMessage());
req.getRequestDispatcher("/WEB-INF/sysuser/login.jsp").forward(req,resp);
} catch (Exception e){
e.printStackTrace();
req.setAttribute("msg","系统异常");
req.getRequestDispatcher("/WEB-INF/sysuser/login.jsp").forward(req,resp);
}
}
}
7.编写login.jsp
<body>
<h3>登录页面</h3>
<form action="/sysUser/doLogin" method="post">
用户名:<input type="text" name="um" value="${param.um}"><br>
密码:<input type="password" name="password" value="${param.password}"><br>
<input type="submit" value="登录"> <span style="color: #ff0000">${msg}</span><br>
</form>
</body>
</html>
8.编写LoginServlet
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
req.getRequestDispatcher("/WEB-INF/sysuser/login.jsp").forward(req,resp);
}
9.目录结构