web12(三层架构集成)

创建实体类(分层实现用户登录)

package com.zking.pojo;
/**
 * 用户实体类
 * @author zjjt
 *
 */
 
public class User {
 
    private Integer userId;
    private String userName;
    private String userPwd;
 
    public Integer getUserId() {
        return userId;
    }
 
    public void setUserId(Integer userId) {
        this.userId = userId;
    }
 
    public String getUserName() {
        return userName;
    }
 
    public void setUserName(String userName) {
        this.userName = userName;
    }
 
    public String getUserPwd() {
        return userPwd;
    }
 
    public void setUserPwd(String userPwd) {
        this.userPwd = userPwd;
    }
 
    public User() {
    }
 
    public User(Integer userId, String userName, String userPwd) {
        this.userId = userId;
        this.userName = userName;
        this.userPwd = userPwd;
    }
 
}

编写数据访问层

接口 

package com.zking.dao;
 
import com.zking.pojo.User;
/**
 * 用户的数据访问接口
 * @author zjjt
 *
 */
public interface IUserDao {
    User login(User user);
   
}

实现接口 

package com.zking.dao.impl;
 
import com.zking.dao.IUserDao;
import com.zking.pojo.User;
import com.zking.util.DBHelper;
 
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
/**
 * 数据库访问接口类
 * @author zjjt
 *
 */
 
public class UserDaoImpl implements IUserDao {
 
    private Connection con;
    private PreparedStatement ps;
    private ResultSet rs;
 
    public User login(User user) {
        try {
            con=DBHelper.getCon();
            String sql="select * from t_user where user_name=?";
            ps=con.prepareStatement(sql);
            ps.setString(1, user.getUserName());
            rs=ps.executeQuery();
            if(rs.next()){
                //将信息赋值给User对象
                User u=new User();
                u.setUserName(rs.getString(2));
                u.setUserPwd(rs.getString(3));
                return u;
            }
        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            DBHelper.close(con,ps,rs);
        }
        return null;
    }
 
}

 

 编写业务逻辑层

接口

public interface IUserBiz {
  
	String login(User user);   
}

实现接口 

package com.zking.biz.impl;
 
import com.zking.biz.IUserBiz;
import com.zking.dao.IUserDao;
import com.zking.dao.impl.UserDaoImpl;
import com.zking.pojo.User;
 
import java.util.List;
 
public class UserBizImpl implements IUserBiz {
 
    //需要去调用dao层的方法
 
    //一个厨师对应多个送菜的人 里式替换原则
    private IUserDao userDao=new UserDaoImpl();
 
    @Override
    public String login(User user) {
        User u = userDao.login(user);
        // user 表示层给我的
        // u 数据库来的
        if(u==null){
            return "account not found";
        }
        if(!u.getUserPwd().equals(user.getUserPwd())){
            return "password error";
        }
        return "login success";
    }
}

编写表面层

<%@page import="com.zking.pojo.User"%>
<%@page import="com.zking.biz.impl.UserBizImpl"%>
<%@page import="com.zking.biz.IUserBiz"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%
     //表示层
     //表示层-业务逻辑层(biz)-数据库操作层(dao)
     String username=request.getParameter("username");
     String password=request.getParameter("password");
    //将数据封装到实体类中
     User user= new User(0,username,password);
     //判断用户是否登录
     
     //面向接口编程
     //1、先编写接口
     //2、实现该接口
     //3、使用里氏替换原则来声明接口对象
     //4、调用接口的方法类
      IUserBiz userBiz=new UserBizImpl();
     //调用业务逻辑层的方法
     String massage=userBiz.login(user);
     //输出结果 
     
%>
<h2><%=massage%></h2>

 登入界面

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="doLogin.jsp" method="post">
<p><input type="text" name="username"></p>
    <p><input type="text" name="password"></p>
    <p><button>登录</button></p></form>
</body>
</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值