1,需求
编辑
若用户名和密码正确,判定为登录成功,则控制台输出登录成功;
若用户名或密码错误,判定为登录失败,则控制台输出登录失败;
2,分析
2.1:关键点
- method="post" action="/项目名/资源名"
- <input type="hidden" name="method" value="方法名"/>
- 接收数据:JavaBean javaBean = toBean(JavaBean.class);
- 分包思想: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); } }