
目录
1.编写前端页面
2.设置首页
<!-- 设置欢迎界面 -->
<welcome-file-list>
<welcome-file>/login.jsp</welcome-file>
</welcome-file-list>
3.编写dao层用户登录的接口
package com.kuang.dao.user;
import com.kuang.pojo.User;
import java.sql.Connection;
import java.sql.SQLException;
public interface UserDao {
public User getUser(Connection connection, String userCode) throws SQLException;
}
4.实现dao层接口的实现类
package com.kuang.dao.user;
import com.kuang.dao.BaseDao;
import com.kuang.pojo.User;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class UserDaoIml implements UserDao{
@Override
public User getUser(Connection connection,String userCode) throws SQLException {
PreparedStatement pstm=null;
ResultSet rs=null;
User user = null;
if (connection!=null){
String sql="select * from smbms_user where userCode = ?";
Object[] param={userCode};
rs = BaseDao.execute(connection, pstm, rs, sql, param);
if (rs.next()){
user=new User();
user.setId(rs.getInt("id"));
user.setUserCode(rs.getString("userCode"));
user.setUserName(rs.getString("userPassword"));
user.setGender(rs.getInt("gender"));
user.setBirthday(rs.getDate("birthday"));
user.setPhone(rs.getString("phone"));
user.setAddress(rs.getString("address"));
user.setUserRole(rs.getInt("userRole"));
user.setCreatedBy(rs.getInt("createBy"));
user.setCreationDate(rs.getDate("creationDate"));
user.setModifyBy(rs.getInt("modifyBy"));
user.setModifyDate(rs.getDate("modifyDate"));
}
BaseDao.closeResource(null,pstm,rs);
}
return user;
}
}
5.实现业务层接口
package com.kuang.service.user;
import com.kuang.pojo.User;
public interface UserService {
//用户登录
public User login(String userCode,String password);
}
6.实现业务层实现类
package com.kuang.service.user;
import com.kuang.dao.BaseDao;
import com.kuang.dao.user.UserDao;
import com.kuang.dao.user.UserDaoIml;
import com.kuang.pojo.User;
import org.junit.Test;
import java.sql.Connection;
import java.sql.SQLException;
public class UserServiceIml implements UserService {
private UserDao userDao;
//业务层都会调用dao层,所以要引入dao层
public UserServiceIml(){
userDao=new UserDaoIml();
}
@Override
public User login(String userCode, String password) {
Connection connection=null;
User user=null;
try {
connection= BaseDao.getConnection();
//通过业务层调用对应的具体的数据库操作
user= userDao.getUser(connection,userCode);
} catch (SQLException e) {
e.printStackTrace();
}finally {
BaseDao.closeResource(connection,null,null);
}
return user;
}
}
7.编写Servlet控制层
package com.kuang.servlet.user;
import com.kuang.pojo.User;
import com.kuang.service.user.UserService;
import com.kuang.service.user.UserServiceIml;
import com.kuang.util.Constants;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
public class LoginServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//servlet:控制层,调用业务层的代码
System.out.println("LoginServlet--->start......");
//获取用户名和密码
String userCode = req.getParameter("userCode");
String userPassword = req.getParameter("userPassword");
//和数据库中的用户名密码对比,调用业务层
UserService userService = new UserServiceIml();
User user = userService.login(userCode, userPassword);//这里把登录的人查出来了
if (user!=null){//查有此人,可以登录
//将用户的信息放到session中
req.getSession().setAttribute(Constants.USER_SESSION,user);
//跳转到主页:重定向
resp.sendRedirect("jsp/frame.jsp");
}else {
//查无此人,无法登录
req.setAttribute("error","用户名或密码错误");
req.getRequestDispatcher("login.jsp").forward(req,resp);
}
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doGet(req, resp);
}
}
8.注册servlet
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.kuang.servlet.user.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/login.do</url-pattern>
</servlet-mapping>
该文章详细描述了如何构建一个用户登录系统,包括编写前端登录页面,设置欢迎页,设计DAO层接口及其实现,实现业务逻辑层,编写Servlet控制层以处理HTTP请求,以及注册Servlet并在测试中验证功能的正确性。
6453

被折叠的 条评论
为什么被折叠?



