版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于java信息法院管理系统设计基于java信息法院管理系统设计编号:基于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(四)系统持久层DAO的实现 18(六)用户接口层 261、 登录功能及权限验证 262、 档案管理及维护 283、 法医鉴定档案的管理 334、 当事人管理及维护 365、 用户管理及维护 37参考文献 39基于java信息法院管理系统设计基于轻量级J2EE架构的法院档案管理系统的设计与实现系统所用技术简介本系统是基于J2EE开发平台,采用MVC软件设计模式,表现层框架采用开放源代码且较成熟的Struts,业务层组件采用开放源代码的轻量级容器Spring,持久层框架采用较为流行的Hibernate。Spring,Struts,Hibernate三者之间的关系如图:图1:Struts,Spring,Hibernate三者之间的关系Spring介绍Spring框架的核心思想可以用两个字来描述,那就是"解耦"。应用程序的各个部分之间(包括代码内部和代码与平台之间)尽量形成一种松耦合的结构,使得应用程序有更多的灵活性。应用内部的解耦主要通过一种称为控制反转(IOC)的技术来实现。控制反转的基本思想就是本来由应用程序本身来主动控制的调用等逻辑转变成由外部配置文件来被动控制。通常我们用一个所谓的好莱坞原则(Don'tcallme.Iwillcallyou.)来比喻这种控制反转的关系。由于控制反转的概念相对比较广泛,很多应用服务器实际上也实现了不同程度的控制反转技术,只是这些应用服务器对应用程序的侵入性太强。因此MartinFowler专门写了一篇文章讨论控制反转这个概念,并提出一个描述更为准确的概念,叫依赖注入(DependencyInjection)[16]。Spring框架中的各个部分都充分使用了这种依赖注入的技术实现,从而给应用以最大的灵活度。Spring框架另外一个比较重要的技术是它对于面向切面的编程(AOP)的支持。随着应用复杂度的逐渐上升和对应用灵活性要求的提高,IT逻辑和业务逻辑尽量分离的呼声也越来越高。AOP技术作为实现这种分离的一种比较好的途径而越来越受到大家的重视。Spring提供的是一种动态AOP实现,也即通过代理模式动态地在目标对象的方法前后插入相应的处理代码。应用程序与底层应用服务器平台的解耦也可以借助AOP技术来实现。Spring内置的AOP支持是一种锦上添花的功能。它使得一些本来必须由容器支持的功能,比如事务控制可以脱离开容器运行,从而达到"瘦身"的目的。这也是为什么Spring框架常被人成为轻量级容器的一个原因。Struts介绍Struts框架是Apache组织的一个开放源代码的项目。为Web应用提供一个通用的MVC架构,提供了对开发MVC系统的底层支持.它使开发人员把更多的时间放在如何解决实际问题上。Struts框架由四个主要部分组成,模型、视图、控制器和XML文件。模型通常由JavaBean或EJB组件实现,负责处理业务逻辑;视图包括一组JSP文件,这些文件主要由JSP标签或客户化标签构成,它简化了JSP页面的编码工作;在Struts框架中控制器主要包括ActionServlet类和Action类,ActionServlet是Struts的核心部件,它接受用户的Http请求,根据配置信息将请求转发给适当的Action对象,Action类负责调用模型的方法,并帮助控制应用程序的流程;Struts包括Web.xml和Struts-config.xml两个配置文件,其中Web.xml是Web应用的发布描述文件,Struts-config.xml是与Struts相关的特殊信息配的描述文件。图2:STRUTS实现的MVC框架需求分析说明开发背景法院在其工作中日集月累产生了大量的档案资料,而且档案资料的数量还在不断的增加之中。在日常的工作里,原始手工管理模式给档案管理工作带来了极大的不便,人员劳动强度大,档案资料管理也困难。而且还有查询效率低,劳动强度大、归档困难、容易损坏等缺点。功能性需求分析该系统具有以下一些特征:管理员和普通用户能进行登录2)能显示档案的信息,可进行档案的查询,增加和修改3)能显示用户信息,可对用户信息进行添加和删除4)能显示当事人信息,可对当事人进行添加和修改业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。结果可以用一个业务用例(BusinessUseCase)框图表达:图4:业务用例图模型中的活动者代表外部与系统交互的单元,包括管理员和普通用户。业务用例框图是对系统需求的描述,表达了系统的功能和所提供的服务,包括添加档案,修改档案,查询档案,添加用户,删除用户,查询当事人,修改用户信息。用例说明:表1:登录用例用例名登录前置条件进入系统主页成功状态根据登录角色进入相应界面失败状态返回到登录界面说明用户进行登录表2:添加档案用例用例名添加档案前置条件管理员已登录成功状态提示档案添加成功失败状态返回到添加档案界面并提示操作不成功说明对录入信息的格式进行合法验证,保存添加档案表3:修改档案用例用例名修改档案前置条件管理员已登录成功状态提示修改成功并显示修改后的信息失败状态返回到修改界面并提示修改错误说明对修改的信息进行合法验证,更新档案信息表4:查询档案用例用例名查询档案前置条件管理员或普通用户已登录成功状态显示查询到的信息失败状态返回到查询界面并提示查询错误说明对录入查询的信息进行合法验证,显示查询到的档案信息表5:添加用户用例用例名添加用户前置条件管理员已登录成功状态显示添加用户成功失败状态返回到添加界面并提示添加错误说明完成普通用户的添加表6:删除用户用例用例名删除用户前置条件管理员已登录成功状态显示删除用户成功失败状态返回并提示删除错误说明完成对普通用户的删除表7:添加当事人用例用例名添加当事人前置条件管理员已登录或进入添加档案界面成功状态显示添加成功失败状态返回到添加界面并显示添加错误说明对录入的信息进行合法验证,添加保存当事人信息表8:查询当事人用例用例名查询当事人前置条件用户已登录或进入显示档案界面成功状态显示当事人的详细信息失败状态返回到查询界面并显示查询错误说明对录入的查询信息进行合法验证,显示当事人信息表9:修改自己信息用例用例名修改自己信息前置条件用户已登录成功状态显示修改成功后的信息失败状态返回到修改界面并显示修改错误说明对录入的修改信息进行合法验证,更新修改当事人信息顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。图5:管理员登录及档案管理序列图图6:管理员对当事人管理序列图图7:普通用户的操作序列图状态图描述一个实体基于事件反应的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反应的。状态图设计一般是在对操作序列的顺序图细化的基础上表达。图8:管理员维护档案的状态图图9:管理员维护当事人信息状态图图10:普通用户状态图数据库分析与设计法医档案档案类型,归档类型归档号,保密级案卷号,目录号主办人,鉴定单位鉴定法医,归档日期年龄,性别法医档案档案类型,归档类型归档号,保密级案卷号,目录号主办人,鉴定单位鉴定法医,归档日期年龄,性别当事人,鉴定目的鉴定结果备注当事人当事人ID,姓名性别,身份证出身年月国籍,民族政治面貌文化程度出身地,原籍户籍所在地现址,电话职业,身份特殊身份备注档案档案ID,档案类型归档类型,归档号保密级,案卷号目录号,案由当事人,审判长审判员1,审判员2书记员,主办人收案日期,结案日期原审法院,保管日期一审结果,二审结果再审结果,备注用户用户ID密码用户名角色档案-当事人当事人ID档案ID数据库物理设计用户用户ID密码用户名角色档案-当事人当事人ID档案ID[说明]:空缺位置表示无要求,主键在约束栏注明。基本表:用户[user]字段类型长度约束ID文本32主键Password文本32Name文本10唯一非空Role文本10基本表:当事人[people]字段类型长度约束ID文本32主键Pid文本32唯一非空Name文本10非空sex文本4非空Birthday文本12非空Nation文本40非空Race文本10非空Politbg文本10Education文本10Birthplace文本50Bfplace文本50Nowplace文本50Liveplace文本50Tel文本20Occupation文本10Positon文本10Speposition文本10note文本100基本表:档案[doucument]字段类型长度约束ID文本32主键Filekind文本10非空Archkind文本10非空Archno文本20非空唯一Secretlevel文本6Fileno文本20非空唯一Dirno文本20非空唯一Cause文本400client文本200非空Chiefjustice文本10非空Judge1文本10非空Judge2文本10非空Clerk文本10非空Sponsor文本10非空Closedate文本12Enddate文本12Formcourt文本20Firstjudge文本200Secjudge文本200Thirdjudge文本200Arhdate文本12Bgqx文本10Note文本100基本表:当事人__档案[peopledocument]字段类型长度约束peopleid文本32主键documentid文本32主键基本表:法医档案[fydocument]字段类型长度约束id文本32主键Filekind文本10非空Archkind文本10非空archno文本20非空唯一Fileno文本20非空唯一Dirno文本10非空唯一Purpose文本100Sponsor文本20Client文本20Corporation文本20Doctor文本20非空Result文本200Exandate文本12Archdate文本12Age文本3Sex文本2note文本200系统设计与实现系统结构法医档案管理系统登录用户管理当事人管理法医档案管理普通档案管理修改当事人信息显示当事人所有用户添加修改查询所有档案添加显示所有档案添加查询图11:系统结构法医档案管理系统登录用户管理当事人管理法医档案管理普通档案管理修改当事人信息显示当事人所有用户添加修改查询所有档案添加显示所有档案添加查询功能说明:普通档案管理:可以根据档案的一个或多个字段来查询所需的档案。在添加档案信息的同时也可新打开一个添加当事人的页面添加当事人的信息。显示所有档案功能先显示部分档案信息,当需要查看其详细信息时再显示其详细信息,在档案的详细信息中有当事人的链接,可查看当事人详细信息。法医档案管理:可以根据档案的一个或多个字段来查询所需的档案。在添加档案信息的同一页面添加被鉴定人的信息。显示所有档案功能先显示部分档案信息,当需要查看其详细信息时再显示其详细信息。用户管理:管理员可查看所有的用户,也可进行用户的添加和删除。当事人管理:普通用户可查看当事人的详细信息,但不能对其进行修改,管理员不但可查看还可以对其进行修改。系统的构架设计系统主要有如下3个包:用户接口包(表示层)用户接口包在其他包的顶层次,为系统用户提供访问信息和服务。其主要包括jsp和ActionForm等文件。系统所有Action类都继承BaseAction类,在BaseAction类中获得系统Spring所配置的业务层bean对象的实例。用户登录及处理的ACTIONFORM,ACTION类图:图12:用户登录及处理的ACTIONFORM,ACTION类图档案的ACTIONFORM,ACTION类图:图13:档案的ACTIONFORM,ACTION类图业务逻辑包(业务层)主要完成业务逻辑的处理工作,它既要调用持久层的方法来完成数据的持久化和查询工作也要业务方法暴露给表示层,以便表示层的调用。系统业务接口及其实现类图如下:图14:系统业务接口及其实现类图数据持久DAO包(持久层)该包实现数据的持久化,也就是与数据库交互,实现数据的存取、修改等操作。Spring的HibernateDaoSupport基类提供了访问与当前事务绑定的Session对象的函数。所有DAO类都继承HibernateDaoSupport这个基类。系统DAO封装了各对象域模型进行持久化操作的各种方法,系统DAO接口及实现类图如下:图15:系统DAO接口及实现类图(三)用户接口层用户只能通过系统提供的用户接口来访问系统。登录功能及权限验证用户登录的主要功能是接受用户所输入的密码和用户名及其角色,然后根据其角色跳转到不同的主页。用户登录页面是系统的入口页面,其图如下:用户登录功能的后台处理方法主要包括以下步骤:a.得到用户提交的用户名和密码及角色b.根据得到的信息进行查询c.如没有找到相应用户则返回登录界面,找到相应用户则根据角色跳转到相应主页面,并且保存当前用户角色到session中以便进行权限验证。登录的Action处理方法的实现如下:Useruser=((UserService)getBean("UserService")).logIn(name,password,role); if(user==null){ //没找到相应的用户则跳到登录界面 mapping.getInputonForward(mapping.getInput())); }//获得当前对话的sessionsession=request.getSessionsession=request.getSession(); //保存用户名,角色到session中 session.setAttribute("user",user); session.setAttribute("role",role); if(role.equalsIgnoreCase("manager")){//跳转到管理员主界面 return(mapping.findForward("managerLogIn")); } //跳转到普通用户界面 return(mapping.findForward("commonLogIn"));在进入每个jsp页面时都进行权限的验证,只有具有相应权限的用户才能进入。为了更好的实现这功能,提高代码的重用性,我们采用自定义标签来实现此功能。其类如下:publicfinalclassValidateSessionTagextendsTagSupport{privateStringrole;publicintdoEndTag()throwsJspException{ booleanvalid=false; HttpSessionsession=pageContext.getSession();//获得当前sessionif((session!=null)&&(getRole().equals(session.getAttribute("role")))&&(session.getAttribute("user")!=null))//判断当前用户的角色 valid=true; if(valid) return(EVAL_PAGE); else{ try{//当前用户不具有访问当前页面的权限,返回到登录页面 pageContext.forward("login.jsp"); }catch(Exceptione){ thrownewJspException(e.toString()); } return(SKIP_PAGE); }}publicintdoStartTag()throwsJspException{ return(SKIP_BODY);}publicStringgetRole(){ return(this.role);}publicvoidsetRole(Stringrole){ this.role=role;}}其标签的配置为:<tag><name>validateSession</name><tagclass>cn.fy.tag.ValidateSessionTag</tagclass><bodycontent>empty</bodycontent><attribute><name>role</name><required>true</required><rtexprvalue>true</rtexprvalue></attribute></tag>档案管理及维护当进入管理员主页面时,显示所有档案的主要信息,当需要查看其详细信息时,点击详细信息查看档案的详细信息,其action的实现为:Pagepage=newPage();//把查询到的档案信息放入Pagebean里 page=((DocumentService)getBean("DocumentService")).getDocument("fromDocument",page);//把获得的bean保存在request里 request.setAttribute("p",page);//转到显示页面 return(mapping.findForward("listDocument"));档案信息的显示页面如图:点击详细信息,显示档案的详细信息页面如图:图18:显示档案的详细信息页面显示档案详细信息的action为:Stringid=request.getParameter("id");//查询所需要的档案 Documentdoc=((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的实现为:Peopleclient=newPeople(); client.setPid(clientForm.getPid()); client.setName(clientForm.getName());…………….//判断当前添加的当事人身份证号是否已经存在if(((ClientService)getBean("ClientService")).getClientByPid(client.getPid())!=null){ errors.add("bad",newActionMessage("identity.card.exist")); saveErrors(request,errors); request.removeAttribute(mapping.getAttribute());//当事人身份证号已经存在,返回添加当事人页面 return(mapping.findForward("addClient"));}//当事人身份证号不存在,则添加到当事人队列中 if(session.getAttribute("peopleList")!=null){ List<People>peopleList=(List)session.getAttribute("peopleList"); peopleList.add(client); session.setAttribute("peopleList",peopleList); }else{ List<People>peopleList=newArrayList<People>(); peopleList.add(client); session.setAttribute("peopleList",peopleList); } errors.add("success",newActionMessage("addClient.success")); saveErrors(request,errors); request.removeAttribute(mapping.getAttribute()); return(mapping.findForward("addClient"));档案的查询可根据档案的一个或多个字段进行进行查询,其查询页面如图:图22:档案查询页面当用户单击查找按钮后,ActionForm先对其查询的字段进行合法性检验,只有通过ActionForm的合法性检验才转到Action里进行处理,相应的Action处理实现为:SearchFormf=(SearchForm)form;//根据提供的查询字段查询档案 Pagepage=newPage();page=((DocumentService)getBean("DocumentService")).getDocument(f.getSql(),page); //HttpSessionsession=request.getSession(); //session.setAttribute("p",page); request.setAttribute("p",page);//转到档案的显示页面 return(mapping.findForward("listDocument"));档案的修改页面如图:图23:档案的修改页面单击提交后也得进行合法性验证,只有验证后才进行更新,其修改更新的Action方法的实现为:Stringid=request.getParameter("id");//取出需要修改的档案对象 Documentdoc=((DocumentService)getBean("DocumentService")).getDocumentById(id); DocumentFormf=(DocumentForm)form;//修改档案信息 doc.setFileKind(f.getFileKind());…………….//更新档案信息 ((DocumentService)getBean("DocumentService")).updateDocument(doc); errors.add("sucess",newActionMessage("update.document.success")); saveErrors(request,errors); return(mapping.findForward("document"));法医鉴定档案的管理先显示法医鉴定档案部分重要的信息,当需要查看其详细信息时再显示其详细信息,显示法医鉴定档案的详细信息的页面为:显示法医鉴定档案的详细信息Action的方法为: Stringid=request.getParameter("id");//获得档案的详细信息 FYDocumentdoc=((FYDocumentService)getBean("FYDocumentService")).getDocById(id);//把档案对象保存在request对象里 request.setAttribute("document",doc);//转到显示档案详细信息页面 return(mapping.findForward("detail"));法医鉴定档案的添加功能,在添加档案信息的同一页面添加被鉴定人的信息,其添加页面如图:图25:法医鉴定档案的添加页面单击提交后,先进入相对应的ActionForm进行字段合法性验证,然后进入Action进行档案的添加,实现这个功能的Action方法为:FYDocumentdoc=newFYDocument(); AddFYDocFormaddForm=(AddFYDocForm)form; doc.setFileKind(addForm.getFileKind()); doc.setArchKind(addForm.getArchKind());…………….doc.setNote(addForm.getNote());//保存档案 ((FYDocumentService)getBean("FYDocumentService")).saveFYDoc(doc); errors.add("sucess",newActionMessage("add.fayuan.document.success")); saveErrors(request,errors);//转到档案添加成功页面 return(mapping.findForward("fydocument"));法医鉴定档案的修改页面如图:图26:法医鉴定档案的修改页面提交后,由相对应的ActionForm进行修改后的字段合法性验证,然后进入Action进行档案的添加,实现这个功能的Action方法为:Stringid=request.getParameter("id");//获得需要修改的法医档案对FYDocumentdoc=((FYDocumentService)getBean("FYD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026生物高考新疆模拟试题试卷+参考答案
- 中国石油大学《内部控制》期末考试复习题及参考答案
- 2026年医学器械工程师资格考试试题及答案
- 东海航空一般事件判定标准(试行)知识点考核试题及答案
- 2026届北京市华清园教育高校强基计划模拟测试物理试卷及答案
- 《导电高分子》课件
- 《执教邓作逵》课件
- 《未来道路我选择》课件
- 河南省焦作市2025-2026学年数学四年级第二学期期末考试模拟试题含答案解析
- 关于2026年春季产品线更新的会议通知7篇
- GB 48145-2026井工煤矿机电设备完好性要求
- 城市绿道配套给排水方案
- 2026年安徽公务员行测真题试卷附答案
- 新版2026秋新北师大版数学五年级上册全册教案教学设计含综合实践合集
- 新版(2026秋)人教版(新教材)六年级数学上册全册教案合集
- 2026年陕西省高考生物学真题试卷
- 交管12123学法减分题库500题(含标准答案+解析2026全国完整版)
- 闭合电路的欧姆定律 课件-2026-2027学年高二上学期物理人教版必修第三册
- 2026年中学综合实践测试题及答案
- 化学检验员(技师)职业鉴定理论考试题库(浓缩400题)
- 2026年国企校招时事政治试题及答案
评论
0/150
提交评论