三层架构(MVC)实现简单登陆注册验证(含验证码)
前言在我的上一篇微博里我已经提出了登陆的方法,当时我采取的是纯servlet方式,因为当时刚接触到servlet,正好网上没有这方面的全面讲解,所以我就发飙了。不过在现实生产中我们大多采用的三层架构。所谓三层架构(web层+service层+dao层)。下面我就详细讲解一下
一、dao层——数据访问层
- 模拟数据库:依然像钱一张一样,我们无法将数据库拿到文档中,所以我还是模拟了数据库(Dao).只不过这里我用的是xml文件来实现数据库
<?xml version="1.0" encoding="UTF-8" ?>
<users>
<user username="Admin" password="Admin" nickname="Admin" email="1@qq.com"></user>
<user username="张新华" password="123" nickname="烟花散尽13141" email="870775401@qq.com"></user>
</users>然后再数据库中我实现了查找了和增加功能,查找呢又细分通过用户名查找和通过用户名密码查找,前者是查找后者则偏向于验证。通过后者可以验证用户名和密码是否匹配,这两个函数在后面的web层中起到关键因素。
通过用户名查找:
- `public User FindUserByUsername(String username)
{
Document dom=XmlDaoUtil.GetDom();//�õ�dom����
Element root=dom.getRootElement();
List list = root.selectNodes(“//user[@username=’”+username+”’]”);
if(list.size()>0)
{
Element userele=list.get(0);
User user=new User();
user.setUsername(userele.attributeValue(“username”));
user.setPassword(userele.attributeValue(“password”));
user.setNickname(userele.attributeValue(“nikename”));
user.setEmail(userele.attributeValue(“email”));
return user;
}
else
{
return null;
}
}`- `public User FindUserByUsername(String username)
通过用户名和密码进行验证
- public User FindUserByUNameAndPsw(String username,String password)
{
Document dom=XmlDaoUtil.GetDom();//�õ�dom����
Element root=dom.getRootElement();
List list = root.selectNodes(“//user[@username=’”+username+”’ and @password=’”+password+”’]”);
if(list.size()>0)
{
Element userele=list.get(0);
User user=new User();
user.setUsername(userele.attributeValue(“username”));
user.setPassword(userele.attributeValue(“password”));
user.setNickname(userele.attributeValue(“nikename”));
user.setEmail(userele.attributeValue(“email”));
return user;
}
else
{
return null;
}
}- public User FindUserByUNameAndPsw(String username,String password)
- 添加用户
public void AddUser(User user)
{
Document dom=XmlDaoUtil.GetDom();
Element root=dom.getRootElement();//��ȡ���ڵ�//����һ��Ԫ�ض���
Element userele=DocumentHelper.createElement(“user”);
Attribute attr1=DocumentHelper.createAttribute(userele, “username”, user.getUsername());
Attribute attr2=DocumentHelper.createAttribute(userele, “password”, user.getPassword());
Attribute attr3=DocumentHelper.createAttribute(userele, “nickname”, user.getNickname());
Attribute attr4=DocumentHelper.createAttribute(userele, “email”, user.getEmail());userele.add(attr1);
userele.add(attr2);
userele.add(attr3);
userele.add(attr4);root.add(userele);
}