基于java信息法院管理系统设计_第1页
基于java信息法院管理系统设计_第2页
基于java信息法院管理系统设计_第3页
基于java信息法院管理系统设计_第4页
基于java信息法院管理系统设计_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编号: 基于 java 信息实训开发 实训(论文)说明书 题 目:基于 java 信息法院管理系统实训开发 院 (系): 应用科技学院 专 业: 计算机科学与技术 学生姓名: 盘晟 学 号: 指导教师: 熊太平 摘摘 要要 J2EE 是一种全新概念的企业级应用程序模型,和传统企业应用开发 模型相比有不可比拟的优势。J2EE 体系结构提供中间层集成框架用来满足 高可用性、高可靠性以及可扩展性的应用的需求。通过提供统一的开发平 台,J2EE 降低了开发多层应用的费用和复杂性,增强了安全机制,提高了 性能。 本系统是基于轻量级 J2EE 的开发架构,采用 MVC 软件设计模式。我 们选择轻量级框架 Spring,它使应用程序不依赖于任何容器,减少开发的 复杂度,提高开发的效率。表示层采用开放源代码且较成熟的 Struts。持 久层框架使用较为流行的 ORM 组件 Hibernate。 本系统利用 internet 解决档案的查询效率低,查询不方便,以及避免 传统的法院档案管理的归档困难、档案容易损坏等问题。 关键词 J2EE;MVC ;Struts;Hibernate;设计模式;设计模式 目目 录录 一、一、系统所用技术简介系统所用技术简介 .1 (一)(一) Spring 介绍介绍.1 (二)(二) Struts 介绍介绍2 二、二、需求分析说明需求分析说明 .3 (一)(一) 开发背景开发背景3 (二)(二) 功能性需求分析功能性需求分析3 三、三、数据库分析与设计数据库分析与设计 .10 (二)(二) 数据库逻辑设计数据库逻辑设计10 (三)(三) 数据库物理设计数据库物理设计11 四、系统设计与实现系统设计与实现 .12 (一)(一) 系统结构系统结构13 (二)(二) 系统的构架设计系统的构架设计14 (四)系统持久层(四)系统持久层 DAODAO 的实现的实现18 (六)用户接口层(六)用户接口层26 1 1、登录功能及权限验证登录功能及权限验证26 2 2、档案管理及维护档案管理及维护28 3 3、法医鉴定档案的管理法医鉴定档案的管理33 4 4、当事人管理及维护当事人管理及维护36 5 5、用户管理及维护用户管理及维护37 参考文献参考文献39 基于轻量级基于轻量级 J2EEJ2EE 架构的法院档案架构的法院档案 管理系统的设计与实现管理系统的设计与实现 一、一、 系统所用技术简介系统所用技术简介 本系统是基于 J2EE 开发平台,采用 MVC 软件设计模式,表现层框架 采用开放源代码且较成熟的 Struts ,业务层组件采用开放源代码的轻量级容 器 Spring,持久层框架采用较为流行的 Hibernate。 Spring,Struts,Hibernate 三者之间的关系如图: 图 1:Struts,Spring,Hibernate 三者之间的关系 (一)(一)Spring 介绍介绍 Spring 框架的核心思想可以用两个字来描述,那就是“解耦“。应用程 序的各个部分之间(包括代码内部和代码与平台之间)尽量形成一种松耦 合的结构,使得应用程序有更多的灵活性。应用内部的解耦主要通过一种 称为控制反转(IOC)的技术来实现。控制反转的基本思想就是本来由应 用程序本身来主动控制的调用等逻辑转变成由外部配置文件来被动控制。 通常我们用一个所谓的好莱坞原则(Dont call me. I will call you.)来比喻 这种控制反转的关系。由于控制反转的概念相对比较广泛,很多应用服务 器实际上也实现了不同程度的控制反转技术,只是这些应用服务器对应用 程序的侵入性太强。因此 Martin Fowler 专门写了一篇文章讨论控制反转这 个概念,并提出一个描述更为准确的概念,叫依赖注入(Dependency Injection)16。 Spring 框架中的各个部分都充分使用了这种依赖注入的 技术实现,从而给应用以最大的灵活度。 Spring 框架另外一个比较重要的技术是它对于面向切面的编程 (AOP)的支持。随着应用复杂度的逐渐上升和对应用灵活性要求的提高, IT 逻辑和业务逻辑尽量分离的呼声也越来越高。AOP 技术作为实现这种 分离的一种比较好的途径而越来越受到大家的重视。Spring 提供的是一种 动态 AOP 实现,也即通过代理模式动态地在目标对象的方法前后插入相 应的处理代码。应用程序与底层应用服务器平台的解耦也可以借助 AOP 技术来实现。Spring 内置的 AOP 支持是一种锦上添花的功能。它使得一 些本来必须由容器支持的功能,比如事务控制可以脱离开容器运行,从而 达到“瘦身“的目的。这也是为什么 Spring 框架常被人成为轻量级容器的一 个原因。 (二)(二)Struts 介绍介绍 Struts 框架是 Apache 组织的一个开放源代码的项目。为 Web 应用提 供一个通用的 MVC 架构,提供了对开发 MVC 系统的底层支持.它使开发 人员把更多的时间放在如何解决实际问题上。Struts 框架由四个主要部分 组成,模型、视图、控制器和 XML 文件。模型通常由 Java Bean 或 EJB 组件实现,负责处理业务逻辑;视图包括一组 JSP 文件,这些文件主要由 JSP 标签或客户化标签构成,它简化了 JSP 页面的编码工作;在 Struts 框 架中控制器主要包括 Action Servlet 类和 Action 类,Action Servlet 是 Struts 的核心部件,它接受用户的 Http 请求,根据配置信息将请求转发给适当的 Action 对象,Action 类负责调用模型的方法,并帮助控制应用程序的流程; Struts 包括 Web.xml 和 Struts-config.xml 两个配置文件,其中 Web.xml 是 Web 应用的发布描述文件,Struts-config.xml 是与 Struts 相关的特殊信息配 的描述文件。 图 2 :STRUTS 实现的 MVC 框架 二、二、 需求分析说明需求分析说明 (一)(一)开发背景开发背景 法院在其工作中日集月累产生了大量的档案资料,而且档案资料的数 量还在不断的增加之中。在日常的工作里,原始手工管理模式给档案管理 工作带来了极大的不便,人员劳动强度大,档案资料管理也困难。而且还 有查询效率低,劳动强度大、归档困难、容易损坏等缺点。 (二)(二)功能性需求分析功能性需求分析 该系统具有以下一些特征: 1) 管理员和普通用户能进行登录 2)能显示档案的信息,可进行档案的查询,增加和修改 3)能显示用户信息,可对用户信息进行添加和删除 4)能显示当事人信息,可对当事人进行添加和修改 业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需 求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用 一个业务用例(Business Use Case)框图表达: 图 4:业务用例图 模型中的活动者代表外部与系统交互的单元,包括管理员和普通用户。 业务用例框图是对系统需求的描述,表达了系统的功能和所提供的服务, 包括添加档案,修改档案,查询档案,添加用户,删除用户,查询当事人, 修改用户信息。 用例说明:用例说明: 表 1:登录用例 用例名登录 前置条件进入系统主页 成功状态根据登录角色进入相应界面 失败状态返回到登录界面 说明用户进行登录 表 2:添加档案用例 用例名添加档案 前置条件管理员已登录 成功状态提示档案添加成功 失败状态返回到添加档案界面并提示操作不成功 说明对录入信息的格式进行合法验证,保存添加档案 表 3:修改档案用例 用例名修改档案 前置条件管理员已登录 成功状态提示修改成功并显示修改后的信息 失败状态返回到修改界面并提示修改错误 说明对修改的信息进行合法验证,更新档案信息 表 4:查询档案用例 用例名查询档案 前置条件管理员或普通用户已登录 成功状态显示查询到的信息 失败状态返回到查询界面并提示查询错误 说明对录入查询的信息进行合法验证,显示查询到的档案信息 表 5:添加用户用例 用例名添加用户 前置条件管理员已登录 成功状态显示添加用户成功 失败状态返回到添加界面并提示添加错误 说明完成普通用户的添加 表 6:删除用户用例 用例名删除用户 前置条件管理员已登录 成功状态显示删除用户成功 失败状态返回并提示删除错误 说明完成对普通用户的删除 表 7:添加当事人用例 用例名添加当事人 前置条件管理员已登录或进入添加档案界面 成功状态显示添加成功 失败状态返回到添加界面并显示添加错误 说明对录入的信息进行合法验证,添加保存当事人信息 表 8:查询当事人用例 用例名查询当事人 前置条件用户已登录或进入显示档案界面 成功状态显示当事人的详细信息 失败状态返回到查询界面并显示查询错误 说明对录入的查询信息进行合法验证,显示当事人信息 表 9:修改自己信息用例 用例名修改自己信息 前置条件用户已登录 成功状态显示修改成功后的信息 失败状态返回到修改界面并显示修改错误 说明对录入的修改信息进行合法验证,更新修改当事人信息 顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺 序,同时显示对象之间的交互。 图 5:管理员登录及档案管理序列图 图 6:管理员对当事人管理序列图 图 7:普通用户的操作序列图 状态图描述一个实体基于事件反应的动态行为,显示了该实体如何根 据当前所处的状态对不同的时间做出反应的。状态图设计一般是在对操作 序列的顺序图细化的基础上表达。 图 8: 管理员维护档案的状态图 图 9 :管理员维护当事人信息状态图 图 10:普通用户状态图 三、三、 数据库分析与设计数据库分析与设计 (一)数据库逻辑设计(一)数据库逻辑设计 用户用户 用户 ID 密码 用户名 角色 当事人当事人 当事人 ID,姓名 性别,身份证 出身年月 国籍,民族 政治面貌 文化程度 出身地,原籍 户籍所在地 现址,电话 职业,身份 特殊身份 备注 法医档案法医档案 档案类型,归档类 型 归档号,保密级 案卷号,目录号 主办人,鉴定单位 鉴定法医,归档日 期 年龄,性别 当事人,鉴定目的 鉴定结果 备注 档案档案 档案 ID,档案类型 归档类型,归档号 保密级,案卷号 目录号,案由 当事人,审判长 审判员 1,审判员 2 书记员,主办人 收案日期,结案日 期 原审法院,保管日 期 一审结果,二审结 果 再审结果,备注档案档案-当事人当事人 当事人 ID 档案 ID (二)(二) 数据库物理设计数据库物理设计 说明:空缺位置表示无要求,主键在约束栏注明。 基本表:用户useruser 字段类型长度约束 ID文本32主键 Password文本32 Name 文本10唯一非空 Role 文本10 基本表:当事人peoplepeople 字段类型长度约束 ID文本32主键 Pid文本32唯一非空 Name 文本10非空 sex文本4非空 Birthday文本12非空 Nation文本40非空 Race文本10非空 Politbg文本10 Education文本10 Birthplace文本50 Bfplace文本50 Nowplace文本50 Liveplace文本50 Tel文本20 Occupation文本10 Positon文本10 Speposition文本10 note文本100 基本表:档案doucument 字段类型长度约束 ID文本32主键 Filekind文本10非空 Archkind文本10非空 Archno文本20非空唯一 Secretlevel文本6 Fileno文本20非空唯一 Dirno文本20非空唯一 Cause文本400 client文本200非空 Chiefjustice文本10非空 Judge1文本10非空 Judge2文本10非空 Clerk文本10非空 Sponsor文本10非空 Closedate文本12 Enddate文本12 Formcourt文本20 Firstjudge文本200 Secjudge文本200 Thirdjudge文本200 Arhdate文本12 Bgqx文本10 Note文本100 基本表:当事人_档案peopledocument 字段类型长度约束 peopleid文本32主键 documentid文本32主键 基本表:法医档案fydocument 字段类型长度约束 id文本32主键 Filekind文本10非空 Archkind文本10非空 archno文本20非空唯一 Fileno文本20非空唯一 Dirno文本10非空唯一 Purpose文本100 Sponsor文本20 Client文本20 Corporation文本20 Doctor文本20非空 Result文本200 Exandate文本12 Archdate 文本12 Age文本3 Sex 文本2 note文本200 四、 系统设计与实现系统设计与实现 (一)(一)系统结构系统结构 图 11:系统结构 功能说明: (1)普通档案管理: 可以根据档案的一个或多个字段来查询所需的档案。 在添加档案信息的同时也可新打开一个添加当事人的页面添 加当事人的信息。 显示所有档案功能先显示部分档案信息,当需要查看其详细 信息时再显示其详细信息,在档案的详细信息中有当事人的 链接,可查看当事人详细信息。 (2)法医档案管理: 可以根据档案的一个或多个字段来查询所需的档案。 在添加档案信息的同一页面添加被鉴定人的信息。 显示所有档案功能先显示部分档案信息,当需要查看其详细 信息时再显示其详细信息。 法医档案管理系统 登录 法医档案管理当事人管理 查 询 所 有 档 案 显 示 当 事 人 显 示 所 有 档 案 添 加 添 加 普通档案管理 查 询 用户管理 所 有 用 户 修 改 添 加 修 改 当 事 人 信 息 (3)用户管理: 管理员可查看所有的用户,也可进行用户的添加和删除。 (4)当事人管理: 普通用户可查看当事人的详细信息,但不能对其进行修改,管理员不 但可查看还可以对其进行修改。 (二)(二)系统的构架设计系统的构架设计 系统主要有如下 3 个包: 1) 用户接口包(表示层) 用户接口包在其他包的顶层次,为系统用户提供访问信息和服务。其 主要包括 jsp 和 ActionForm 等文件。 系统所有 Action 类都继承 BaseAction 类,在 BaseAction 类中获得系 统 Spring 所配置的业务层 bean 对象的实例。 用户登录及处理的 ACTIONFORM,ACTION 类图: 图 12:用户登录及处理的 ACTIONFORM,ACTION 类图 档案的 ACTIONFORM,ACTION 类图: 图 13:档案的 ACTIONFORM,ACTION 类图 2) 业务逻辑包(业务层) 主要完成业务逻辑的处理工作,它既要调用持久层的方法来完 成 数据的持久化和查询工作也要业务方法暴露给表示层,以便表示层的调用。 系统业务接口及其实现类图如下: 图 14:系统业务接口及其实现类图 3) 数据持久 DAO 包(持久层) 该包实现数据的持久化,也就是与数据库交互,实现数据的存取、修 改等操作。Spring 的 HibernateDaoSupport 基类提供了访问与当前事务绑定 的 Session 对象的函数。所有 DAO 类都继承 HibernateDaoSupport 这个基 类。 系统 DAO 封装了各对象域模型进行持久化操作的各种方法,系统 DAO 接口及实现类图如下: 图 15:系统 DAO 接口及实现类图 (三)用户接口层(三)用户接口层 用户只能通过系统提供的用户接口来访问系统。 1 1、 登录功能及权限验证登录功能及权限验证 用户登录的主要功能是接受用户所输入的密码和用户名及其角色,然 后根据其角色跳转到不同的主页。 用户登录页面是系统的入口页面,其图如下: 用户登录功能的后台处理方法主要包括以下步骤: a.得到用户提交的用户名和密码及角色 b.根据得到的信息进行查询 c.如没有找到相应用户则返回登录界面,找到相应用户则根据角色 跳转到相应主页面,并且保存当前用户角色到 session 中以便进行权 限验证。 登录的 Action 处理方法的实现如下: User user=(UserService) getBean(“UserService“).logIn(name, password , role); if(user=null) /没找到相应的用户则跳到登录界面 return (new ActionForward(mapping.getInput(); /获得当前对话的session HttpSession session=request.getSession(); /保存用户名,角色到session中 session.setAttribute(“user“, user); session.setAttribute(“role“, role); if(role.equalsIgnoreCase(“manager“) /跳转到管理员主界面 return (mapping.findForward(“managerLogIn“); /跳转到普通用户界面 return (mapping.findForward(“commonLogIn“); 在进入每个 jsp 页面时都进行权限的验证,只有具有相应权限的用户 才能进入。为了更好的实现这功能,提高代码的重用性,我们采用自定义 标签来实现此功能。其类如下: public final class ValidateSessionTag extends TagSupport private String role ; public int doEndTag() throws JspException boolean valid = false; HttpSession session = pageContext.getSession();/获得当前session if (session != null) if (valid) return (EVAL_PAGE); else try /当前用户不具有访问当前页面的权限,返回到登录页面 pageContext.forward(“login.jsp“); catch (Exception e) throw new JspException(e.toString(); return (SKIP_PAGE); public int doStartTag() throws JspException return (SKIP_BODY); public String getRole() return (this.role); public void setRole(String role) this.role = role; 其标签的配置为: validateSession cn.fy.tag.ValidateSessionTag empty role true true 2 2、 档案管理及维护档案管理及维护 当进入管理员主页面时,显示所有档案的主要信息,当需要查看其详 细信息时,点击详细信息查看档案的详细信息,其 action 的实现为: Page page=new Page(); /把查询到的档案信息放入Page bean里 page=(DocumentService) getBean(“DocumentService“).getDocument(“ from Document“, page); /把获得的bean保存在request里 request.setAttribute(“p“, page); /转到显示页面 return (mapping.findForward(“listDocument“); 档案信息的显示页面如图: 点击详细信息,显示档案的详细信息页面如图: 图 18:显示档案的详细信息页面 显示档案详细信息的 action 为: String id=request.getParameter(“id“); /查询所需要的档案 Document doc=(DocumentService) getBean(“DocumentService“).getDocumentById(id); request.setAttribute(“document“, doc); /request.setAttribute(“people“, doc.getPeople(); /跳到显示档案详细信息的页面 return (mapping.findForward(“detail“); 显示当事人详细信息的页面如图: 图19:显示当事人详细信息的页面 添加法院档案以及在同时添加当事人的信息,添加的当事人必须有唯 一的身份证号,添加的档案的归档号,目录号,案卷号也必须唯一且不能 为空,否则就出现异常。添加档案的页面如图: 图 20:添加档案的页面 添加当事人的页面如图: 图 21:添加当事人的页面 当单击保存时,相应的 actionForm 先进行字段的合法性验证,当通 过 actionForm 的合法性验证后,由 action 来检查是否存在相同的身份证 号,如存在相同的则出现异常且报错,其 action 的实现为: People client=new People(); client.setPid(clientForm.getPid(); client.setName(clientForm.getName(); . /判断当前添加的当事人身份证号是否已经存在 if(ClientService) getBean(“ClientService“).getClientByPid(client.getPid()!=null) errors.add(“bad“,new ActionMessage(“identity.card.exist“); saveErrors(request, errors); request.removeAttribute(mapping.getAttribute(); /当事人身份证号已经存在,返回添加当事人页面 return (mapping.findForward(“addClient“); /当事人身份证号不存在,则添加到当事人队列中 if(session.getAttribute(“peopleList“)!=null) ListpeopleList=(List)session.getAttribute(“peopleList“); peopleList.add(client); session.setAttribute(“peopleList“, peopleList); else ListpeopleList=new ArrayList(); peopleList.add(client); session.setAttribute(“peopleList“, peopleList); errors.add(“success“,new ActionMessage(“addClient.success“); saveErrors(request, errors); request.removeAttribute(mapping.getAttribute(); return (mapping.findForward(“addClient“); 档案的查询可根据档案的一个或多个字段进行进行查询,其查询页面 如图: 图 22:档案查询页面 当用户单击查找按钮后,ActionForm 先对其查询的字段进行合法性检 验,只有通过 ActionForm 的合法性检验才转到 Action 里进行处理,相应 的 Action 处理实现为: SearchForm f=(SearchForm)form; /根据提供的查询字段查询档案 Page page=new Page(); page=(DocumentService) getBean(“DocumentService“).getDocument(f.getSql(), page); /HttpSession session=request.getSession(); /session.setAttribute(“p“, page); request.setAttribute(“p“, page); /转到档案的显示页面 return (mapping.findForward(“listDocument“); 档案的修改页面如图: 图 23:档案的修改页面 单击提交后也得进行合法性验证,只有验证后才进行更新,其修改更 新的 Action 方法的实现为: String id=request.getParameter(“id“); /取出需要修改的档案对象 Document doc=(DocumentService) getBean(“DocumentService“).getDocumentById(id); DocumentForm f=(DocumentForm)form; /修改档案信息 doc.setFileKind(f.getFileKind(); . /更新档案信息 (DocumentService) getBean(“DocumentService“).updateDocument(doc); errors.add(“sucess“,new ActionMessage(“update.document.success“); saveErrors(request, errors); return (mapping.findForward(“document“); 3 3、 法医鉴定档案的管理法医鉴定档案的管理 先显示法医鉴定档案部分重要的信息,当需要查看其详细信息时再显 示其详细信息,显示法医鉴定档案的详细信息的页面为: 显示法医鉴定档案的详细信息 Action 的方法为: String id=request.getParameter(“id“); /获得档案的详细信息 FYDocument doc=(FYDocumentService) getBean(“FYDocumentService“).getDocById(id); /把档案对象保存在request对象里 request.setAttribute(“document“, doc); /转到显示档案详细信息页面 return (mapping.findForward(“detail“); 法医鉴定档案的添加功能,在添加档案信息的同一页面添加被鉴定人 的信息,其添加页面如图: 图25:法医鉴定档案的添加页面 单击提交后,先进入相对应的 ActionForm 进行字段合法性验证,然 后进入 Action 进行档案的添加,实现这个功能的 Action 方法为: FYDocument doc=new FYDocument(); AddFYDocForm addForm=(AddFYDocForm)form; doc.setFileKind(addForm.getFileKind(); doc.setArchKind(addForm.getArchKind(); . doc.setNote(addForm.getNote(); /保存档案 (FYDocumentService) getBean(“FYDocumentService“).saveFYDoc(doc); errors.add(“sucess“,new ActionMessage(“add.fayuan.document.success“); saveErrors(request, errors); /转到档案添加成功页面 return (mapping.findForward(“fydocument“); 法医鉴定档案的修改页面如图: 图 26:法医鉴定档案的修改页面 提交后,由相对应的 ActionForm 进行修改后的字段合法性验证,然后 进入 Action 进行档案的添加,实现这个功能的 Action 方法为: String id=request.getParameter(“id“); /获得需要修改的法医档案对 FYDocument doc=(FYDocumentService) getBean(“FYDocumentService“).getDocById(id); AddFYDocForm a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论