您的位置:首页 >> 编程开发 >> Java >> JavaBeans >> 正文
RSS
 

Petstore源码追踪记(3)-商业逻辑处理(四)

http://www.rdxx.com 01年11月18日 11:08 互联网 我要投稿

关键词: 商业 , 逻辑 , Stor

UserEJB.java,它是Local Entity Bean,对应数据库中实际资料表-
UserEJBTable
在约88列可看到SignOnEJB所呼叫的函数,请读者顺便加
上侦察程序代码:
    
   
public boolean matchPassword(String password) {
  //请加入侦察程序代码,方便稍候程序验证
  System.out.println("UserEJB执行matchPassword()进行密码比对");
    return password.equals(getPassword());
}
    

17 UserEJBEntity Bean

点选图17右下角”Deployment Settings”钮,可见到图18画面,
选择左下角”Method Implementation Queries””Container Methods”
”createRow”,即可看到图18SQL Query

18 UserEJB对应资料表为UserEJBTable

由上述所列程序代码及图,读者应该可以了解使用者登入在EJBz tier的运作情形,在UserEJB也看到一个不一样的用法,就是在Entity Bean上使用商业逻辑-matchPassword() 函数,在大部份的EJB书籍或文件都告诉我们商业逻辑应该用Session Bean去实作,资料则用Entity Bean来实作,但在这里密码比较的商业逻辑是非常简单的,只用了一行程序就解决了,所以也不需为了它另外再做一个Session Bean
也许读者会问为什么不将此函数写在SignOnEJB?笔者认为密码比对不只在登入流程上会使用,在使用者基本资料编辑时也可能会用到,所以还是放在UserEJB比较适合:)     我们能够知道使用者基本资料是存于UserEJBTable,我们要如何知道此资料表所存内容是什么?请参阅注4

现在请重复第一阶段验证步骤将程序重新编辑及部署,可发现程序如我们所预期般执行!

19 第二阶段程序验证结果

第三阶段
大家还记得在SignOnFiltervalidateSignOn()函数,验证成功会将
SIGNED_ON_USER
变量(对应实际变量为j_signon)的值设为真值(true)

hreq.getSession().setAttribute(SIGNED_ON_USER, new Boolean(true));

当我们再次从首页进入使用者基本资料浏览页,会再度给SignOnFilter拦截,从Session取出SIGNED_ON_USER变量(对应实际变量为j_signon),经判断为真值(true)SignOnFilter则会放行转导至使用者基本资料浏览画面(customer.do),读者可参考下列程序代码加入侦察码,在约125doFilter()函数:


    boolean signedOn = false;
    if (hreq.getSession().getAttribute(SIGNED_ON_USER) != null) {
       signedOn
=((Boolean)hreq.getSession().getAttribute(SIGNED_ON_USER)).booleanValue();
        //
加入侦察码
System.out.println("signedOn="+signedOn);
    } else {
       hreq.getSession().setAttribute(SIGNED_ON_USER, new Boolean(false));
    }
       // jump to the resource if signed on
       //
若已登入过,则结束此Filter工作,进入Filter chain,以本例来说,它为
Filter chain
中最后一个Filter,所以就是不做任何事,让使用者进入他的目的画面
       if (signedOn) {
           //
加入侦察码
           System.out.println("
使用者已登入过!");
           chain.doFilter(request,response);
           return;
       }
9 7 3 1 2 3 4 4 8 :

 
 
标签: 商业 , 逻辑 , Stor 打印本文
 
 
  热点搜索
 
 
 



Valid XHTML 1.0 Transitional
Copyright ©2005 - 2008 Rdxx.Com,All Rights Reserved
收藏本页
收藏本站