WEB核心【案例:用户登录(进阶-)】第五章

目录

1,需求

2,分析

2.1:关键点

2.2:步骤

3,代码实现

3.1:User

3.2:login.html

3.3:LoginServlet

3.4:LoginService

3.5:LoginDao


1,需求

        

若用户名和密码正确,判定为登录成功,则控制台输出登录成功;

若用户名或密码错误,判定为登录失败,则控制台输出登录失败;

2,分析

2.1:关键点

  1. method="post" action="/项目名/资源名"
  2. <input type="hidden" name="method" value="方法名"/>
  3. 接收数据:JavaBean javaBean = toBean(JavaBean.class);
  4. 分包思想:Servlet:接收数据,展示结果;Service:判断用户登录是否成功;Dao:负责读取xml所有数据

2.2:步骤

  • 依次创建JavaBean、dao、service、servlet
  • 先编写login.html,可以正常提交表单到Servlet
  • 编写LoginServlet,可以接收数据,可以把数据传递给service,打印service返回结果
  • 编写LoginService,获取用户列表,判断用户是否登录成功
  • 编写LoginDao,读取xml用户列表

3,代码实现

3.1:User

public class User implements Serializable {
    private String id;
    private String username;
    private String password;
@Override
 public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }

    public User(String id, String username, String password) {
        this.id = id;
        this.username = username;
        this.password = password;
    }

    public User() {
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

  

3.2:login.html

<form class="form-horizontal" method="post" action="/day03/login">
   <input type="hidden" name="method" value="login"/>

3.3:LoginServlet

public class LoginServlet extends BaseServlet {
    public String login(){
        //1、获取表单参数列表
        User user = toBean(User.class);
        //System.out.println(user);
        //2、调用service,校验登录是否成功
        LoginService loginService = new LoginService();
        boolean result = loginService.checkUsernameAndPassword(user);
        //3、根据service返回结果,展示结果
        if(result){
            System.out.println("登录成功");
        }else{
            System.out.println("登录失败");
        }
        return null;
    }
}

3.4:LoginService

public boolean checkUsernameAndPassword(User user) {
    //1、通过Dao获取用户列表
    LoginDao loginDao = new LoginDao();
    List<User> ulist =  loginDao.searchUlist();
    //2、开关思想,判断用户是否登录成功。 true登录成功,false登录失败
    boolean f = false;
    //3、遍历用户列表,每遍历一个用户,判断 正确用户名和输入用户名是否一致,并且正确的密码和输入的密码是否一致
    for (User u : ulist) {
        if(u.getUsername().equals(user.getUsername())
            && u.getPassword().equals(user.getPassword())){
            //4、如果都一致,true,登录成功。 无需继续遍历
            f = true;
            break;
        }
    }
    //5、遍历结束,对开关进行返回。 true登录成功,false登录失败。
    return f;
}

3.5:LoginDao

public class LoginDao {
    public List<User> searchUlist() {
        return XmlUtils.readAll("D:/data01.xml",User.class);
    }
}

猜你喜欢

转载自blog.csdn.net/m0_64550837/article/details/124974949