编辑: cyhzg | 2014-11-22 |
HttpServletResponse,认证中心响应URL;
ReturnMethod,返回方式参数.boolean型,true表 示用户已经登录过统一认证;
false表示没有认证,同时 重定向到认证中心认证页面. 其checkLogin关键实现代码如下: public boolean checkLogin(HttpServletRequest request, HttpServletResponse response) { if (hasValidTicket(request)) {//判断是否认证通过 setSiteCookie(response);
hasTicketInURL = true;
return true;
} if (isSiteCookieValid(request)) {//判断是否可以 获取cookie return true;
} hasTicketInURL = false;
return false;
} 若已登录,则ht函数返回用户信息.否则根据 checkLogin的ReturnMethod参数选择返回的页面. 4.2 数据处理 通过Hibernate对JDBC进行了非常轻量级的对象封 装,用以连接图书馆管理系统数据库,获取读者的借阅 相关信息数据,进而利用Spring进行数据分析处理[6-7] . 程序实现: (1)利用Hibernate开放源代码的对象关系映射框 架,编写Java类LibraryDAOHibernate,这个类继承了 BaseDAOHibernate类,实现了LibraryDAO接口,其中 包含了getBurbList(违规信息列表)和getHoldShelfList (预约信息列表)方法,分别用来获取违规(包括逾 期、罚款)和预约在数据库中的所有字段.其关键实 现代码如下: public class LibraryDAOHibernate extends BaseDAOHibernate implements LibraryDAO { p u b l i c L i s t g e t B u r b L i s t ( U s e r u s e r , i n t warningBeginDateCount) { return this.getHibernateTemplate().?nd( from Burb b where b.borrower.secondId=? and b.ord=0 and (b.block='
od'
or b.burbDate>
=?) and 图2 用户登录实现流程图 Hashtable checkLogin HttpServletRequest HttpSession HttpServletResponse ReturnMethod 获取读者信息 (认证成功) Hashtable ht 统一身份认证系统 RSS 服务系统 DB False True True False RSS 服务接口 未登录 已登录 RSS 服务界面 读者申请获取 RSS 服务 URL
68 2009年第6期(总第61期) http: // www.dlf.net.cn 技术与应用 (b.block='
od'
or b.block='
fine'
or b.block='
l'
) order by b.id desc ,//违规信息列表的查询条件 new Object[]{user.getNormalSecondId(),new Integer(warningBeginDateCount)});
} p u b lic Lis t g etH o ld S h elf Lis t( U s er u s er, in t holdExpBeginDate) { return this.getHibernateTemplate().?nd( from HoldShelf h where h.borrower. secondId=? and h.itemStatus='
h'
and h.holdExpDate>
=? order by h.onHoldDate desc ,//预约信息列表的查询条件 new Object[]{user.getNormalSecondId(),new Integer(holdExpBeginDate)});
} } (2)利用Spring开源框架用以构造我们所需要的 Model,创建JavaBean(Burb、Borrower、HoldShelf、 ArticleType、Item类)对Hibernate获取的数据库字段进行 分析,返回预约、逾期、罚款等各种借阅信息元数据. 4.3 RSS包装与服务界面的实现 系统使用RSS2.0标准进行包装.程序实现是利用 MVC框架的Struts开发RSS的RSS Feed.RSS Feed实 质是xml文件,其核心是编写LibraryAction类,导入 javax.servlet.http.HttpServletRequest和javax.servlet.http. HttpServletResponse包,根据数据处理模块JavaBean返 回的借阅信息元数据进行包装,Response方法返回各项 xml内容. RSS服务界面使用Jsp页面展示.程序根据不同 的读者返回不同的getRssId,这个getRssId是根据读者 的ID号(学工号)用哈希函数所产生的.页面代码 为:addRssLink.do?rssId= +this.getCurrentUser(request). getRssId() 读者获取的RSS地址实例为:http://www.lib.sjtu. edu.cn/libraryRss.do?rssId=5d229ecef38150c56bfe82d2532 be2c8 其中 5d229ecef38150c56bfe82d2532be2c8 即为 RssId.将这个RSS地址添加到RSS阅读器中,读者即可 以收取读者在图书馆的个人借阅信息了.