太原工业学院毕业论文
获取Session
public static Session getSession() throws HibernateException {
Session session = (Session) threadLocal.get(); if (session == null || !session.isOpen()) { }
if (sessionFactory == null) { }
session=(sessionFactory!=null)? sessionFactory.openSession() : null;
threadLocal.set(session);
rebuildSessionFactory();
return session; }
(2)hibernate.cfg.xml中对数据库连接的配置
org.hibernate.dialect.Oracle9Dialect
jdbc:oracle:thin:@127.0.0.1:1521:XE
oracle.jdbc.driver.OracleDriver
28 太原工业学院毕业论文 (3)关闭数据库连接 关闭session,代码如下: public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } 29 太原工业学院毕业论文 5.2系统模块功能概述 5.2.1登录验证 用户输入自己的账号密码,系统对用户输入的信息进行合法性检查, 如果用户输入的信息不完整,提示用户输入相应的信息。 如果无提示,单击【登录】按钮 如果用户输入的账号不存在,提示“用户名不存在,请重新登录!” 如果用户输入密码与账号不匹配,提示“密码错误,请重新登录!” 如果用户验证码不正确,提示“验证码错误,请重新登录!” 详细设计: 首先,用户在访问index.jsp页面的时候,系统要检测是否需要自动登陆,那如何检测呢,就是检查浏览器的cookie中有没有用户上次登陆保存的用户名和密码,如果有,就用cookie中的用户名和密码来直接登陆。如果没有就转到登陆页面login.jsp。 然后,当用户登陆的时候,系统需要检查用户是否有选择下次访问自动登陆的checkbox,如果有选择,系统就需要将这次登陆的用户名和密码保存到用户浏览器的cookie中,以便下次访问的时候能自动登陆。 具体登陆过程: 1.查看用户输入的验证码是否正确,若错误,则跳转到登录页面,提示错误信息 2.调用IMemberService接口中的findMemberinfoByName方法找出此用户名对应的用户信息memberinfo,若memberinfo为null,则此用户名不存在,立即跳转到登录页面,提示错误信息; 3.用登录的密码与memberinfo中的密码相比较,若不一致,则跳转到登录页面,提示错误信息 4.查看在同一浏览器中是否有其他用户登录,若有,则调用IMemberService接口的logout方法让这个用户下线,然后在调用IMemberService接口中的login方法让当前用户上线。 5.判断这次登陆是否和上次登陆是否在同一天内,如果不是需要给这次登陆加登陆应该能获取的积分数,并需要保存获取积分的记录 6.将会员的isonline设成在线状态,将latestDate保存到session中,再更新 30 太原工业学院毕业论文 用户信息中的latestDate。 7.查询积分排名前五的用户,将数据以List对象形式存储到session中 (2)登录以后,页面跳转到跑步社区首页,如图5-2 图5-2跑步社区首页 5.2.2 用户个人空间管理 5.2.2.1 查看个人空间 前台超链接的设计:space/checkSpace?username=xxx 链接说明: checkSpace是在名为space的命名空间下一个action的名字 如果是在登录用户的主页点击“个性空间”,则username传递的是当前的用户昵 称;如果点击其他会员昵称,则username传递的是其他会员的昵称 详细设计: 1. 从session中获取用户信息,判断当前用户是否已登录 31 太原工业学院毕业论文 2. 调用IMemberService中的findMemberinfoByName方法查出username对应的用户信息memberinfo,对照当前session中的用户信息,判断是否是当前登录用户 3. 判断该用户是否已经创建了个人空间, a) 被访问用户还没有创建空间,若被访问用户是当前登录用户,则跳转到创 建个性空间页面,否则跳转回到主页member/activity.jsp,提示该用户还没有创建个性空间 b) 被访问用户已经创建个性空间 1. 被访问用户是其他用户,调用IRunOrder接口的 findRunOrderByPage方法,查出该用户发布的约跑消息, 调用IMemberService接口中的findFriendRecordByNickname方法查出该用户的好友,之后跳转到otherspace.jsp页面 2. 被访问用户是当前登陆用户,调用IRunRecordService接口中的 findRunRecordByPage方法查出登陆用户参加的约跑消息,调用IMemberService接口中的findFriendRecordByNickname方法查出当前登录用户的好友,之后跳转到space.jsp 5.2.3论坛管理 5.2.3.1论坛首页显示 单击“跑步论坛“命令,进入跑步论坛首页,显示各个版面,以及各版面的前5条主题。 详细设计: 1. 调用IForumService接口中的forumDisplay方法查找出论坛的全部 版面信息,查出后将数据存储到变量名叫list的List类型对象中 2. 遍历list集合,调用ITopicService接口中findTopTopic方法查询 出各版面的前五条主题,将查询的结果与版面一起封装到map集合中 遍历集合代码如下: for(Forum forum:list){ 32