usermanagebean.java
来自「用JSP开发的考勤系统 编译器为myeclipse」· Java 代码 · 共 137 行
JAVA
137 行
package kq.model.bean;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import xtu.cie.common.MyLogger;
import kq.model.Config;
import kq.model.datatype.User;
public class UserManageBean {
private UserManageBean(){};
private static UserManageBean instance = null;
public static UserManageBean getInstance(){
if(instance == null){
instance = new UserManageBean();
instance.init();
}
return instance;
}
private Hashtable<String,User> userTable = null;
private BufferedReader br = null;
private FileWriter writer = null;
private void loadUserData(Hashtable<String,User> userTable){
try {
if(br == null)
br = new BufferedReader(new FileReader(Config.USER_FILE_PATH));
String line = br.readLine();
while(line != null){
User user = new User();
String[] infos = line.split("[|]");
user.setUsername(infos[0]);
user.setPassword(infos[1]);
user.setRealName(infos[2]);
user.setDepartment(infos[3]);
List<String> roleList = new ArrayList<String>();
for(int i=4;i<infos.length;i++){
roleList.add(infos[i]);
}
user.setRole(roleList);
userTable.put(user.getUsername(), user);
line = br.readLine();
}
} catch (Exception e) {
// TODO Auto-generated catch block
//e.printStackTrace();
MyLogger.getLogger().debug(e.getMessage());
}
}
private void init(){
userTable = new Hashtable<String,User>();
loadUserData(userTable);
}
public User getUserInfo(String userName){
return userTable.get(userName);
}
private static boolean isString(String str,boolean onlyLetter){
char[] chars = str.toLowerCase().toCharArray();
if(chars.length == 0)
return false;
for(int i=0;i<chars.length;i++){
if(!onlyLetter && i==0 && (chars[i] == '_' || chars[i] == '.'))
return false;
if((chars[i] >= 'a' && chars[i] <= 'z')
|| (chars[i] >= '0' && chars[i] <= '9'))
continue;
if(!onlyLetter && (chars[i] == '_' || chars[i] == '.'))
continue;
return false;
}
return true;
}
public static boolean validateEmail(String email){
if(email == null || email.equals("")
|| email.indexOf("@") == -1)
return false;
String prefix = email.substring(0, email.indexOf("@"));
if(!isString(prefix,false))
return false;
String suffix = email.substring(email.indexOf("@")+1,email.length());
if(!suffix.endsWith(".edu") && !suffix.endsWith(".edu.cn"))
return false;
if(!isString(suffix.substring(0, suffix.indexOf('.')),true))
return false;
return true;
}
public boolean validateUser(String username,String password){
if(username == null || password == null)
return false;
if(!userTable.containsKey(username))
return false;
if(!userTable.get(username).getPassword().equals(password))
return false;
return true;
}
public boolean existUser(String username){
return userTable.containsKey(username);
}
public boolean addUser(User transientUser){
StringBuffer sb = new StringBuffer();
sb.append(transientUser.getUsername()+"|");
sb.append(transientUser.getPassword()+"|");
sb.append(transientUser.getRealName()+"|");
sb.append(transientUser.getDepartment()+"|");
for(int i=0;i<transientUser.getRole().size();i++){
sb.append(transientUser.getRole().get(i));
if(i < transientUser.getRole().size()-1)
sb.append("|");
}
try {
if(writer == null)
writer = new FileWriter(Config.USER_FILE_PATH, true);
synchronized(this){
writer.write("\r\n"+sb);
writer.close();
userTable.put(transientUser.getUsername(), transientUser);
}
return true;
} catch (IOException e){
MyLogger.getLogger().debug(e.getMessage());
return false;
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?