目录
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);
}
}