XML操作举例→实现用户登录

package cn.zyw.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

//3
public class XmlUtils {
    private static String filepath;
    static{
        filepath=XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
        filepath=filepath.replace("%20", " ");
    }
    public static Document getDocument() throws Exception{
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(filepath));
        return document;
    }
    public static void write2Xml(Document document) throws Exception{
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), format );
        writer.write( document );
        writer.close();
    }

}

有时我们想做做一个小的项目需要保存一定的数据,如果用数据库当然是可以的。但是总觉得有点浪费资源。所以今天就学习了一点Xml总结如下:

1:Xml文件如下:

  

<?xml version="1.0" encoding="UTF-8"?>
<users>
    <user id="234343434" username="aaa" password="123" email="[email protected]" birthday="1900-09-18" nickname="强子" />
</users>

2:操作Xml文件的工具类

XmlUtils.java

package cn.zyw.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

//3
public class XmlUtils {
private static String filepath;
static{
filepath=XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
filepath=filepath.replace("%20", " ");
}
public static Document getDocument() throws Exception{
SAXReader reader = new SAXReader();
Document document = reader.read(new File(filepath));
return document;
}
public static void write2Xml(Document document) throws Exception{
OutputFormat format = OutputFormat.createPrettyPrint();
format.setEncoding("UTF-8");
XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), format );
writer.write( document );
writer.close();
}

}

package cn.zyw.utils;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;

import org.dom4j.Document;
import org.dom4j.DocumentException;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;

//3
public class XmlUtils {
    private static String filepath;
    static{
        filepath=XmlUtils.class.getClassLoader().getResource("users.xml").getPath();
        filepath=filepath.replace("%20", " ");
    }
    public static Document getDocument() throws Exception{
        SAXReader reader = new SAXReader();
        Document document = reader.read(new File(filepath));
        return document;
    }
    public static void write2Xml(Document document) throws Exception{
        OutputFormat format = OutputFormat.createPrettyPrint();
        format.setEncoding("UTF-8");
        XMLWriter writer = new XMLWriter(new FileOutputStream(filepath), format );
        writer.write( document );
        writer.close();
    }

}

3:用户登录的Dao

UserDao .java

package cn.zyw.dao;

import cn.zyw.domain.User;
//5
public interface UserDao {

void add(User user);

User find(String username, String password);

//查找注册的用户是否在数据库中存在
boolean find(String username);

}

package cn.zyw.dao;

import cn.zyw.domain.User;
//5
public interface UserDao {

    void add(User user);

    User find(String username, String password);

    //查找注册的用户是否在数据库中存在
    boolean find(String username);

}

4:用户登录的实现类

UserDaoImpl .java

package cn.zyw.dao.impl;

import java.text.SimpleDateFormat;

import org.dom4j.Document;
import org.dom4j.Element;

import cn.zyw.dao.UserDao;
import cn.zyw.domain.User;
import cn.zyw.utils.XmlUtils;
//2
public class UserDaoImpl implements UserDao {
public void add(User user){
try {
Document document=XmlUtils.getDocument();
Element root=document.getRootElement();//得到根节点
Element user_tag=root.addElement("user");
user_tag.setAttributeValue("id", user.getId());
user_tag.setAttributeValue("username", user.getUsername());
user_tag.setAttributeValue("password", user.getPassword());
user_tag.setAttributeValue("email", user.getEmail());
user_tag.setAttributeValue("nickname", user.getNickname());
user_tag.setAttributeValue("birthday", user.getBirthday()==null ? "" : user.getBirthday().toLocaleString());
XmlUtils.write2Xml(document);
} catch (Exception e) {
throw new RuntimeException(e);
}
}
public User find(String username,String password){

try {
Document document=XmlUtils.getDocument();
Element e=(Element) document.selectSingleNode("//user[@username=‘"+username+"‘ and @password=‘"+password+"‘]");
if(e==null)
return null;
User user=new User();
user.setUsername(e.attributeValue("username"));//获取xml里面的值
user.setNickname(e.attributeValue("nickname"));
user.setPassword(e.attributeValue("password"));
user.setEmail(e.attributeValue("email"));
user.setId(e.attributeValue("id"));
String date=e.attributeValue("birthday");
if(date==null || date.equals("")){
user.setBirthday(null);
}else{
SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
user.setBirthday(df.parse(date));
}
return user;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
//查找注册的用户是否在数据库中存在
public boolean find(String username){
try {
Document document=XmlUtils.getDocument();
Element e=(Element) document.selectSingleNode("//user[@username=‘"+username+"‘]");
if(e==null){
return false;
}

return true;
} catch (Exception e) {
throw new RuntimeException(e);
}
}

}

package cn.zyw.dao.impl;

import java.text.SimpleDateFormat;

import org.dom4j.Document;
import org.dom4j.Element;

import cn.zyw.dao.UserDao;
import cn.zyw.domain.User;
import cn.zyw.utils.XmlUtils;
//2
public class UserDaoImpl implements UserDao {
    public void add(User user){
        try {
            Document document=XmlUtils.getDocument();
            Element root=document.getRootElement();//得到根节点
            Element user_tag=root.addElement("user");
            user_tag.setAttributeValue("id", user.getId());
            user_tag.setAttributeValue("username", user.getUsername());
            user_tag.setAttributeValue("password", user.getPassword());
            user_tag.setAttributeValue("email", user.getEmail());
            user_tag.setAttributeValue("nickname", user.getNickname());
            user_tag.setAttributeValue("birthday", user.getBirthday()==null ? "" : user.getBirthday().toLocaleString());
            XmlUtils.write2Xml(document);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    public User find(String username,String password){

        try {
            Document document=XmlUtils.getDocument();
            Element e=(Element) document.selectSingleNode("//user[@username=‘"+username+"‘ and @password=‘"+password+"‘]");
            if(e==null)
                return null;
            User user=new User();
            user.setUsername(e.attributeValue("username"));//获取xml里面的值
            user.setNickname(e.attributeValue("nickname"));
            user.setPassword(e.attributeValue("password"));
            user.setEmail(e.attributeValue("email"));
            user.setId(e.attributeValue("id"));
            String date=e.attributeValue("birthday");
            if(date==null || date.equals("")){
                user.setBirthday(null);
            }else{
                SimpleDateFormat df=new SimpleDateFormat("yyyy-MM-dd");
                user.setBirthday(df.parse(date));
            }
            return user;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }
    //查找注册的用户是否在数据库中存在
    public boolean find(String username){
        try {
            Document document=XmlUtils.getDocument();
            Element e=(Element) document.selectSingleNode("//user[@username=‘"+username+"‘]");
            if(e==null){
                return false;
            }

            return true;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

}

5:用户登录的测试

UserDaoTest.java

package junit.test;

import java.util.Date;
import org.junit.Test;
import cn.zyw.dao.UserDao;
import cn.zyw.dao.impl.UserDaoImpl;
import cn.zyw.domain.User;
//4
public class UserDaoTest {
@Test
public void testAdd(){
User user=new User();
user.setBirthday(new Date());
user.setEmail("[email protected]");
user.setId("34343434");
user.setNickname("李子");
user.setPassword("123");
user.setUsername("aaa");

UserDao dao=new UserDaoImpl();
dao.add(user);
}
@Test
public void testFind(){
UserDao dao=new UserDaoImpl();
User user=dao.find("aaa","123");
String aa=user.getEmail();
if(aa.endsWith("kk"))
{
System.out.println("kkdf");
}
}
@Test
public void testFindByUsername(){
UserDao dao=new UserDaoImpl();
boolean b=dao.find("aaa");

}
}

package junit.test;

import java.util.Date;
import org.junit.Test;
import cn.zyw.dao.UserDao;
import cn.zyw.dao.impl.UserDaoImpl;
import cn.zyw.domain.User;
//4
public class UserDaoTest {
    @Test
    public void testAdd(){
        User user=new User();
        user.setBirthday(new Date());
        user.setEmail("[email protected]");
        user.setId("34343434");
        user.setNickname("李子");
        user.setPassword("123");
        user.setUsername("aaa");        

        UserDao dao=new UserDaoImpl();
        dao.add(user);
    }
    @Test
    public void testFind(){
        UserDao dao=new UserDaoImpl();
        User user=dao.find("aaa","123");
        String aa=user.getEmail();
        if(aa.endsWith("kk"))
        {
            System.out.println("kkdf");
        }
    }
    @Test
    public void testFindByUsername(){
        UserDao dao=new UserDaoImpl();
        boolean b=dao.find("aaa");

    }
}

时间: 2024-08-01 20:03:47

XML操作举例→实现用户登录的相关文章

Ubuntu开启root用户登录

Ubuntu系统安装完成之后,默认是不允许root用户直接登录的,我们可以通过几步简单的操作开启root用户登录.Ubuntu14.*/15.*/16.*版本通用. 1.设置root密码 sudo passwd root 2.切换到root用户 su - 3.编辑/usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf文件,如果没有此文件,直接创建 内容如下: [SeatDefaults] autologin-user=root user-session=

Ubuntu下允许Root用户的操作 (图形界面登录、su切换……)

Ubuntu安装后,root用户默认是被锁定了的,不允许登录,也不允许"su"到 root.虽然这样的设置使安全性更高一些,但对于开发者来 说就显得很不方便了.如何让Ubuntu允许root用户直接登录GUI呢,以下是设置步骤(本文以Ubuntu10为例): ◆允许 su 到 root 非常简单,下面是设置的方法: [email protected]:~$ sudo passwd Password: <--- 输入安装时那个用户的密码 Enter new UNIX passwor

对SD卡的读写操作-保存用户登录密码

import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStreamReader; import android.content.Context; import android.os.Environment; public class Fileservice { /** * 存储用

Linux 记录所有用户登录和操作的详细日志

1.起因 最近linux服务器上一些文件呗篡改,想追查已经查不到记录了,所以得想个办法记录下所有用户的操作记录. 一般大家通常会采用history来记录,但是history有个缺陷就是默认是1000行,当然你也可以vim /etc/profile将1000修改成1000000行,但是这只是比较笼统的做法,看不到详细的用户来源已经操作记录,比如来源ip地址.操作时间.操作用户等. 所以我们不得不自己写代码来实现这样的功能. 2.自动记录脚本 编写脚本如下: history USER=`whoami

Spring Security应用开发(02)基于XML配置的用户登录

1.1. 基于XML配置的登录功能 经过一系列配置之后,可以使用Spring Security内置功能实现最基本的用户登录功能以及角色验证功能,这种内置的功能没有任何实用价值,仅仅用于了解Spring Security的工作方式. (1)配置web.xml. 主要是为Spring MVC和Spring Security提供一些入口,以便有机会进行Spring MVC以及Spring Security的初始化和过滤处理等工作. <servlet> <servlet-name>spri

iVPN用户登录操作手册

限制条件: ?          用户具备Ivpn访问权限 ?          IVPN使用程管家令牌.程管家令牌注册站点:http://itoken/ 一.iVPN用户登录操作手册(PC端) IVPN客户端软件下载 下载地址:http://support.arraynetworks.com.cn/troubleshooting/ 用户根据自有设备操作系统下载"AG系列产品-MotionPro"的对应客户端 IVPN客户端软件安装: 解压下载文件,并执行安装文件. 安装文件名*.ex

通过登入IP记录Linux所有用户登录所操作的日志

通过登入IP记录Linux所有用户登录所操作的日志 对于Linux用户操作记录一般通过命令history来查看历史记录,但是如果在由于误操作而删除了重要的数据的情况下,history命令就不会有什么作用了.那么依然要存有历史操作记录应该如何来实现呢?其实我们可以通过登陆IP地址来记录所有用户登录所操作的历史操作!具体操作就是在/etc/profile配置文件的末尾加入以下脚本代码来实现: # History USER=`whoami` USER_IP=`who -u am i 2>/dev/nu

Linux--记录每个用户登录后的IP信息,还有其它的操作信息

#Linux--记录每个用户登录后的IP信息,还有其它的操作信息,追加 vim /etc/profile PS1="`whoami`@`hostname`:"'[$PWD]' (Linux系统提示符是用系统变量PS1来定义的) history (who -u am i 会显示系统中登陆进来的用户及登陆从哪个IP登陆进来的,这里后面过滤了就取值一个登陆进来的IP) USER_IP=`who -u am i 2>/dev/null| awk '{print $NF}'|sed -e 

【Java】系统漏洞:关于用户登录后操作的注意事项

项目背景: SpringMVC + Mybatis  + MySql数据库(javaWeb项目开发) 相关模块:登录,个人详细信息修改,订单详情查询 相关漏洞介绍: 1.登录的验证码:登录的验证码一定要在后台做验证,如果只是前台验证验证码后,后台未验证,可能会发生第一次验证验证码后,通过工具绕过验证码进行暴力破解: 2.拦截器:要对登录后的如个人信息操作的接口名称要使用/user或者/admin进行拦截,如用户未登录,将自动跳转至登录页面: 3.个人详细信息修改:用户的信息要存放在session