基于java信息法院管理系统设计.docx
- 文档编号:4793443
- 上传时间:2022-12-09
- 格式:DOCX
- 页数:32
- 大小:1.06MB
基于java信息法院管理系统设计.docx
《基于java信息法院管理系统设计.docx》由会员分享,可在线阅读,更多相关《基于java信息法院管理系统设计.docx(32页珍藏版)》请在冰豆网上搜索。
基于java信息法院管理系统设计
编号:
基于java信息实训开发
实训(论文)说明书
题目:
基于java信息法院管理系统实训开发
院〔系〕:
应用科技学院
专业:
计算机科学与技术
学生姓名:
盘晟
学号:
0801110219
指导教师:
熊太平
摘要
J2EE是一种全新概念的企业级应用程序模型,和传统企业应用开发模型相比有不可比较的优势。
J2EE体系结构提供中间层集成框架用来满足高可用性、高可靠性以及可扩展性的应用的需求。
通过提供统一的开发平台,J2EE降低了开发多层应用的费用和复杂性,增强了平安机制,提高了性能。
本系统是基于轻量级J2EE的开发架构,采用MVC软件设计模式。
我们选择轻量级框架Spring,它使应用程序不依赖于任何容器,减少开发的复杂度,提高开发的效率。
表示层采用开放源代码且较成熟的Struts。
持久层框架使用较为流行的ORM组件Hibernate。
本系统利用internet解决档案的查询效率低,查询不方便,以及防止传统的法院档案管理的归档困难、档案容易损坏等问题。
[关键词]J2EE;MVC;Struts;Hibernate;设计模式
基于轻量级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应用的发布描述文件,是与Struts相关的特殊信息配的描述文件。
图2:
STRUTS实现的MVC框架
二、需求分析说明
(一)开发背景
法院在其工作中日集月累产生了大量的档案资料,而且档案资料的数量还在不断的增加之中。
在日常的工作里,原始手工管理模式给档案管理工作带来了极大的不便,人员劳动强度大,档案资料管理也困难。
而且还有查询效率低,劳动强度大、归档困难、容易损坏等缺点。
(二)功能性需求分析
该系统具有以下一些特征:
1)管理员和普通用户能进行登录
2〕能显示档案的信息,可进行档案的查询,增加和修改
3〕能显示用户信息,可对用户信息进行添加和删除
4〕能显示当事人信息,可对当事人进行添加和修改
业务模型和需求分析的目的是对系统进行评估,采集和分析系统的需求,理解系统要解决的问题,重点是充分考虑系统的实用性。
结果可以用一个业务用例〔BusinessUseCase〕框图表达:
图4:
业务用例图
模型中的活动者代表外部与系统交互的单元,包括管理员和普通用户。
业务用例框图是对系统需求的描述,表达了系统的功能和所提供的效劳,包括添加档案,修改档案,查询档案,添加用户,删除用户,查询当事人,修改用户信息。
用例说明:
表1:
登录用例
用例名
登录
前置条件
进入系统主页
成功状态
根据登录角色进入相应界面
失败状态
返回到登录界面
说明
用户进行登录
表2:
添加档案用例
用例名
添加档案
前置条件
管理员已登录
成功状态
提示档案添加成功
失败状态
返回到添加档案界面并提示操作不成功
说明
对录入信息的格式进行合法验证,保存添加档案
表3:
修改档案用例
用例名
修改档案
前置条件
管理员已登录
成功状态
提示修改成功并显示修改后的信息
失败状态
返回到修改界面并提示修改错误
说明
对修改的信息进行合法验证,更新档案信息
表4:
查询档案用例
用例名
查询档案
前置条件
管理员或普通用户已登录
成功状态
显示查询到的信息
失败状态
返回到查询界面并提示查询错误
说明
对录入查询的信息进行合法验证,显示查询到的档案信息
表5:
添加用户用例
用例名
添加用户
前置条件
管理员已登录
成功状态
显示添加用户成功
失败状态
返回到添加界面并提示添加错误
说明
完成普通用户的添加
表6:
删除用户用例
用例名
删除用户
前置条件
管理员已登录
成功状态
显示删除用户成功
失败状态
返回并提示删除错误
说明
完成对普通用户的删除
表7:
添加当事人用例
用例名
添加当事人
前置条件
管理员已登录或进入添加档案界面
成功状态
显示添加成功
失败状态
返回到添加界面并显示添加错误
说明
对录入的信息进行合法验证,添加保存当事人信息
表8:
查询当事人用例
用例名
查询当事人
前置条件
用户已登录或进入显示档案界面
成功状态
显示当事人的详细信息
失败状态
返回到查询界面并显示查询错误
说明
对录入的查询信息进行合法验证,显示当事人信息
表9:
修改自己信息用例
用例名
修改自己信息
前置条件
用户已登录
成功状态
显示修改成功后的信息
失败状态
返回到修改界面并显示修改错误
说明
对录入的修改信息进行合法验证,更新修改当事人信息
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
图5:
管理员登录及档案管理序列图
图6:
管理员对当事人管理序列图
图7:
普通用户的操作序列图
状态图描述一个实体基于事件反响的动态行为,显示了该实体如何根据当前所处的状态对不同的时间做出反响的。
状态图设计一般是在对操作序列的顺序图细化的根底上表达。
图8:
管理员维护档案的状态图
图9:
管理员维护当事人信息状态图
图10:
普通用户状态图
三、数据库分析与设计
〔一〕数据库逻辑设计
(二)数据库物理设计
[说明]:
空缺位置表示无要求,主键在约束栏注明。
根本表:
用户[user]
字段
类型
长度
约束
ID
文本
32
主键
Password
文本
32
Name
文本
10
唯一非空
Role
文本
10
根本表:
当事人[people]
字段
类型
长度
约束
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、登录功能及权限验证
用户登录的主要功能是接受用户所输入的密码和用户名及其角色,然后根据其角色跳转到不同的主页。
用户登录页面是系统的入口页面,其图如下:
用户登录功能的后台处理方法主要包括以下步骤:
a.得到用户提交的用户名和密码及角色
b.根据得到的信息进行查询
c.如没有找到相应用户那么返回登录界面,找到相应用户那么根据角色跳转到相应主页面,并且保存当前用户角色到session中以便进行权限验证。
登录的Action处理方法的实现如下:
Useruser=((UserService)getBean("UserService")).logIn(name,password,role);
if(user==null){
//没找到相应的用户那么跳到登录界面
return(newActionForward(mapping.getInput()));
}
//获得当前对话的session
HttpSessionsession=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();//获得当前session
if((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;
}
}
其标签的配置为:
2、档案管理及维护
当进入管理员主页面时,显示所有档案的主要信息,当需要查看其详细信息时,点击详细信息查看档案的详细信息,其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
peopleList.add(client);
session.setAttribute("peopleList",peopleList);
}else{
List
peopleList.add(client);
session.setAttribute("peopleList",peopleList);
}
errors.add("success",newActionMessage("addClient.success"));
saveE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 java 信息 法院 管理 系统 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)