zoukankan      html  css  js  c++  java
  • (七)用户登陆

    步骤分析:
        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、什么时候重定向?什么时候转发?

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

  • 相关阅读:
    Linux 文件系统相关的基本概念
    Logstash : 从 SQL Server 读取数据
    Windows 下配置 Logstash 为后台服务
    通过 Filebeat 收集 ubuntu 系统日志
    Logstash Multiple Pipelines
    零基础学编程
    2017年计划
    2016年的年终总结
    订阅《通往财富自由之路》3个月后,我做出了哪些改变
    2016年第20本:社交红利2.0
  • 原文地址:https://www.cnblogs.com/Michael2397/p/7639360.html
Copyright © 2011-2022 走看看