📄 useradmin.java
字号:
/* * UserAdmin.java * * Created on 2004年12月23日, 上午10:24 * 这个类主要用于管理用户 * */package com.mg.admin;import java.io.*;import java.util.*;import org.jdom.*;import org.jdom.input.*;import org.jdom.output.*;/** * 这个类主要用于用户管理操作 */public class UserAdmin extends Object { //********************成员变量************************ /** * 当前的用户类型为管理员 */ public static final String USER_TYPE_ADMIN = "Admin"; /** * 当前的用户类型为普通用户 */ public static final String USER_TYPE_USER = "User"; /** * 操作的根路径 */ private String rootPath; /** * 当前操作的XML文件名 */ private static final String TABLE_NAME = "users.xml"; //********************成员函数************************ /** * 构造函数,如果使用这个构造函数,需要调用setRootPath设置根路径 * <p> * @see #setRootPath */ public UserAdmin() { } /** * 设置操作的根路径 * <p> * @see #getRootPath */ public void setRootPath(String rp) { if (rootPath != rp) { rootPath = rp; } } /** * 返回操作的根路径 * <p> * @return 返回根路径 * <p> * @see #setRootPath */ public String getRootPath() { return rootPath; } /** * 获得当前的XML Document对象 */ private Document getDoc() { Document doc = null; PrintStream out = System.out; //读取文件 try { File file = new File(rootPath, TABLE_NAME); if (file.exists()) { SAXBuilder builder = new SAXBuilder(false); doc = builder.build(file); } } catch(Exception e) { out.println("Exception: " + e.toString()); } return doc; } /** * 连接当前的rootPath下的users.xml名的XML文件, * 并修改用户帐户信息,如果成功则返回true,否则返回false。 * <p> * @param uid 用户ID * @param pwd 密码 * @param name 用户姓名 * @param sex 性别 * @param age 年龄 * @param tel 电话号码 * @param address 地址 * @param email */ public boolean modify(String uid, String pwd, String name,String sex, String age, String tel, String address, String email) { boolean ret = false; Document doc=getDoc(); if (doc != null) { String [] params = new String[8]; params[0] = uid; params[1] = pwd; params[2] = name; params[3] = sex; params[4] = age; params[5] = tel; params[6] = address; params[7] = email; // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Iterator list_i = list.iterator(); Element userNode=null; while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 Iterator row_i = e.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); if ((ee.getName().equals("userid")) && (ee.getText().equals(uid))) { userNode = e; break; } } //找到user节点后,修改数据,然后退出循环 int index = 0; if (userNode != null) { row_i = userNode.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); ee.setText(params[index]); if (++index >= params.length) { break; } } break; } } //保存修改 save(doc); ret = true; } return ret; } /** * 连接当前的rootPath下的users.xml名的XML文件, * 并注册新用户,如果成功则返回true,否则返回false。 * <p> * @param uid 用户ID * @param pwd 密码 * @param name 用户姓名 * @param sex 性别 * @param age 年龄 * @param tel 电话号码 * @param address 地址 * @param email */ public boolean register(String uid, String pwd, String name,String sex, String age, String tel, String address, String email){ boolean ret = false; Document doc=getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Element newE = new Element("user"); Element eUserID = new Element("userid"); eUserID.setText(uid); newE.addContent(eUserID); Element ePassword = new Element("password"); ePassword.setText(pwd); newE.addContent(ePassword); Element eName = new Element("name"); eName.setText(name); newE.addContent(eName); Element eSex = new Element("sex"); eSex.setText(sex); newE.addContent(eSex); Element eAge = new Element("age"); eAge.setText(age); newE.addContent(eAge); Element eTel = new Element("tel"); eTel.setText(tel); newE.addContent(eTel); Element eAddress = new Element("address"); eAddress.setText(address); newE.addContent(eAddress); Element eEmail = new Element("email"); eEmail.setText(email); newE.addContent(eEmail); Element eType = new Element("type"); eType.setText(USER_TYPE_USER); newE.addContent(eType); root.addContent(newE); //list.add(newE); //保存修改 save(doc); ret = true; } return ret; } /** * 保存修改到XML文件 * <p> * @param doc 要保存的Document对象 */ private void save(Document doc) { //保存修改 try { Format format = Format.getPrettyFormat(); format.setEncoding("GBK"); XMLOutputter out = new XMLOutputter(format); File file = new File(rootPath, TABLE_NAME); FileOutputStream fos = new FileOutputStream(file); out.output(doc, fos); } catch(Exception e) { System.out.println("Exception: " + e.toString()); } } /** * 连接当前的rootPath下的users.xml名的XML文件, * 如果当前用户已经存在则返回true,否则返回false。 * <p> * @param uid 要检查的用户ID * <p> * @return 当前用户是否存在,如果存在就返回true,否则返回false。 */ public boolean checkUser(String uid) { Document doc = getDoc(); if (doc != null) { List list; // 获取根节点 Element root = doc.getRootElement(); list = root.getChildren(); Iterator list_i = list.iterator(); while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 Iterator row_i = e.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); if ((ee.getName().equals("userid")) && (ee.getText().equals(uid))) { return true; } } } } return false; } /** * 用户登录系统 * <p> * @param uid 用户ID * @param pwd 密码 * <p> * @param 如果登录成功则返回Register.USER_TYPE_ADMIN * 或者Register.USER_TYPE_USER。如果登录失败,则返回""。 */ public String login(String uid, String pwd) { Document doc = getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Iterator list_i = list.iterator(); while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 Iterator row_i = e.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); if (ee.getName().equals("userid")) { if (!ee.getText().equals(uid)) { break; } } if (ee.getName().equals("password")) { if (!ee.getText().equals(pwd)) { break; } } if (ee.getName().equals("type")) { return ee.getText(); } } } } return ""; } /** * 把用户信息返回到Hashtable中,其内容应该为: * userid 用户ID * pwd 密码 * name 用户姓名 * sex 性别 * age 年龄 * tel 电话号码 * address 地址 * email * type */ public Hashtable getUserInfo(String uid) { Hashtable ht = new Hashtable(); Document doc = getDoc(); if (doc != null) { // 获取根节点 Element root = doc.getRootElement(); List list = root.getChildren(); Iterator list_i = list.iterator(); Element userNode=null; while (list_i.hasNext()) { //获取子节点 Element e = (Element)list_i.next(); //获取二级子节点 Iterator row_i = e.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); if ((ee.getName().equals("userid")) && (ee.getText().equals(uid))) { userNode = e; break; } } //找到user节点后,退出循环 if (userNode != null) { row_i = userNode.getChildren().iterator(); while (row_i.hasNext()) { Element ee = (Element) row_i.next(); ht.put(ee.getName(), ee.getText()); } break; } } } return ht; } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -