登錄頁面(責(zé)任分離)

登錄頁面

符合 3層架構(gòu) (體現(xiàn)責(zé)任分離 , 低耦合高內(nèi)聚)

思路 :

瀏覽器-->login.jsp-->servlet-->service-->UserServiceImpl-->IUserDAO-->UserDAOImpl-->數(shù)據(jù)庫

瀏覽器 <--login.jsp<--servlet<--service<--UserServiceImpl<--IUserDAO<--UserDAOImpl<--數(shù)據(jù)庫


image-20200519112142984.png

這是IUserDAO

public interface IUserDAO {
    User selectUser(String username);
}

這是UserDAOImpl

public class UserDAOImpl implements IUserDAO {

    @Override
    public User selectUser(String username) {
        SqlSession sqlsession = MyBatisUtils.getSqlsession();
        User u = sqlsession.selectOne("cn.wolfcode.mapper.UserMapper.secletUser", username);
       sqlsession.close();
        return u;
    }
}

這是IUserService

public interface IUserService {
    User login(String username,String password);
}

這是UserServiceImpl

public class UserServiceImpl implements IUserService {
    private IUserDAO dao=new UserDAOImpl();
    @Override
    public User login(String username,String password) {
        User user = dao.selectUser(username);
        if(user==null){
            //說明用戶名不存在
            throw new RuntimeException("親,賬號不存在!");
        }
        if(!user.getPassword().equals(password)){
            throw new RuntimeException(("親,密碼錯誤!"));
        }
        return user;
    }
}

這是LoginServlet

@WebServlet("/user")
public class LoginServlet extends HttpServlet {
    IUserService dao = new UserServiceImpl();
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        //設(shè)置編碼格式
        req.getRequestDispatcher("utf-8");
        //獲取傳入的 用戶名和密碼
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //用戶傳入的數(shù)據(jù) 進(jìn)入業(yè)務(wù)層
        try {
            User u = dao.login(username, password);
            //登錄成功  共享 u 作為標(biāo)識 說明我們已經(jīng)登錄成功 , 可以給 /product 那邊作判斷 , 避免有人可以直接訪問/product
            req.getSession().setAttribute("USER_IN_SESSION", u);
            resp.sendRedirect("/product");
        } catch (Exception e) {
            req.setAttribute("errorMsg", e.getMessage());
            req.getRequestDispatcher("/login.jsp").forward(req, resp);
        }

    }
}
image-20200519111431394.png
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容