孙延正《管理信息系统开发实践》设计方案成果报告.docx
《孙延正《管理信息系统开发实践》设计方案成果报告.docx》由会员分享,可在线阅读,更多相关《孙延正《管理信息系统开发实践》设计方案成果报告.docx(42页珍藏版)》请在冰豆网上搜索。
孙延正《管理信息系统开发实践》设计方案成果报告
山东建筑大学
课程设计成果报告
题目:
课程:
院(部):
专业:
班级:
学生姓名:
学号:
指导教师:
完成日期:
1.系统功能简介
本系统是《毕业设计管理系统》中教师、教研室主任用户的部分功能。
系统向教师用户提供了查看已经提交的题目、提交题目并且可以进行修改和删除功能,向教研室主任提供了查询、审批的功能。
使用eclipse-jee-europa-winter-win32+Jdk1.6+Tomcat6开发、测试。
2.系统组件关系
本系统使用构架进行开发,即使用JSP获得用户输入,由Servlet处理请求,将数据存入服务器对象(session或request)中。
JSP使用EL表达式和JSTL标签将数据从服务器对象中取出数据,展示出来。
2.1.登录功能的处理流程:
login.jsp收集用户的输入,点击“提交”按钮后,由LoginServlet的doPost方法获得jsp页面的username、password参数的值,如果是合法用户,则将userInfo存入session并转向welcome.js页面,
否则将”用户名或密码错误”以“error”为名存入session,转回login.jsp,该页面显示error的内容。
2.2.welcome.jsp页面功能
2.2.1.查看所有设计题目
2.2.1.1.单击超链接“查看所有设计题目”,即请求GraduateProjectServlet的doGet方法,由于没有其它参数,会直接执行该类的list方法。
在list方法中,通过GraduateProjectDao获得所有的设计题目对象的集合,以“graduateProjects”为名存入request,然后请求被转发到listGraduateProject.jsp。
在该页面中,通过JSTL的forEach标签遍历graduateProjects的每个题目对象,依次将它们的所有属性显示出来。
如果某题目的指导教师与登录用户相同,且未被批准,则在后面列出“修改、删除”超链接。
2.2.1.2.单击“修改”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=prepareEdit和id传入。
doGet方法解析参数后,通过GraduateProjectDao获得参数id所代表的GraduateProject对象,以“prepareObjects”为名存入request,然后请求被送到editGraduateProject.jsp。
在该页面中,通过JSTL的forEach标签遍历prepareObjects的每个题目对象,同时一次将他们的属性显示出来。
然后老师根据自己的论文特点作相应的修改,最后有一个“提交”按钮,点击即可以实现对其的修改。
2.2.1.3.单击“删除”链接,会请求GraduateProjectServlet的doGet方法,同时将参数action=delete和id传入。
doGet方法解析参数后,由Integer重新定义并得到id,之后直接执行request的delete操作,即删除对应项目的id。
那么再次返回到listGraduateProject.jsp页面时,所删除的那个不会再次出现。
因为其id已经被delete掉了。
2.2.1.4.单击“增加设计题目”链接(参见2.2.2)
2.2.2.增加设计题目
2.2.2.1.浏览所有题
单击“提交题目”,会请求GraduateProjectServlet的doPost方法,将参数action=add和id传入。
doPost方法解析参数,通过GraduateProjectDao获得id所对应的所有的题目对象的集合。
之后返回到addGraduateProject.jsp页面,通过JSTL的forEach标签遍历graduateProjects的所有对象,依次将其属性显示出来。
之后用户就可以浏览所有的题目了。
2.2.2.2.审批题目
审批是教研室主任特有的功能。
单击“审批题目”时,会请求GraduateProjectServlet4DepartmentLeader的doPost方法。
3.源程序
3.1.实体类(省略方法),共XX个。
1、Degree.java
ackagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassDegreeimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
2、Department.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassDepartmentimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
privateSchoolschool;
}
3、GraduateProject.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Collection;
publicfinalclassGraduateProjectimplementsComparable,Serializable{
privatestaticIntegernextID=11;
privateIntegerid;
privateStringtitle;
//限选专业
privateCollectionlimitedToMajor;
//类别
privateProjectCategoryprojectCategory;
//类型
privateProjectTypeprojectType;
//性质
//来源
//状态
privateGraduateProjectStatusgraduateProjectStatus;
privateTeacherteacher;
//初始化块
{
this.id=nextID;
nextID++;
System.out.println("N");
}
}
4、GraduateProjectStatus.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassGraduateProjectStatusimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
5、Majors.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassMajorimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
privateDepartmentdepartment;
}
6、ProjectCategory.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassProjectCategoryimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
7、ProjectType.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassProjectTypeimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
8、School.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassSchoolimplementsComparable,Serializable{
privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
9、Teacher.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Set;
importcn.edu.sdjzu.xg11.domain.authority.Actor;
publicfinalclassTeacherextendsActorimplementsComparable,Serializable{
/**
*
*/
privatestaticfinallongserialVersionUID=1L;
privateIntegerid;
privateStringname;
privateTitletitle;
privateDegreedegree;
privateDepartmentdepartment;
privateSetprojects;
}
10、Title.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
publicfinalclassTitleimplementsComparable
,Serializable{privateIntegerid;
privateStringdescription;
privateStringno;
privateStringremarks;
}
11、UserInfo.java
packagecn.edu.sdjzu.xg11.domain;
importjava.io.Serializable;
importjava.util.Date;
publicclassUserInfoimplementsComparable,Serializable{
privateIntegerid;
privateStringusername;
privateStringpassword;
privateDateloginTime;
privateTeacherteacher;
}
12、Actory.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.util.Collection;
publicabstractclassActor{
privateCollectionactorAssRoles;
}
13、ActorAssRole.java
//
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.io.Serializable;
importjava.util.Date;
importutil.IDService;
publicclassActorAssRoleimplementsComparable,Serializable{
privateIntegerid;
privateActoractor;
privateRolerole;
privateDatecreateTime;
{
this.id=IDService.getID();
}
}
14、AuthorityTest.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.util.Collection;
importjava.util.Date;
importjava.util.HashSet;
importcn.edu.sdjzu.xg11.dao.TeacherDao;
importcn.edu.sdjzu.xg11.dao.authority.ActorAssRoleDao;
importcn.edu.sdjzu.xg11.dao.authority.ResourceDao;
importcn.edu.sdjzu.xg11.dao.authority.RoleDao;
importcn.edu.sdjzu.xg11.domain.Teacher;
publicclassAuthorityTest{
publicstaticvoidmain(String[]args){
Teachert1=TeacherDao.getInstance().getTeacher
(1);
Teachert2=TeacherDao.getInstance().getTeacher
(2);
//
Roler1=RoleDao.getInstance().getRole
(1);
Roler2=RoleDao.getInstance().getRole
(2);
//
ActorAssRolear1=ActorAssRoleDao.getInstance().getActorAssRole
(1);
ActorAssRolear21=ActorAssRoleDao.getInstance().getActorAssRole
(2);
ActorAssRolear22=ActorAssRoleDao.getInstance().getActorAssRole(3);
Collectiont1R=newHashSet();
t1R.add(ar1);
t1.setActorAssRoles(t1R);
Collectiont2R=newHashSet();
t2R.add(ar21);
t2R.add(ar22);
t2.setActorAssRoles(t2R);
//打印角色
Collectiont1r=t1.getActorAssRoles();
for(ActorAssRoleasr:
t1r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
}
Collectiont2r=t2.getActorAssRoles();
for(ActorAssRoleasr:
t2r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
}
Resourcers11=ResourceDao.getInstance().getResource
(1);
Resourcers12=ResourceDao.getInstance().getResource
(2);
Resourcers21=ResourceDao.getInstance().getResource(3);;
RoleAssResourcerRs11=newRoleAssResource(r1,rs11,newDate());
RoleAssResourcerRs12=newRoleAssResource(r1,rs12,newDate());
RoleAssResourcerRs21=newRoleAssResource(r2,rs21,newDate());
//角色1
CollectionroleAssResource1=newHashSet();
roleAssResource1.add(rRs11);
roleAssResource1.add(rRs12);
r1.setRoleAssResource(roleAssResource1);
//角色2
CollectionroleAssResource2=newHashSet();
roleAssResource2.add(rRs21);
r2.setRoleAssResource(roleAssResource2);
System.out.println("//打印资源.......................");
for(ActorAssRoleasr:
t1r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
CollectionrRs=asr.getRole().getRoleAssResource();
for(RoleAssResourceroleAssResource:
rRs){
System.out.print("\t");
System.out.println(roleAssResource.getResource().getDescription()+"="+roleAssResource.getResource().getUrl());
}
}
System.out.println("//打印资源22.......................");
for(ActorAssRoleasr:
t2r){
System.out.println(asr.getActor().getName()+"/"+asr.getRole().getDescription());
CollectionrRs=asr.getRole().getRoleAssResource();
for(RoleAssResourceroleAssResource:
rRs){
System.out.print("\t");
System.out.println(roleAssResource.getResource().getDescription()+"="+roleAssResource.getResource().getUrl());
}
}
System.out.println("//打印资源3.......................");
Collectiont1ar=t2.getActorAssRoles();
System.out.println(t1);
for(ActorAssRoleactorAssRole:
t1ar){
System.out.println(actorAssRole.getRole());
Collectionrrs=actorAssRole.getRole().getRoleAssResource();
for(RoleAssResourceroleAssResource:
rrs){
System.out.println(roleAssResource.getResource());
}
}
}
}
15、Resource.java
packagecn.edu.sdjzu.xg11.domain.authority;
importjava.io.Serializable;
importutil.IDService;
publicclassResourceimplementsComparable,Serializable{
privatestaticintnextID=1;
privateIntegerid;
privateStringdescription;
privateStringurl;
privateString