Javaweb网上商城项目实战(10)完成用户登录功能

用户登录原理分析

完成用户登录功能

修改/jsp/index.jsp里的登录链接

index.jsp

  • 登录
  • 在/jsp/login.jsp中设置form标签action,method

    login.jsp

    在/jsp/login.jsp中设置表单下input标签的name属性

    login.jsp

    
    
    

    编写UserServlet下的loginUI方法

    UserServlet.java

    public String loginUI(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        return "/jsp/login.jsp";
    }
    

    在USerServlet中完成userLogin

    UserServlet.java

    // userLogin
    public String userLogin(HttpServletRequest request, HttpServletResponse response) throws Exception {
        // 获取用户数据(账户/密码)
        User user = new User();
        MyBeanUtils.populate(user, request.getParameterMap());
    
        // 调用业务层登录功能
        UserService UserService = new UserServiceImp();
        User user02 = null;
        try {
            // select * from user where username=? and password=?
            user02 = UserService.userLogin(user);
            // 用户登录成功,将用户信息放入session中
            request.getSession().setAttribute("loginUser", user02);
            response.sendRedirect("/store_v1/index.jsp");
            return null;
        } catch (Exception e) {
            // 用户登录失败
            String msg = e.getMessage();
            System.out.println(msg);
            // 向request放入失败的信息
            request.setAttribute("msg", msg);
            return "/jsp/login.jsp";
        }
    }
    

    完善UserService及实现类中的userLogin

    UserService.java

    User userLogin(User user)throws SQLException;
    

    UserServiceImp.java

    @Override
    public User userLogin(User user) throws SQLException {
        //此处:可以利用异常在模块之间传递数据
        UserDao UserDao=new UserDaoImp();
        //select * from user where username=? and password=?
        User uu=UserDao.userLogin(user);
        if(null==uu){
            throw new RuntimeException("密码有误!");
        }else if(uu.getState()==0){
            throw new RuntimeException("用户未激活!");
        }else{
            return uu;
        }
    }
    

    完善UserDao及其实现类中的userLogin

    UserDao.java

    User userLogin(User user)throws SQLException;
    

    UserDaoImp.java

    @Override
    public User userLogin(User user) throws SQLException {
        String sql="select * from user where username=?  and password= ?";
        QueryRunner qr=new QueryRunner(JDBCUtils.getDataSource());
        return qr.query(sql, new BeanHandler(User.class),user.getUsername(),user.getPassword());
    }
    

    完善登录页面

    index.jsp中引入EL表达式

    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    1. 登录
    2. 注册
    3. 欢迎${loginUser.username}
    4. 退出
    5. 购物车
    6. 我的订单

    效果演示

    运行项目,进入登录页面,输入用户名和密码点击登录

    登录成功后跳转到首页,此时右上角已显示欢迎信息,登录成功。

    如果密码输入错误,会提示密码有误,如果用未激活的账户登录,会提示用户未激活。

    源码下载

    [dm href=’https://www.jikewenku.com/product/1700.html’]下载地址[/dm]

    本站所有文章均由网友分享,仅用于参考学习用,请勿直接转载,如有侵权,请联系网站客服删除相关文章。若由于商用引起版权纠纷,一切责任均由使用者承担
    极客文库 » Javaweb网上商城项目实战(10)完成用户登录功能

    Leave a Reply

    欢迎加入「极客文库」,成为原创作者从这里开始!

    立即加入 了解更多