免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1443 | 回复: 0
打印 上一主题 下一主题

关于《Struts in Action 中文版》一书中的 UserDirectory [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-19 16:21 |只看该作者 |倒序浏览
今天看了《Struts in Action 中文版》一书。本来是打算照例子去做个简单的Struts程序
但是发现了UserDirectory这个类,作者没给出来。不过最终还是给弄出来了
下面就是UserDirectory的代码,给大家共享一下吧^_^



package com.mystruts.struts;
import   java.io.IOException;   
//import   java.io.InputStream;   
import   java.io.FileOutputStream;   
import   java.util.Enumeration;   
import   java.util.Properties;   
public   class   UserDirectory   {   
  private   static   final   String   UserDirectoryFile   =   "resources/users.properties";   
  private   static   final   String   UserDirectoryHeader   =   "${user}=${password}";   
  private   static   UserDirectory   userDirectory   =   null;   
  private   static   Properties   p;   
  private   UserDirectory()   throws   Exception   {   
  
   java.io.InputStream   i   =   null;   
   p   =   null;   
   i   =   this.getClass().getClassLoader().   
   getResourceAsStream(UserDirectoryFile);   
   if   (null==i)   {   
    throw   new   Exception();   
   }   
  
   else   {   
  
    try   {   
     p   =   new   Properties();   
     p.load(i);   
     i.close();   
    }   
  
    catch   (java.io.IOException   e)   {   
     p   =   null;   
     System.out.println(e.getMessage());   
     throw   new   Exception();   
    }   
  
    finally   {   
     i   =   null;   
    }   
  
   }   //   end   else   
  
  }   //   end   UserDirectory   
  public   static   UserDirectory   getInstance()   throws   
  Exception   {   
  
   if   (null==userDirectory)   {   
  
    userDirectory   =   new   UserDirectory();   
  
   }   
  
   return   userDirectory;   
  
  }   
  public   String   fixId(String   userId)   {   
   return   userId.toUpperCase();   
  }   
  public   boolean   isValidPassword(String   userId,   String   
    password)   {   
  
   //   no   null   passwords   
   if   (null==password)   return   false;   
  
   //   conform   userId   to   uppercase   
   String   _userId   =   fixId(userId);   
  
   //   no   passwords   for   non-users   
   if   (!isUserExist(_userId))   return   false;   
  
   //   does   password   match   user's   password   
   return   (password.equals(getPassword(_userId)));   
  
  }   
  public   boolean   isUserExist(String   userId)   {   
  
   //   no   null   users   
   if   (null==userId)   return   false;   
  
   //   if   not   null,   it's   a   user   
   return   !(null==p.getProperty(userId));   
  
  }   
  public   String   getPassword(String   userId)   {   
   return   p.getProperty(userId);   
  }   
  public   Enumeration   getUserIds()   {   
   return   p.propertyNames();   
  }   
  public   void   setUser(String   userId,   String   password)   
  throws   
  Exception   {   
  
   //   no   nulls   
   if   ((null==userId)   ||   (null==password))   {   
    throw   new   Exception();   
   }   
  
  
   try   {   
  
    //   conform   userId   to   uppercase   when   stored   
    p.put(fixId(userId),   password);   
    p.store(new   FileOutputStream(UserDirectoryFile),   
      UserDirectoryHeader);   
  
   }   
  
   catch   (IOException   e)   {   

    throw   new   Exception();   
  
   }   
  }   
  
}   //   end   UserDirectory  

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/34710/showart_324460.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP