美文网首页JAVA-WEB基础
登录页面(责任分离)

登录页面(责任分离)

作者: superNeil | 来源:发表于2020-05-19 11:30 被阅读0次

登录页面

符合 3层架构 (体现责任分离 , 低耦合高内聚)

思路 :

浏览器-->login.jsp-->servlet-->service-->UserServiceImpl-->IUserDAO-->UserDAOImpl-->数据库

浏览器 <--login.jsp<--servlet<--service<--UserServiceImpl<--IUserDAO<--UserDAOImpl<--数据库


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 {
        //设置编码格式
        req.getRequestDispatcher("utf-8");
        //获取传入的 用户名和密码
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        //用户传入的数据 进入业务层
        try {
            User u = dao.login(username, password);
            //登录成功  共享 u 作为标识 说明我们已经登录成功 , 可以给 /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

相关文章

  • 登录页面(责任分离)

    登录页面 符合 3层架构 (体现责任分离 , 低耦合高内聚) 思路 : 浏览器-->login.jsp-->se...

  • SpringBootSecurity学习(13)前后端分离版之J

    JWT 使用 前面简单介绍了把默认的页面登录改为前后端分离的接口异步登录的方法,可以帮我们实现基本的前后端分离登录...

  • 2019-07-18

    我的简单的登录注册页面练习1.登录页面 登录页面练习 2.注册页面

  • 前后端分离的项目如何实现登录状态的保持。

    前后端分离的项目一般会使用token实现登录状态的保持。token其实就是一个随机字符串,当用户在登录页面输入账号...

  • 3、登录程序

    目标 登录页面login.html 登录后台 登录页面login.html 登录后台 1)servlet(/hea...

  • 登录页面

    登录页面 登录页面: 登录页面用于用户登录操作,只有登录上个人账号才能获取自己的信息和其他非浏览信息、查询信息类的...

  • Attempt to present <UINavigat

    统一弹登录页面,有的是在push出来的页面弹登录页面,有的是在present页面弹登录页面 说明 : 例如:A p...

  • 解决Warning: Attempt to present &l

    统一弹登录页面,有的是在push出来的页面弹登录页面,有的是在present页面弹登录页面说明 :例如:A pre...

  • html+js+servlet实现echarts图表展示

    一、需求: 提供登录页面,登录成功后跳转到echarts展示页面,登录失败回到登录页面 使用拦截器过滤请求,必须登...

  • 4.1 django项目-新闻博客系统之用户登录登出

    04 用户登录登出 一、用户登录 1、功能分析 登录页面 登录功能 2、用户登录流程 3、登录页面 1、接口设计 ...

网友评论

    本文标题:登录页面(责任分离)

    本文链接:https://www.haomeiwen.com/subject/kagvohtx.html