快速业务通道

整合JSF、Hibernate、Spring实现用户登录应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
uot;> <value>50</value> </property> <property name="idleConnectionTestPeriod"> <value>3000</value> </property> </bean>

三、业务逻辑层

为了实现登录功能,这里只需要一个简单的登录逻辑。首先,我们定义了一个IUserService接口,用于根据用户名和密码得到用户信息。

7. com.it168.logon.model.service.IUserService.java:

package com.it168.logon.model.service; import com.it168.logon.model.businessobject.Userinfo; public interface IUserService { public Userinfo login(String username, String password); }

接着,UserService类实现了该接口:

整合JSF、Hibernate、Spring实现用户登录应用(4)

时间:2011-03-14 IT168 骆驼

8. com.it168.logon.model.service.impl.UserService.java:

package com.it168.logon.model.service.impl; import com.it168.logon.model.businessobject.Userinfo; import com.it168.logon.model.dao.impl.UserDAO; import com.it168.logon.model.service.IUserService; public class UserService implements IUserService { private UserDAO userDAO; public void setUserDAO(UserDAO userDAO) { this.userDAO = userDAO; } public Userinfo login(String username, String password) { Userinfo user = this.userDAO.getUser(username); if (user != null) { if (!user.getPassword().equals(password)) { user = null; } } return user; } }

大家或许注意到了这样一句:

private UserDAO userDAO;

这里的UserDAO正是数据访问层中的UserDAO。在UserService类中,我们没有看到UserDAO的实例化过程,既然没有实例化,Userinfo user = this.userDAO.getUser(username);这行代码,又是如何发挥作用的呢?

9. applicationContext.xml代码片断二:

<bean id="userDAO" class="com.it168.logon.model.dao.impl.UserDAO"> <property name="hibernateTemplate"> <ref bean="hibernateTemplate" /> </property> </bean> <bean id="userService" class="com.it168.logon.model.service.impl.UserService"> <property name="userDAO"> <ref local="userDAO" /> </property> </bean>

这也正是Spring的强大所在!它将类的实例化过程交给了Spring容器,从而实现了控制反转(IoC)。

四、表示层

我们实现了业务逻辑,接下来就看业务逻辑是如何与JSF页面相关联的。

首先我们定义了一个UserBean类,该类实现了一个verify()方法,如果登录成功,返回“success”字符串,如果失败,则返回“failure”字符串。

10. com.it168.logon.view.bean.UserBean.java代码片断:

public String verify() { Userinfo user = serviceLocator.getUserService().login(this.username, this.password); if (user == null) { this.errorMessage = "登录失败"; this.loggedIn = false; return "failure"; } else { this.loggedIn = true; return "success"; } }

整合JSF、Hibernate、Spring实现用户登录应用(5)

时间:2011-03-14 IT168 骆驼

大家可能注意到了这段代码:

Userinfo user = serviceLocator.getUserService().login(this.username, this.password);

这里的serviceLocator是ServiceLocatorBean类的实例:

11. com.it168.logon.view.bean.ServiceLocatorBean.java:

package com.it168.logon.view.bean; import

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号