LoginAction 是登录时Struts的Action的实现类,是这个登录页的核心内容,主要代码如下所示:
public ActionForward execute(ActionMapping mapping,
ActionForm form, HttpServletRequest request, HttpServletResponse
response)
throws
Exception {
String adminName = request.getParameter(\ String password = request.getParameter(\ String rights = request.getParameter(\ Admin admin = new Admin(); admin.setAdminName(adminName); admin.setPassword(password); admin.setRights(rights); boolean flag = false;
AdminDAO adminDao = new AdminDAOImpl(); flag = adminDao.loginCheck(admin); if (flag) {
}
}
if (rights.equals(\ // 管理员登录 request.getSession().setAttribute(\//System.out.println(admin.getAdminName()); return mapping.findForward(\
}else if (rights.equals(\
//普通用户登录
request.getSession().setAttribute(\return mapping.findForward(\
request.getSession().setAttribute(\登录出错
ActionMessages errors = new ActionMessages(); ActionMessage error = new ActionMessage(\ errors.add(\
this.saveErrors(request,errors); }
Struts的Action实现类的execute()方法是最先被执行的,首先从request中得到用户提交的数据,然后在调用AdminDAO()的loginCheck ()方法。并且把数据封装成admin类做为loginCheck ()方法的参数。调用后会返回一个boolean型的值。如果为真,则返回“mapping.findForward(\”否则返回
return mapping.getInputForward();
“mapping.getInputForward();”也就是当用户登录成功后,返回给用户登录成功的页面,登录失败后返回用户一个登录页面。该方法的实现如下所示:
public boolean loginCheck(Admin admin) {
}
//boolean flag = false;
Session session = HibernateSessionFactory.getSession(); Transaction t = session.beginTransaction();
Query query = session.createQuery(\count(*) from Admin as a where a.adminName=? and a.password=? and a.rights=?\ query.setString(0,admin.getAdminName()); query.setString(1,admin.getPassword()); query.setString(2,admin.getRights()); List list = null; list = query.list(); t.commit();
HibernateSessionFactory.closeSession(); if (list!=null) { }
return false;
Iterator it = list.iterator(); if (it.hasNext()) { }
if (((Integer)it.next()).intValue()==1) { }
return true;
这个方法先通过HibSessionFactory得到一个Hibernate的Session并且开始一个事务,Session再像使用一个欲编译似的命令似的东西,设定参数、提交事务和最后在关闭Session。得到一个List里面就存储着所有查询出的结果。根据这个结果就可以判断出该用户是否有登录的权根了,在返回true或者false。就这样合法的用户就可以顺利的登录了。那刚才那些类似于欲编译的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate 查询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。
5.2.2 系统主页设计
管理员登录系统后进入系统主页,运行效果如图5.2所示。
图5.2 系统主页运行结果
进入主页后可以看到各个功能模块,如果是超级管理员登录,超级管理员进行所有操作,如管理员的添加、浏览、删除及修改。例如添加管理员实现如图5.3所示。
图5.3 添加管理员页面运行结果
如果是普通管理员登录,只能对本身信息进行操作,不能对管理员模块进行操作,但是可以对其他所用模块进行操作。 5.2.3 员工管理模块设计
员工管理模块主要包括浏览员工信息、添加员工信息、员工信息的修改、员