Struts2+DAO 读取xml验证登陆

在创建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;
	}
}



3. 修改UserAction

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";
		}
	}



4. users.xml文件

<?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>



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值