在创建struts2登陆基础上,读取xml所存用户名和密码,验证登陆用户是否存在,可否登陆成功。
1.新建DAO接口
public interface IDao {
public void add(User user);
public void deleteById(long id);
public void updateById(long id,User user);
public void selectById(long id);
public String select(User user);
}
2.因为这次只验证用户信息是否存在,能否成功登陆,所以这里只写了select的方法
注意: xml文件的路径用的是绝对路径,我一开始用相对路径在这个class里run成功,一旦run as on server就会出问题,还要研究一下
public class UserDao implements IDao {
@Override
public void add(User user) {
// TODO Auto-generated method stub
}
@Override
public void deleteById(long id) {
// TODO Auto-generated method stub
}
@Override
public void selectById(long id) {
// TODO Auto-generated method stub
}
@Override
public void updateById(long id, User user) {
// TODO Auto-generated method stub
}
@Override
public String select(User user) {
// 将xml中的数据 实例化为User对象 用于与传入的user对比,即使username与password相等 也不能对比成功
// 因为每个对象的 objId是唯一的。
/**
* 传入User是否在XMl中存在 声明一个集合Map保存所有的用户名及密码 用户检索判断传入的用户是否存在
* {['tester01','tester'],['tester02','tester']}
*/
Map<String, String> usersMap = new HashMap<String, String>();
try {
SAXReader db = new SAXReader();
Document doc = db
.read("E:\\Factory\\workspace\\ZStruts2loginDemo\\WebContent\\db\\users.xml");
Element root = doc.getRootElement();
List<Element> userList = root.elements("user");
for (Element element : userList) {
usersMap.put(element.elementText("name"),
element.elementText("password"));
}
// 传入的用户的用户名与密码
String userName = user.getUsername();
String password = user.getPassword();
if (usersMap.containsKey(userName)
&& usersMap.get(userName).equals(password)) {
return "1";
} else {
return "0";
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
public class UserAction extends ActionSupport {
private static final long serialVersionUID = 1L;
public void setUser(User user) {
this.user = user;
}
public User getUser() {
return user;
}
private User user;
@Override
public String execute() throws Exception {
UserDao userDao = new UserDao();
String result = userDao.select(user);
if ("1".equals(result)) {
return "success";
}else {
return "error";
}
}
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<id>0</id>
<name>tester01</name>
<password>tester</password>
</user>
<user>
<id>1</id>
<name>tester02</name>
<password>tester</password>
</user>
</users>