1、MVC开发模式(web开发模式):
M:model-------javabean(封装数据)
V:view----------jsp(显示数据)
C:controller----servlet(获取数据)
2、javaee的三层架构(javaee开发):
web层:与客户端交互
service层:复杂的业务处理
dao层:与数据库交互
3、工程结构:
4、三层架构:
web层:
protected voiddoPost(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response) throws javax.servlet.ServletException, IOException {
HttpSession httpSession=request.getSession();
String username=request.getParameter("username");//从表单获取数据,并作为形式参数传递到login函数中
String password=request.getParameter("password");
UserService userService=newUserService();
User user=userService.login(username,password);//从service层获取user信息,该信息是从数据库中查询的
if(user!=null){
httpSession.setAttribute("user",user);//失败的话,重定向到首页
response.sendRedirect(request.getContextPath()+"/main.jsp");
response.getWriter().write("ni hao");
}else{
request.setAttribute("logerrorinf","用户名或密码错误") ;
request.getRequestDispatcher("/index.jsp").forward(request,response);
}
创建Servlet从表单获取用户信息,并将此信息作为参数传递到service层。
service层:
public classUserService {public User login(String username, String password) {//返回dao层的user信息
UserDao userDao=newUserDao();returnuserDao.login(username,password);
}
}
将参数传递到dao层,并将冲数据库中查询的值返回给web层。便于web层对是否登录成功进行校验。
dao层:
public classUserDao {public User login(String username, String password) {//返回查找到的符合条件的用户
Connection con=null;
User user= null;try{
con=C3p0Utils.getConnection();
QueryRunner qr= newQueryRunner();
String sql= "Select * from login where account=? and password=?";
Object[]select ={username,password};return qr.query(con, sql, new BeanHandler((User.class)), select);
}catch(SQLException e) {throw newRuntimeException(e);
}
}
查询是否有符合条件的用户,将结构封装到Javabean中,并返回查询结果。
index.jsp
login
登录
用户名:
密码 :
${requestScope.logerrorinf}
该jsp页面主要实现登录功能,为Servlet提供用户数据,并运用EL从request域中获取值。
main.jsp:
main
你好,${sessionScope.user.getAccount()}
该jsp实现了登录成功后的显示功能,并从session域中获得用户的账户名称。
5、效果:
初始界面:
登录失败界面:
登录成功界面:
如果觉得《java三层架构实现登录_用户登录——三层架构》对你有帮助,请点赞、收藏,并留下你的观点哦!