(七)用户登陆

步骤分析:
    1.在index.jsp上登录连接 点击 跳转到login.jsp
        可以通过userservlet进行请求转发 loginUI
    2.修改页面上的form表单     method  每个标签添加name属性
        action:/store/user?method=login
    3.login操作:
        获取用户名和密码
        调用service 获取一个user
            判断用户是否为空
                若为空:
                若不为空
                    继续判断是否激活
        只有激活的时候,将用户放入session中
    4.页面重定向到首页上
        展示用户名 退出 我的订

前端

 

 

 

 

 

 /store/src/com/louis/constant/Constant.java

package com.louis.constant;

public interface Constant {
    //用户激活
    int USER_IS_ACTIVE=1;
}

 

/store/src/com/louis/web/servlet/UserServlet.java

    /*
     * 跳转到登陆界面
     * */
    public String loginUI(HttpServletRequest request, HttpServletResponse response) throws Exception {
        return "/jsp/login.jsp";
    }
    
    /*
     * 登陆
     * */
    public String login(HttpServletRequest request, HttpServletResponse response) throws Exception {
        //1、获取用户名和密码
        String username = request.getParameter("username");
        String password = request.getParameter("password");
        password = MD5Utils.md5(password);
        
        //2调用service完成登陆操作,返回user
        UserService userService = new UserServiceImpl();
        User user = userService.login(username,password);
        //3、判断用户
        if(user == null) {
            //用户名密码不匹配
            request.setAttribute("msg", "用户名密码不匹配");
            return "/jsp/login.jsp";
        }else {
            //判断用户是否激活
            if(Constant.USER_IS_ACTIVE!=user.getState()) {
                request.setAttribute("msg", "用户未激活");
                return "/jsp/login.jsp";
            }
        }
        //4将user放入session中重定向
        request.getSession().setAttribute("user", user);
        //store首页
        response.sendRedirect(request.getContextPath()+"/");
        return null;
    }

/store/src/com/louis/service/impl/UserServiceImpl.java

    @Override
    public User login(String username, String password) throws Exception {
        UserDao dao=new UserDaoImpl();
        return dao.getByUsernameAndPwd(username,password);
    }

/store/src/com/louis/dao/impl/UserDaoImpl.java

    /*
     * 用户登陆
     * */
    public User getByUsernameAndPwd(String username, String password) throws Exception {
        QueryRunner qr = new QueryRunner(DataSourceUtils.getDataSource());
        String sql="select * from user where username = ? and password = ? limit 1";
        return qr.query(sql, new BeanHandler<>(User.class), username,password);
    }

 

 效果

 

问题

1、自动登陆的实现

2、什么时候重定向?什么时候转发?

 共用同一个域用转发,使用不同的域用重定向

posted on 2017-10-09 00:44  Michael2397  阅读(216)  评论(0编辑  收藏  举报

导航