JSP公司办公信息管理系统(英文文献翻译+开题报告+答辩PPT) 第18页
用户身份验证进行判断,如果用户通过了系统登录页面验证,那么在服务器分配给这个用户的会话对象的ID字段里,便不会为空。如若不然,则表明用户没有通过登录,系统便将用户导向系统登录页面。在这个系统的大部分页面都有这样的代码,主要是避免用户直接调用相应的页面而不直接登录的BUG。
<%String TheMessage = "请选择您想进入的功能模块";
if (session.getAttribute("ID") == null) {
response.sendRedirect("../login.jsp");
}%>
除了提供了到三个系统的链接外,还向用户显示了用户名和系统时间等欢迎信息,用到时钟calendar方法,通过.getTime来记录时间,用compareTo来进行比较。
4.3 公司员工信息管理子系统
公司员工信息管理子系统主要包括员工信息管理子系统主页面(employeeinformation.jsp),修改个人信息页面(modifypersonalinformation.jsp),系统管理员管理页面(systemmanger.jsp),员工信息管理子系统添加用户页面(addnewuser.jsp)和修改用户信息页面(modifyuserinformation.jsp)。所用到的数据库组件主要是系统用户信息表(PSLoins),公司部门信息表(department)和职位信息表(positions)。
4.3.1 员工信息管理子系统主页面(employeeinformation.jsp)
图4.4是整个员工信息管理子系统的主页面,我们可以通过选择不同的单选按钮,进行相应的用户信息查询或管理功能。此页面据听过能描述为:按照不同的排序查询所有员工记录;选择查询某一个部门全部员工信息;选择查询某个员工的信息;选择查询某个部门主管记录;选择修改用户自己的员工记录;选择进入系统管理员选项。图4.3.2是查询结果页面
图 4.4员工信息管理子系统主页面
Fig4.4 The page of employee information
图 4.5 查询结果页面
Fig4.5 The page of demand result
代码解释:
首先还是先进行身份鉴别,如果已经登录,则可以浏览此页面,否则重新导向系统登录页面,然后进行数据源连接。
Connection conn = (new DBConnect()).getConnPoolConn("eims");
Statement stmt = conn.createStatement();
此页面可分为两种状况,一种情况是用户第一次进入系页面,另一种为用户已提交“进入选项”按钮。我们可以通过对request对象的form集合里的表元素进行非空判断。如果返回false值,则意味用户第一次进入此页面。如果返回true值的话,意味着用户还没有单击Send按钮,即为用户第一次进入此页面。
如果返回为true值的话,意味着用户已经单击Send按钮,JSP程序不需进行相应的相应,生成合理的页面。语句如下:
if (request.getParameter("Send") != null) {
根据用户提交表单是一并提交的表单元素SendTo参数,来进行相应员工信息查询或管理。
如果SendTo值为“allemployeeinformation”,表示用户希望查询所有的员工信息、则从用户数据表pslogins里查询所有的记录,根据表单元素AllOrder的值进行排列,并将结果存储到临时记录集RSEnguiryResult里,同时设置相应的字符串变量TheMessage作为系统反馈提示信息。
在employeeeinformation.jsp页面里的HTML部分里,有几个地方需要提及:一个是Select型的表单元素DepartmentName。我们在用户第一次进入该页面时从PSLogins表里查询出记录集RSDepartment用来记录所有部门的名称,并转存在Vector型VTDepartment中,在HTML部分使用该向量来分别显示各个部门的名称。
对于另一个Select 型的表单元素RoleName。在用户第一次进入该页面时从PSLogins表里查询出记录集RSRoles用来记录所有员工姓名,也存储在Vector型VTDepartment中,同上面的一样。
如果查询了全体员工的信息,部门员工的信息或者某个员工的信息,其结果将在本页面的结尾处显示。
在这部分的JSP代码里,可以看到使用了Label变量。通过Label的判断,来决定是否生成查询结构界面。
4.3.2 修改个人信息页面(modifypersonalinformation.jsp)
图4.3.3显示了员工信息管理系统中的修改个人信息页面的示例应用。在这个页面中,用户可以对原来系统数据库的个人信息进行修改。但是用户所能够修改的个人信息字段是有限的。这些信息都是允许用户修改的;而其他字段则不在现在这里。如部门,职位,是否为系统管理员,是否为财务管理员。如果要多这些重要字段进行修改,用户必须具备系统管理员身份,并通过系统管理员页面(systemmanager.jsp 和modifyuserinformation.jsp)来进行。
图 4.6 修改个人信息页面
Fig4.6 The page of modify personal information
首先还是进行用户身份鉴别,建立连接,然后判断页面是否进行提交等。
这里主要说的MD5加密方法,因为这里涉及到用户的密码信息,以及相关信息的修改,首先接受介绍一下MD5加密方法的一些特点。
MD5的全程Message—Digest Alorithm5(信息一摘要算法),用MD5算法对用户口令字符串进行加密后,可以得到一个32位长度的字符串。即使向他人公布MD5算法程序以及加密后所得的32位长度的字符串,他人也无法反向破解并获取用户的原始密码。
我们这里用的当用用户提交表单,此时有两种情况:一种是用户在表单元素Password里提交的密码与用户在session里储存的Password字段一致,这表明用户提交了正确的密码信息,可以进行用户信息的更新。
If (new MD5()
.getMD5ofStr(request.getParameter(“Password”)).equalsIgnoreCase
(session.getAttribute(“Password”)+””)){
else { TheMessage = “密码有误,请重试”; }
}
在用户正确提供了密码情况下,还存在这两种情况:一种是用户没有打算修改自己的密码。此时,将用户更新的各项信息存储到session对象的各个相应的字段,并将用户提交的表单信息(不包括密码字段)更新到数据库里,然后给出相应的系统系统提示信息Themessage。
If (request.getParameter(“Send”) != null) {
//进行用户身份校验
if (new MD5()
.getMD5ofStr(request.getParameter(“Password”)).equalsIgnoreCase
(session.getAttribute(“Password”)+””)){
另一种情况与这种情况类似,方法相反。
4.3.3 系统管理员管理页面(systemmanager.jsp)
系统管理员根据不同的排序方式进入此页面,可以选中要修改的用,并单击“修改此用户信息”按钮进入修改此用户信息的页面;以及删除用户,添加用户选项。图4.7显示系统管理员管理页面的示例应用。
<< 上一页 [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] ... 下一页 >>