4 系统实现
4.1 用户操作文件总体架构
用户操作模块主要包括用户登录和人员管理模块,具体功能如下: 用户登录模块:用于登录系统。
人员管理模块:用于浏览、添加和修改人员信息。 4.1.1 用户登录模块设计
系统登陆是企业员工信息管理中最先使用的功能,因为用户登陆在数据库中使用的是人员表,人员表中有一个isadmin字段,是来标识是否是管理员的。在登陆时要根据数据库的这个字段来判断此用户是否具有管理员的权限。在网页里添写用户名和密码后点击【登陆】按钮,网页会访问一个URL,这个URL是“logon.do?action=logon”,代码如下:
在这个表单的name的值是usersForm,它是Struts的ActoinForm的实现类在配置文件中的名字,如下所示:
type=\ action是Struts的Action的URL,他们在Struts的配置文件中都是已经配好的, 19 height=\> class=\ type=\name=\value=\重置 name=\ 如下所示: type=\scope=\ 在这个配置文件中,可以了解到如下信息: 根据name=\可以找到与之相对应的ActionForm的实现类“com.bOS.bPRO_PersonManage.actionform.UsersForm”。 根据type=\可以找到处理用户数据的Action类。 根据 Struts的Action实现类的execute()方法是最先被执行的,这个方法本身也没有具体的事务,而是根据action的参数不同执行相应的方法。在登陆页里面可以找到有一个“action=logon”的字样,它的目的就是在这里做逻辑判断。当action=logon时调用logon()方法。logon()方法从UsersForm中得到用户提交的数据,然后在调用UsersDao()的logonUsers()方法。并且把UsersForm转成Users类做为logonUsers()方法的参数。调用后会返回一个boolean型的值。如果为真,则返回“mapping.findForward(\”否则返回“mapping.findForward(\”也就是当用户登陆成功后,返回给用户登陆成功的页面,登陆失败后返回用户一个登陆失败的页面。那么UsersDao的logonUsers()方法是根据什么得到的返回值呢,现在就让我们看看这个方法。这个方法先通过HibSessionFactory得到一个Hibernate的Session并且开始一个事务,Session再像使用一个欲编译似的命令似的东西,设定参数、提交事务和最后在关闭Session.。得到一个List里面就存储着所有查询出的结果。根据这个结果就可以判断出该用户是否有登陆的权根了,在返回true 或者false。就这样合法的用户就可以顺利的登陆了。那刚才那些有些类似于欲编译的东西是什么呢,这些就是Hibernate特有的查询语言,被称为Hibernate 查询语言(HQL),而它本身也就是使用的JDBC的欲编译技术。 4.1.2 人员管理模块设计 人员管理模块主要包括浏览人员信息、添加人员信息、人员信息的添加、人员信息的修改。此模块文件架构如图4所示。 各项管理工作都是在用户成功登陆后的管理页面进行的,在管理控制页面的左侧是各 20 path=\name=\ 项的相关链接,右侧是操作平台。管理控制页面右侧实际上是一个iframe,如下所示: 在左侧的链接中使用target=\就可以在这个iframe中打开新的链接了。 在Struts配置文件中,添加人员信息的链接没有使用ActionForm类,也没有使用Action的实现类,如下所示: adduser.jsp文件,只是一个普通的JSP文件,但是它的表单元素都是与UsersForm相对应的,UsersForm如下所示: package com.bOS.bPRO_PersonManage.actionform; import com.bOS.bUtil.DateUtil; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.ActionErrors; import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionMapping; import com.bOS.bPRO_PersonManage.en.Users; public class UsersForm extends ActionForm { public String getContent() { return content; } public void setContent(String content) { this.content = content; } private Long id; private String username; private String password; private Byte sex; private String birthday; private String createtime; private Byte isadmin; private String content; public String getCreatetime() { 21 return createtime; } public void setCreatetime(String createtime) { this.createtime = createtime; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Byte getIsadmin() { return isadmin; } public void setIsadmin(Byte isadmin) { this.isadmin = isadmin; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public void reset(ActionMapping arg0, HttpServletRequest arg1) { this.id=null; this.username=null; this.password=null; this.isadmin=null; this.createtime=null; 22 this.content=null; this.sex=null; this.birthday=null; } public ActionErrors validate(ActionMapping arg0, HttpServletRequest arg1) { return null; } public String toString() { StringBuffer toStr = new StringBuffer(); toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ toStr.append(\ return toStr.toString(); } public String getBirthday() { return birthday; } public void setBirthday(String birthday) { this.birthday = birthday; } public Byte getSex() { return sex; } public void setSex(Byte sex) { this.sex = sex; } 23