1、孙延正管理信息系统开发实践设计方案成果报告山东建筑大学课 程 设 计 成 果 报 告题 目: 课 程: 院 (部): 专 业: 班 级: 学生姓名: 学 号: 指导教师: 完成日期: 1. 系统功能简介本系统是毕业设计管理系统中教师、教研室主任用户的部分功能。系统向教师用户提供了查看已经提交的题目、提交题目并且可以进行修改和删除功能,向教研室主任提供了查询、审批的功能。使用eclipse-jee-europa-winter-win32 +Jdk1.6+Tomcat6开发、测试。2. 系统组件关系本系统使用构架进行开发,即使用JSP获得用户输入,由Servlet处理请求,将数据存入服务器对象(s
2、ession或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. 单击超链接“
3、查看所有设计题目”,即请求GraduateProjectServlet的doGet方法,由于没有其它参数,会直接执行该类的list方法。在list方法中,通过GraduateProjectDao获得所有的设计题目对象的集合,以“graduateProjects”为名存入request,然后请求被转发到listGraduateProject.jsp。在该页面中,通过JSTL的forEach标签遍历graduateProjects的每个题目对象,依次将它们的所有属性显示出来。如果某题目的指导教师与登录用户相同,且未被批准,则在后面列出“修改、删除”超链接。2.2.1.2. 单击“修改”链接,会请求
4、GraduateProjectServlet的doGet方法,同时将参数action=prepareEdit和id传入。doGet方法解析参数后,通过GraduateProjectDao获得参数id所代表的GraduateProject对象,以“prepareObjects”为名存入request,然后请求被送到editGraduateProject.jsp。在该页面中,通过JSTL的forEach标签遍历prepareObjects的每个题目对象,同时一次将他们的属性显示出来。然后老师根据自己的论文特点作相应的修改,最后有一个“提交”按钮,点击即可以实现对其的修改。2.2.1.3. 单击“删
5、除”链接,会请求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方法,将参数
6、action=add和id传入。doPost方法解析参数,通过GraduateProjectDao获得id所对应的所有的题目对象的集合 。之后返回到addGraduateProject.jsp页面,通过JSTL的forEach标签遍历graduateProjects的所有对象,依次将其属性显示出来。之后用户就可以浏览所有的题目了。2.2.2.2. 审批题目审批是教研室主任特有的功能。单击“审批题目”时,会请求GraduateProjectServlet4DepartmentLeader的doPost方法。3. 源程序3.1. 实体类(省略方法),共XX个。1、Degree.javaackage
7、 cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final class Degree implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks; 2、Department.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final cla
8、ss Department implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks; private School school; 3、GraduateProject.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;import java.util.Collection;public final class Graduat
9、eProject implements Comparable,Serializable private static Integer nextID = 11; private Integer id; private String title; /限选专业 private Collection limitedToMajor; /类别 private ProjectCategory projectCategory; /类型 private ProjectType projectType; /性质 /来源 /状态 private GraduateProjectStatus graduateProje
10、ctStatus; private Teacher teacher; /初始化块 this.id = nextID; nextID+; System.out.println(N); 4、GraduateProjectStatus.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final class GraduateProjectStatus implements Comparable,Serializable private Integer id; private String descripti
11、on; private String no; private String remarks; 5、Majors.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final class Major implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks; private Department departmen
12、t; 6、ProjectCategory.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final class ProjectCategory implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks; 7、ProjectType.javapackage cn.edu.sdjzu.xg11.domain;im
13、port java.io.Serializable;public final class ProjectType implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks;8、School.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;public final class School implements Compara
14、ble,Serializable private Integer id; private String description; private String no; private String remarks; 9、Teacher.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;import java.util.Set;import cn.edu.sdjzu.xg11.domain.authority.Actor;public final class Teacher extends Actor impleme
15、nts Comparable,Serializable /* * */ private static final long serialVersionUID = 1L; private Integer id; private String name; private Title title; private Degree degree; private Department department; private Set projects;10、Title.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;publ
16、ic final class Title implements Comparable,Serializable private Integer id; private String description; private String no; private String remarks;11、UserInfo.javapackage cn.edu.sdjzu.xg11.domain;import java.io.Serializable;import java.util.Date;public class UserInfo implements Comparable,Serializabl
17、e private Integer id; private String username; private String password; private Date loginTime; private Teacher teacher;12、Actory.javapackage cn.edu.sdjzu.xg11.domain.authority;import java.util.Collection;public abstract class Actor private Collection actorAssRoles;13、ActorAssRole.java/package cn.ed
18、u.sdjzu.xg11.domain.authority;import java.io.Serializable;import java.util.Date;import util.IDService;public class ActorAssRole implements Comparable,Serializable private Integer id; private Actor actor; private Role role; private Date createTime; this.id = IDService.getID(); 14、AuthorityTest.javapa
19、ckage cn.edu.sdjzu.xg11.domain.authority;import java.util.Collection;import java.util.Date;import java.util.HashSet;import cn.edu.sdjzu.xg11.dao.TeacherDao;import cn.edu.sdjzu.xg11.dao.authority.ActorAssRoleDao;import cn.edu.sdjzu.xg11.dao.authority.ResourceDao;import cn.edu.sdjzu.xg11.dao.authority
20、.RoleDao;import cn.edu.sdjzu.xg11.domain.Teacher;public class AuthorityTest public static void main(String args) Teacher t1 = TeacherDao.getInstance().getTeacher(1); Teacher t2 = TeacherDao.getInstance().getTeacher(2);/ Role r1 = RoleDao.getInstance().getRole(1); Role r2 = RoleDao.getInstance().getR
21、ole(2);/ ActorAssRole ar1 = ActorAssRoleDao.getInstance().getActorAssRole(1); ActorAssRole ar21 = ActorAssRoleDao.getInstance().getActorAssRole(2); ActorAssRole ar22 = ActorAssRoleDao.getInstance().getActorAssRole(3); Collection t1R = new HashSet(); t1R.add(ar1); t1.setActorAssRoles(t1R); Collection
22、 t2R = new HashSet(); t2R.add(ar21); t2R.add(ar22); t2.setActorAssRoles(t2R); /打印角色 Collection t1r = t1.getActorAssRoles(); for (ActorAssRole asr : t1r) System.out.println(asr.getActor().getName()+/+asr.getRole().getDescription(); Collection t2r = t2.getActorAssRoles(); for (ActorAssRole asr : t2r)
23、System.out.println(asr.getActor().getName()+/+asr.getRole().getDescription(); Resource rs11 = ResourceDao.getInstance().getResource(1); Resource rs12 = ResourceDao.getInstance().getResource(2); Resource rs21 = ResourceDao.getInstance().getResource(3); RoleAssResource rRs11 = new RoleAssResource(r1,r
24、s11,new Date(); RoleAssResource rRs12 = new RoleAssResource(r1,rs12,new Date(); RoleAssResource rRs21 = new RoleAssResource(r2,rs21,new Date(); /角色1 Collection roleAssResource1 = new HashSet(); roleAssResource1.add(rRs11); roleAssResource1.add(rRs12); r1.setRoleAssResource(roleAssResource1); /角色2 Co
25、llection roleAssResource2 = new HashSet(); roleAssResource2.add(rRs21); r2.setRoleAssResource(roleAssResource2); System.out.println(/打印资源.); for (ActorAssRole asr : t1r) System.out.println(asr.getActor().getName()+/+asr.getRole().getDescription(); Collection rRs = asr.getRole().getRoleAssResource();
26、 for (RoleAssResource roleAssResource : rRs) System.out.print(t); System.out.println(roleAssResource.getResource().getDescription() + = +roleAssResource.getResource().getUrl(); System.out.println(/打印资源22.); for (ActorAssRole asr : t2r) System.out.println(asr.getActor().getName()+/+asr.getRole().getD
27、escription(); Collection rRs = asr.getRole().getRoleAssResource(); for (RoleAssResource roleAssResource : rRs) System.out.print(t); System.out.println(roleAssResource.getResource().getDescription() + = +roleAssResource.getResource().getUrl(); System.out.println(/打印资源3.); Collection t1ar = t2.getActo
28、rAssRoles(); System.out.println(t1); for (ActorAssRole actorAssRole : t1ar) System.out.println(actorAssRole.getRole(); Collection rrs = actorAssRole.getRole().getRoleAssResource(); for (RoleAssResource roleAssResource : rrs) System.out.println(roleAssResource.getResource(); 15、Resource.javapackage cn.edu.sdjzu.xg11.domain.authority;import java.io.Serializable;import util.IDService;public class Resource implements Comparable,Serializable private static int nextID=1; private Integer id; private String description; private String url; private String
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1