www.51jplw.com
5具体实现
5.1登陆模块设计
用户登陆页面login.jsp的主要功能是对用户在登录框内输入的用户名及密码,检查用户的用户名和用户密码与数据库中表的数据是否匹配,如果匹配则登录成功,如果不匹配则提示出错。本系统的采用的是MD5的加密方法来对用户密码来行加密。具有一定安全性。
在本系统中,用户使用唯一的用户登录名登录,而用户一旦登录,通过读取Session对象,我们可以清楚地掌握当前用户的信息。在Session中存贮登陆账号username、用户ID empid、用户权限userrole。为系统的后续模块做准备。下面是登陆界面,当用户登陆成功后,会显示登陆成功的界面:欢迎你;不成功就会显示:你输入的信息无效.
图5.1登陆页面
实现代码:
public class loginForm extends ActionForm {
private String password; private String username;
public String getPassword() { return password; }
public void setPassword(String password) { this.password = password; }
public void setUsername(String username) { this.username = username; }
public String getUsername() { return username; }
www.51jplw.com
16
www.51jplw.com
public ActionErrors validate(ActionMapping actionMapping,
HttpServletRequest httpServletRequest) { /** @todo: finish this method, this is just the skeleton.*/ return null; }
public void reset(ActionMapping actionMapping,
HttpServletRequest servletRequest) { } }
5.2查询模块设计
5.2.1项目信息查询子模块
项目信息查询页面items.jsp的主要功能是对所有项目的信息进行查询。在项目档中显示所有项目的项目名。点击项目名后的详细链接可以查看该项目的详细信息。当点击项目名时,会根据项目名查询出项目ID为该项目ID的状态以及项目组成员。显示在状态档及组员档里。
状态档里显示的是项目的状态。项目的状态所描述的是项目软件开发的生存周期。状态信息是由总工程师。项目经理、项目经理助理来维护,是项目开发的计划制定。举例如:问题定义、可行性研究、需求分析、概要设计、详细设计、编码、软件测试、运行维护等状态。点击状态名后的详细链接可以查看该状态的详细信息。当点击状态名时,会根据状态名查询出状态ID为该状态ID的进程。显示在进程档里。
进程档里显示的是项目的进程。项目的进程所描述的是在某个状态下软件的进程安排及负责人。进程是项目开发的较详细的计划安排。举例如:在详细设计的状态下,可以有每个功能模块的详细设计的进程式。点击进程名后的详细链接可以查看该进程的详细信息。当点击进程名时,会根据进程名查询出进程ID为该进程ID的日志内容显示在日志档中。
日志档里显示的是项目的日志。描述项目的完成情况。点击日志名后的详细链接可以查看该日志的详细信息。
当点击菜单档的主页时。回到items.jsp页面。显示的是系统的所有项目,参与了项目的所有人员,所有的状态、进程和日志。
www.51jplw.com
17
www.51jplw.com
图5.2项目信息查询页面
实现代码:
public class itemsAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) { itemsForm itemsForm = (itemsForm) form;
String projectid = itemsForm.getProjectid(); String stateid=itemsForm.getStateid();
String processid=itemsForm.getProcessid(); String pageid = itemsForm.getPageid(); String pageid1 = itemsForm.getPageid1(); String pageid2 = itemsForm.getPageid2(); String pageid3 = itemsForm.getPageid3(); String pageid4 = itemsForm.getPageid4(); String projectidsession=new String(projectid); String stateidsession=new String(stateid);
String processidsession=new String(processid); String pageidsession=new String(pageid);
www.51jplw.com
18
www.51jplw.com
String pageidsession1=new String(pageid1); String pageidsession2=new String(pageid2); String pageidsession3=new String(pageid3); String pageidsession4=new String(pageid4); HttpSession session = request.getSession();
session.setAttribute(\ session.setAttribute(\
session.setAttribute(\ session.setAttribute(\ session.setAttribute(\ session.setAttribute(\ session.setAttribute(\ session.setAttribute(\ return (mapping.findForward(\ } }
5.3数据维护模块设计
5.3.1 项目管理子模块
项目管理子模块只有用户权限为1的用户才有实现该功能。项目管理子模块又分为创建项目模块用维护项目模块
(1)、创建项目模块实现的是项目的新建功能。在项目刚创建的时候必须填写项目名、项目经理ID、CMM等级。
图5.3新建项目页面
(2)、维护模块实现的是项目的查询、修改、删除等功能。
图5.4维护项目页面
www.51jplw.com
19
www.51jplw.com
实现代码:
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) { cmmForm cmmForm = (cmmForm) form; StringBean tt= new StringBean();
int cmmidid=(int)(cmmForm.getCmmidid()) ; int cmmid=(int)(cmmForm.getCmmid()) ;
String cmmname =tt.getString(cmmForm.getCmmname()) ; String bewrite = tt.getString(cmmForm.getBewrite());
cmmBean link=new cmmBean();
boolean count=link.updatecmm(cmmidid,cmmid,cmmname,bewrite); cmmForm.setCmmidid(0); cmmForm.setCmmid(0); cmmForm.setCmmname(\ cmmForm.setBewrite(\ if (count==true ) {
return mapping.findForward(\
else {return mapping.findForward(\ }
5.3.2状态管理子模块
状态管理子模块用户权限为1、2、3的用户可以实现该功能。权限为1的用户为总工程师,权限为2的用户为项目经理,权限为3的用户为项目经理助理。可以设计用户的权限,例如设计某职务为分析师的用户权限为3使其可以参与项目计划的规划和修定。状态管理子模块又分为创建状态模块用维护状态模块。创建状态模块实现的是状态的新建功能。在状态刚创建的时候必须填写项目表中存在的项目ID、状态名称及CMM等级。维护状态模块中可实现状态的查询、修改、删除,实现项目状态内容的完善。
5.3.3进程管理子模块
进程管理子模块用户权限为1、2、3的用户可以实现该功能。进程管理子模块又分为创建进程模块用维护进程模块。创建进程模块实现的是进程的新建功能。在进程刚创建的时候必须填写项目表中存在的状态ID、负责人ID、进程名称及CMM等级。维
www.51jplw.com
20