毕业论文范文网-论文范文
电气工程 会计论文 金融论文 国际贸易 财务管理 人力资源 学前教育 德语论文 工程管理 文化产业 工商管理 会计专业 行政管理 广告学
机械设计 汉语文学 英语论文 物流论文 电子商务 法律论文 工商管理 旅游管理 市场营销 药学论文 播音主持 人力资源 金融论文 保险学
制药工程 生物工程 包装工程 模具设计 测控专业 工业工程 教育管理 行政管理 计算机论 电子信息 市场营销 法学论文 财务管理 投资学
体育教育 小学教育 印刷工程 土木工程 书法论文 护理论文 心理学论 信息管理 公共事业 给水排水 新闻专业 摄影专业 广电编导 经济学
  • 范文首页 |
  • 毕业论文 |
  • 论文范文 |
  • 计算机论文 |
  • 外文翻译 |
  • 工作总结 |
  • 工作计划 |
  • 现成论文 |
  • 论文下载 |
  • 教学设计 |
  • 免费论文 |
  • 原创论文 |
搜索 高级搜索

原创毕业论文

当前位置:毕业论文范文网-论文范文 -> 免费论文 -> 计算机论文

基于J2EE的档案管理系统—前台功能的设计与实现

作者: 浏览:11次
免费专业论文范文
免费专业论文
政治工作论文
计算机论文
营销专业论文
工程管理论文范文
医药医学论文范文
法律论文范文
生物专业论文
物理教学论文范文
人力资源论文范文
化学教学论文范文
电子专业论文范文
历史专业论文
电气工程论文
社会学专业论文
英语专业论文
行政管理论文范文
语文专业论文
电子商务论文范文
焊工钳工技师论文
社科文学论文
教育论文范文
数学论文范文
物流论文范文
建筑专业论文
食品专业论文
财务管理论文范文
工商管理论文范文
会计专业论文范文
专业论文格式
化工材料专业论文
英语教学专业论文
电子通信论文范文
旅游管理论文范文
环境科学专业论文
经济论文
人力资源论文范文
营销专业论文范文
财务管理论文范文
物流论文范文
财务会计论文范文
数学教育论文范文
数学与应用数学论文
电子商务论文范文
法律专业论文范文
工商管理论文范文
汉语言文学论文
计算机专业论文
教育管理论文范文
现代教育技术论文
小学教育论文范文
机械模具专业论文
报告,总结,申请书
心理学论文范文
学前教育论文范文

收费计算机专业论文范文
收费计算机专业论文
Delphi
ASP
VB
JSP
ASP.NET
VB.NET
java
VC
pb
VS
dreamweaver
c#.net
vf
VC++
计算机论文
毕业论文范文题目:基于J2EE的档案管理系统—前台功能的设计与实现,论文范文关键词:基于J2EE的档案管理系统—前台功能的设计与实现
基于J2EE的档案管理系统—前台功能的设计与实现毕业论文范文介绍开始:

基于J2EE的档案管理系统—前台功能的设计与实现
毕业设计(论文)任务书

题目  基于J2EE的档案管理系统—前台功能的设计与实现
专业  计算机科学与技术    学号    姓名 
主要内容:
 对当前流行的企业应用平台J2EE进行研究和分析,然后使用J2EE平台实现一个基于网络的档案管理系统。
 要求使用比较先进的框架设计系统的整体结构,使用主流开发工具设计实现,能够完成企事业单位中的档案管理工作,较大程度上减轻机构的资料管理工作。
基本要求:
 设计严谨、功能完备;界面流畅、使用方便;实现档案的归档、查询、借阅和归还的流程;安全保密、易于维护。
主要参考资料:
1、原始资料:
 [1] 杨学瑜. JSP入门与提高. 北京:清华大学出版社,2002.
 [2] Pallavi Jain,王雷,等. J2EE专业项目实例开发. 北京:中国水利水电出
版社,2003.
 [3] 孙卫琴. Tomcat与Java Web开发技术详解. 北京:电子工业出版社,2004.
 [4] 国家信息安全工程技术研究中心与国家信息安全基础设施研究中心合著. 电子总体设计与技术实现.北京:电子工业出版社,2003.
 [5] 求是科技编著. Java数据库系统开发实例导航. 北京:人民邮电出版社,
2004.
 [6] 腾永昌. Oracle9i数据库管理员使用大全. 北京:清华大学出版社,2004.
2、技术条件:
   硬件配备:惠普服务器一台,个人组装机六台.
软件配置:微软公司的Windows2003高级服务器版,Oracle公司的Oracle9i,Bea公司的WebLogic8.12,JetBrains公司的IntelliJ IDEA 4.5,Macromedia公司的DreamWeaver 2004.
 完  成  期  限:2005年6月10日
 指导教师签章:                 
 专业负责人签章:                      
 年   月   日


基于J2EE的档案管理系统——前台功能的设计与实现

摘  要

 随着企业规模的扩大、档案数量的增加,采用传统的手工模式进行档案管理已经暴露出越来越多的弊端。企业迫切需要一种简洁、高效、安全的档案管理方式来适应现代化办公的需求。
 本文从档案管理系统的开发背景展开,对基于J2EE的档案管理系统的开发技术进行了分析介绍。论文重点讨论了本系统前台页面的设计与实现过程,主要包括:登录页面、用户管理模块、部门管理模块、档案库管理、档案管理、借阅管理、档案的检索。在对系统的总结中,论文分析了系统存在的一些不足之处,并提出了一些改进思路。
 论文着力于基于J2EE的档案管理系统的前台功能的设计与实现,系统对于档案管理工作做了有益的探索。
 
关键词  J2EE;档案管理系统;Java;JSP 

 

 


 

 

 


FILE ADMINISTRATIVE SYSTEM BASED ON J2EE
-- --DESIGN AND REALIZATION OF FRONT DESKS


ABSTRACT

 With enlargement of the enterprises, increment of files, traditional craft mode that carries on file administration has exposed more and more drawbacks already. Enterprise needs one concise high-efficient safe file management style to meet demand of modernization office.
 This text launches from the development background of the file administrative system, has analysed the introduction to the technology of development based on file administrative system of J2EE. It has discussed the design of this systematic front desk page and realized the course especially in thesis, includes: Log-in page , user manage the module , department and manage module , storehouse management of the file , file administration , borrow the management , searching of the file. In the end,the paper analysize the weak points of the system,and has proposed some advices of improrement.
 The thesis puts forth effort on the design of some stage functions based on file administrative system of J2EE and realizes, have done beneficial exploration in management to the file of the system.

KEYWORD  J2EE, records management system,Java,JSP

 

 

 

 

目   录

摘要 ………………………………………………………………………… Ⅰ
Abstract …………………………………………………………………… Ⅱ
第一章  绪论 1
第一节  项目背景分析 1
第二节  档案管理的现状及展望 1
第三节  本档案管理的系统目标 2
第二章  技术综述 3
第一节  Oracle 数据库简明运用 3
第二节  BEA WebLogic Platform8.1配置小结 4
第三节  Java技术基础 8
第四节  J2EE应用程序模型简介 13
第三章  项目设计 16
第一节  系统开发要求 16
第二节  需求分析 16
第三节  系统体系架构 17
第四章 系统功能实现 23
第一节  用户管理 24
第二节  部门管理 26
第三节  档案库管理 29
第四节  档案管理 30
第五节  借阅管理 31
第六节  档案的检索 35
结束语 38
致  谢 39
参考文献 40
附录:主要程序源代码 41

 

第一章  绪论
第一节  项目背景分析
  随着科学技术的不断发展,档案工作的现代化建设进步很快,很多新技术的渗透,使档案工作的科技含量越来越高,促进了档案工作的迅速发展。档案管理工作。现在普遍使用的计算机技术与缩微技术,都大大地促进了档案工作的发展,提高了工作效率。例如利用计算机技术进行立卷[1]、著录、存储、检索、联网等方面的工作,使档案工作改变了过去管理落后的局面,在为经济建设与社会发展服务中收到很好效果,创造了极大的经济效益和社会效益。     通过计算机档案管理系统的开发应用,档案管理信息化不断发展,档案管理工作不断得到创新。在“国家863计划十五周年成就展览会”上展出的“国务院绝密论文管理系统”标志着政府公文、档案管理信息化进入了一个崭新的发展阶段。当前,我国已将电子政务建设作为今后一个时期国家信息化的重点[2],这为档案管理信息化的发展提供了极好的机遇。但是必须看到,档案管理信息化不单纯是工程项目,它是档案管理不断创新的过程,不可能一蹴而就。由于档案管理工作的极端重要性和特殊性,档案管理信息化仍面临着诸多困难和挑战,任重道远。
第二节  档案管理的现状及展望
 当前档案管理领域的研究趋势:
 第一,受全球化、现代化电子政府建设的影响,档案管理建设的问题已成为国内外档案同行共同关注的焦点。目前国内多数档案管理数字化和信息化建设才刚刚起步,学术研究仅处于探索和假设阶段,而发达国家在多年实践积累的基础上[3],这方面的学术研究已进入总结最佳实践经验,建立和完善最优化管理规范的阶段。系统研究国际领域在档案数字化和信息化建设方面的经验及规范对我国档案信息化建设少走弯路,吸取先进经验有现实的指导意义。 
 第二,保证档案的真实性及其长久利用问题已成为档案工作者面临的最大挑战。电子文件与档案管理规范的建设问题已成为国外电子政府建设必不可少的有机组成,世界各国在规范建设方面均有国际化趋势。ISO15489文件管理国际标准在世界各地得到了广泛认可和应用。英国、美国、澳大利亚、新西兰等国均采纳了该国际标准并将其作为国家标准。我基金项目课题组首次翻译了该标准,产生了ISO15489中文版。
 第三,实践经验证明,文件、档案与信息的集成管理与集成服务已成为档案管理最佳实践的一种机制,成为档案信息化建设的必然趋势和发展方向,成为21世纪档案优化管理的一种必然选择和最优化标识。
第三节  本档案管理的系统目标
 档案管理系统的主要目的就是利用软件实现档案的归档,查询,借阅和归还的流程,是工作人员对档案管理工作更加容易,提高工作的效率,降低管理的成本。
 普通档案的管理一般分为文件[4]档案和音像资料的管理两部分,而电子政务中的档案管理可以针对实际情况对档案的类型进行配置,从而达到细化档案管理,灵活设置档案库的目的。
 档案管理系统中需要对档案的借阅流程进行处理,其中要实现档案借阅的申请,审批,提醒和归还功能。
 此外还要设一些管理人员,人员的数目是根据档案库的数量而定。管理人员在对应的档案库中对档案进行归档(组卷)和整理工作。
 我们所做的系统属于一个简单的档案管理,模块有:用户管理,部门管理,档案库管理,档案管理,借阅管理,档案检索及我的档案。本系统要较好的实现以上所有功能。    做好档案管理工作,加强档案信息的开发利用是各个政府部门或者企业的需要。档案管理的主要目的之一,就是能够使计算机网络上的用户可以根据需要随时在本机上就可以检索,查询,浏览所需的档案资料.
 档案管理工作的重要性已逐渐被人们认识,但怎样才能真正做好这项工作呢?下面给出几点建议:
 首先,加强领导,分层培训是搞好档案管理工作的关键。档案管理工作是一项专业性很强的系统工程,要保证档案管理机制正常运转,必须加强领导。
 其次,加强业务建设是搞好档案管理工作的保证。
 第三,指导、检查、督促、考核是搞好档案管理工作的必要条件。
 
 
 
 
 
 
 
 
 
 
 
 

第二章  技术综述
第一节  Oracle 数据库简明运用
   Oracle 数据库管理系统一直处于数据库技术的领先者的地位,主要归公于他的强大功能。从技术角度讲,它把数据库从基本的关系模型引入到对象关系型,人们可以从传统的关系型上升到对象型应用,使得系统更简捷、更有效。从规模角度讲,从个人单机数据库到巨型数据库(TB级),Oracle 都提供全面的支持。从程序设计角度讲,Oracle 系统提供的结构化程序、事件驱动程序设计,并支持面向对象的程序设计和web程序设计。从计算机网络讲。Oracle本来就支持局域网和广域网,更重要的是现在又可以全面支持internet/intranet,从而提供了非常广阔的应用前景。
 Oracle 向用户提过可快速、准确的数据检索能力,并且他还挺过多数据完整性和一致性的保证,以及与有维护数据库安全的能力。更为重要的是,Oracle向数据库开发者提供了可以快速有效的建立应用的开发工具:Oracle提供的SQL/PLUSE允许用户使用SQL命令交互式的为数据库;SQL*Form允许用户开发和使用这些基于表单的应用程序。而SQL*Loader则可以实现将各种数据加载到Oracle数据库中去的能力;等等。
Oracle 数据库的安全性
 开发网络数据棵管理信息系统,保证数据库的安全是非常重要的工作。如果没有充分的安全性控制,则任何人都可以访问数据库并能查询和改变他的数据,则数据库必然遭到破坏乃至造成整个系统的瘫痪。因此,如何防止未授权的用户对信息系统的访问,如何控制授权用户对自己所拥有的权限的子系统和数据进行访问,如何跟踪用户对系统的访问情况,如何使系统免于因各种破坏而造成数据丢失和偷窃,是信息系统安全管理功能必须要解决的问题。而信息系统的安全管理方案受信息系统构筑模式和所采用的数据库的制约。Oracle dbms在实现安全性管理中[7],支持多级安全管理制,主要包括:在进入ORACLE系统时,必须验证用户名和口令,支持验证用户名和口令,以防止非法用户注册到ORACLE;建立数据库及安全管理,对数据进行存取时,对不同的用户授予不同的权限,以限制不同的用户操作数据库的权利;建立表及安全管理等。
 为实现上述安全管理措施,在大多开发的应用系统中,数据库安全管理主要是由数据库管理员通过使用ORACLE直接进行安全控制,包括建立用户、建立角色及权限设置等。这种安全性管理的方法的主要缺点是:安全管理界面与应用系统相脱离,操作不便;由于用户单位的网络管理员并非从事计算机专业人员,也未经过专业培训,直接操作ORACLE反而会给系统带来一定的危险性。所以,系统开发人员必须利用ASP来开发操作方便的数据库安全管理,通过ASP界面来设置ORACLE DBMS。是数据库安全管理界面与ASP应用融为一体。这样,既能充分利用应用系统操作方便的优点,又能充分利用数据库系统本身所提供的强大的安全管理机制,将能更加完美的实现信息系统的安全管理功能。
 实现数据库安全的主要步骤:
 数据库安全管理主要包括:建立并管理ORACLE数据库用户的帐目,使用ORACLE的系统特权、对象特权和角色来管理数据库系统的安全。一个用户要联入ORACLE数据库,使用者必须具有合法的用户名和口令,且只能实施系统授予的权限,其主要步骤如下:
 (1)根据用户单位的实际情况和具体要求,由系统开发人员书县建立相应的角色。并为每种角色授予不同的系统特权。如:DBA特权、RESORSE特权、CONNECT特权等。
 (2)为每种角色授予表特权,如:select特权、update特权、insert特权、delete特权等。
 (3)对不同的用户授予不同的角色。
如何规划和建立角色:
   如前所述,当一个用户联入数据库后,Oracle将根据该用户的数据库系统特权和数据库对象特权,控制他操纵数据库的能力。
Oracle提供了70多种系统特权,为简化权限管理,Oracle使用角色控制用户的权限域。
   角色的规划:系统开发人员根据用户单位的具体情况和要求,按每位人员在网上的职能进行划分和归类。将全体人员划分为若干类并建立相应的角色,由系统开发人员通过ORACLE为每种角色与相应的系统特权和对象特权。这样,在利用ASP开发数据库管理界面建立网络用户时,除给出用户名和用户口令外,还要为其赋予相应的角色。
    角色的建立:管理员的主要任务是启动和关闭数据库,数据的备份和恢复,基本数据的维护及用户的安全管理等。为了实施管理员的功能,系统开发人员在建立管理员角色MDBA时,必须为该角色授予相应的系统特权和对象特权。例如:建立用户,管理员必须具有create user系统特权等,删除用户,管理员必须具有drop user 系统特权等。其他人员的限制主要是对各种表的操作权限,例如:对每个ORACLE用户均必须具有connect 角色,若规定某个表只有查询的权利,则程序为其授予select对象特权即可。
第二节  BEA WebLogic Platform8.1配置小结
 BEA WebLogic Platform 8.1是一个可以提供应用基础结构的应用平台套件(APS),这种基础结构可以简化信息流程,降低应用管理成本,并可以是企业变的更灵活,高效,安全,和通畅。BEA WebLogic Platform8.1是一个集成化的平台,其中包括了业内领先的应用服务器,获过大奖的门户技术,广泛的集成服务,易用而统一的开发环境。BEA WebLogic Platform 8.1提供的高效IT环境可以显著的加速时间向价值转化。
 BEA WebLogic Platform 8.1使所有使用BEA WebLogic Platform 8.1开发环境的开发人员都能够方便而快捷地构建集成的、多层的应用。借助BEA WebLogic Platform 8.1 ,所有开发人员都可以在BEA WebLogic Platform 8.1 上进行开发[8],而不仅仅是那些具备系统程序设计和企业构架经验的企业级开发人员。即使是Java和J2EE新手也能够做到这一点。所以在这里我们也选用BEA WebLogic Platform 8.1作为我们开发用的服务器。
 应用服务器的配置:
 运行环境为Java及JSP容器。目前流行的JSP容器及Java应用服务器有Weblogic Server, Tomcat, JBoss, WebSphere等。这里我们采用BEA公司的Weblogic Server 8.1。首先需要安装Weblogic Server 8.1, 下载地址:
http:// commerce.bea.com/showproduct.jsp?family=WLP&major=8.1&minor=2
 下载完毕后,双击下载的platform811_win32.exe文件,进行安装。
安装完Weblogic Server 8.1后,在Windows的“开始”菜单的“程序”菜单中选择BEA WebLogic Platform 8.1,然后选择Configuration Wizard,按照提示一直选“下一步”,最后生成一个域(domain)。完成之后再从“开始”菜单中选择“程序”,然后依次选择WebLogic Platform 8.1,User Projects,mydomain,Start Server来启动Weblogic Server。WebLogic Server启动完毕后,在浏览器中输入http://localhost:7001/console, 进入管理控制台登录页面。在此页面中输入Weblogic Server 8.1默认用户名Weblogic和密码Weblogic登录,则进入管理控制台主页面,如图2-1所示。
   
图2-1  Weblogic Server管理控制台
 
 本章实例的所有源文件均应放置于一个名为OfficeLog的目录之下,因此发布或调试本系统时,将主目录设置为OfficeLog目录。
 要设置主目录,在 C:\bea\user_projects\domains\mydomain\myserver下,新建一个目录office,然后在C:\bea\user_projects\domains\mydomain\myserver\office目录下,新建一个目录OfficeLog, 然后把光盘里OfficeLog目录下的所有文件拷贝到
C:\bea\user_projects\domains\mydomain\myserver\office\OfficeLog\ 目录下,如图2-2 所示。
 
 图2-2  办公日志系统OfficeLog程序目录

       另外我们还要修改config.xml文件配置,把上面新建的目录指定为一个Web应用。修改startWebLogic.cmd文件,把程序运行时要用到的java类路径指出。进入目录C:\bea\user_projects\domains\mydomain\,找到config.xml文件。如图2-3所示。

 图2-3  Weblogic Server 8.1中的配置文件config.xml

在config.xml文件中,增加如下配置:
<Application Deployed="true" Name="OfficeLog"
        Path="C:\bea\user_projects\domains\mydomain\myserver\office" TwoPhase="true">
        <WebAppComponent Name="OfficeLog" Targets="myserver" URI="OfficeLog"/>
</Application>
 还在目录C:\bea\user_projects\domains\mydomain\ 中,找到startWebLogic.cmd文件。在startWebLogic.cmd.文件中,修改类路径如下:

set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%\jre\lib\rt.jar;%WL_HOME%\server\lib\webservices.jar;C:\Program Files\SQLLIB\java\db2java.zip;C:\bea\user_projects\domains\mydomain\myserver\office\OfficeLog\WEB-INF\classes;%CLASSPATH%

可以看到在上面的类路径中,增加了DB2的类路径及OfficeLog的类路径。
     完成以上配置后,关闭Weblogic Server服务器,重启一次。重启后,刚刚的配置就生效了。在浏览器中输入http://localhost:7001/console, 再次进入管理控制台主页面。可以看到在“部署(Deployments)”下的Web应用模块(Web Application Modules)下,新增了一个OfficeLog应用。如图2-4 所示。
  
图2-4  Weblogic Server 8.1管理控制台新增OfficeLog Web应用
     数据库、运行环境及程序安装配置完成后,就可运行此办公日志系统了。现在,在浏览器中输入http://localhost:7001/OfficeLog/default.html, 输入账号admin,密码admin,就可进入该系统了。
第三节  Java技术基础
 JAVA是有SUN公司开发的新一代编程语言[9],它可以用在各种不同的机器、操作系统的网络环境中进行开发。不论你使用哪种浏览器或者使用哪种操作系统(Windows、Unix等等),只要浏览器支持JAVA,你就可以看到生动的主页。JAVA正在逐步成为Internet应用的主要开发语言,它彻底改变了应用软件的开发模式,为迅速发展的信息世界增添了新的活力。
  下面我简单介绍一下java的基本概念:
一、  什么是对象
 对象是一些相关的变量和方法的软件集。软件对象经常用于模仿现实世界中我们身边的一些对象。对象是理解面向对象技术的关键。你在学习之前可以看看现实生活中的对象,比如狗、桌子、电视、自行车等等。你可以发现现实世界中的对象有两个共同特征:它们都有状态和行为。比如狗有自己的状态(比如名字、颜色、生育以及饥饿等等)和行为(比如摇尾巴等等)。同样自行车也有自己的状态(比如当前档位、两个轮子等等)和行为(比如刹车、加速、减速以及改变档位等等)。
 而软件对象实际上是现实世界对象的造型,因为它同样有状态和行为。一个软件对象利用一个或者多个变量来维持它的状态。变量是由用户标识符来命名的数据项。软件对象用它的方法来执行它的行为。方法是跟对象有关联的函数(子程序)。你可以利用软件对象来代表现实世界中的对象。你可能想用一个动画程序来代表现实世界中的狗,或者用可以控制电子自行车的程序来代表现实世界的自行车。同样你可以使用软件对象来造型抽象的概念,比如,事件是一个用在GUI窗口系统的公共对象,它可以代表用户按下鼠标按钮或者键盘上的按键的反应。
 图2-5是一个软件对象的公共可视代表。

图2-5
 软件对象的状态和行为都可以用在对象中的变量和方法来表达[10]。构造现实世界的自行车的软件对象要有指示自行车的当前状态的变量:速度为20mph,它的当前档位为第三档。这些变量就是我们熟知的实例变量,因为它们包含了用于特殊自行车对象的状态,并且在面向对象技术中,特殊的对象称为实例。
 如图2-6所示,是作为软件对象的自行车造型。

图2-6
二、  什么是消息
 软件对象之间进行交互作用和通讯是利用消息的。
单一的一个对象通常不是很有用的。相反,一个对象通常是一个包含了许多其它对象的更大的程序或者应用程序。通过这些对象的交互作用,程序员可以获得高阶的功能以及更为复杂的行为。你的自行车如果不使用它的时候,它就是一堆铝合金和橡胶,它没有任何的活动。而只有当有其它的对象来和它交互的时候才是有用的。
 软件对象与其它对象进行交互与通讯是利用发送给其它对象来实现的。当对象A想对象B来执行一个B中的方法,对象A就会消息给对象B。如图2-7所示。

图2-7
有时候,接收的对象需要更多的信息就至于它可以正确知道该如何做。比如,当你想改变自行车的齿轮,你就必须指出哪个齿轮。这个信息是将信息作为参数来传递的。如图2-8所示的现实了一个信息由三个组件组成:
被寻址消息的对象(YourBicycle)
要执行方法的名字(changeGears)
这个方法需要的所有参数(lowerGear)

图2-8
上面的三个组件对于接收方的对象执行相应的方法是给出了充分的信息。再也不需要其它的信息或者上下文了。
三、 什么是类
 类实际上是对某种类型的对象定义变量和方法的原型。
 在现实世界中,你经常看到相同类型的许多对象[11]。比如 ,你的自行车只是现实世界中许多自行车的其中一辆。使用面向对象技术,我们可以说你的自行车是自行车对象类的一个实例。通常,自行车有一些状态(当前档位、两个轮子等等)以及行为(改变档位、刹车等等)。但是,每辆自行车的状态都是独立的并且跟其它自行车不同。当厂家制造自行车的时候,厂商利用了自行车共有的特性来根据相同的蓝图制造许多自行车。如果制造一辆自行车就要产生一个新蓝图,那效率就太低了。
 在面向对象软件中,同样地,可以让相同种类地许多对象来共有一些特性,比如矩形、雇员记录、视频夹等等。就像自行车制造商人,你可以利用相同种类的对象是相似的事实并且你可以为这些对象创建一个蓝图。对对象的软件蓝图叫做类。
 自行车的类需要定义一些实例变量来包括当前档位、当前速度等等。这个类将为实例方法定义和提供实施方法,它允许骑车者改变档位、刹车以及改变脚踏板的节奏,如图2-9所示:

图2-9
当你创建了自行车类以后,你可以从这个类创建任意个自行车对象。当你创建了一个类的实例后,系统将为这个对象和的实例变量分配内存。每个实例将给所有实例变量的副本定义在类中。如图2-10所示:

图2-10
除了实例变量,类还要定义类的变量。类变量包含了被类所有实例共享的信息。比如,假设所有的自行车有相同的档位数。在本例子中,要定义一个实例变量来容纳档位数。每一个实例都会有变量的副本,但是在每一个实例中数值都是相同的。在这样的情况下,你可以定义一个类变量来包含档位数,这样所有的类的实例都共享这个变量。如果一个对象改变了变量,它就为改变那个类的所有对象。类同样可以定义类方法。你可以直接从类中调用类方法,然而你必须在特定的实例中调用实例方法。如图2-11所示。

图2-11
四、 实例和类成员
理解实例和类成员
 下面详细讨论一下实例和类成员,具体涉及变量和方法以及类变量和方法:
你这样声明一个成员变量,比如在类Myclass中有一个float型的aFloat:
class MyClass {
float aFloat;
}
这样你就声明一个实例变量。每次你创建一个类的实例的时候,系统就为实例创建了类的每一个实例变量的副本。你可以从对象中访问对象的实例变量。
 实例变量跟类变量是不一样的,类变量示使用静态修改量来声明的。不管类创建了多少个实例,系统为每个类变量分配了类变量。系统为类变量分配的内存是在它第一次调用类的时候发生的。所有的实例共享了类的类变量的相同副本。你可以通过实例或者通过类本身来访问类变量。
 它们的方法是类似的:你的类可以有实例方法和类方法。实例方法是对当前对象的实例变量进行操作的,而且访问类变量。另外一个方法,类方法不能访问定义在类中的实例变量,除非它们创建一个新的对象并通过对象来访问它们。同样,类方法可以在类中被调用,你不必需要一个实例来调用一个类方法。
 缺省地,除非其它的成员被指定,一个定义在类中成员就是一个实例成员。这个在下面定义的类有一个实例变量,有一个整型的x,两个实例方法x和setX,它们设置其它对象以及查询x的数值。
class AnIntegerNamedX {
int x;
public int x() {
return x;
}
public void setX(int newX) {
x = newX;
}
}
 每次你从一个类实例化一个新的对象,你可以得到每个类的实例变量的副本。这些副本都是跟新对象有关系的。因此,每次你从这个类实例化一个新的AnIntegerNamedX对象的时候,你得以得到跟新的AnIntegerNamedX对象有关的新副本。
第四节  J2EE应用程序模型简介
 J2EE是Java2Platform,Enterprise Edition的缩写[12],中文通常把它叫做Java 2企业版。J2EE是Sun公司提出的多层(Multi-Tiered)、分布式(Distributed)、基于组件(Component-Based)的企业级应用模型(Enterprise Application Model)。在这样的一个应用系统中,可按照功能划分为不同的组件,这些组件又可在不同计算机上,并且处于相应的层次中。J2EE组件和所属层次包括:·客户层组件     客户机运行的程序,包括小应用程序、独立运行程序、网页和JavaBeans等。·Web层和组件     Web层包括Servlet和JSP。·Business层和组件     该层的组件为EJB(EnterpriseJavaBeans),是本书的主要内容。·企业信息系统(ELS)层     例如数据库系统运行在该层,井可能有专门的数据库服务器,这不同于J2EE服务器。
 与组件有关的术语是容器(container),不同的组件运行在相应的容器中,一般来说,J2EE服务器会提供Web层和Business层组件的容器。在客户机上,Applet运行在浏览器这个容器中,独立运行程序就无所谓容器概念了,它可以直接在机器上运行。·安装J2EE    在SUN公司的网站(http://java.sun.com)上,下载J2SE(Java2标准版) SDK 1.3 和 J2EE SDK 1.3 。因为J2SE和J2EE支持的开发平台(操作系统)很多,如:Solaris(TM)、WindowsNT、Windows2000、Linux Redhat,所以下载时要注意选取支持自己所使用的操作系统的版本。分别安装J2SE SDK 1.3 和 J2EE SDK 1.3。也可以下载并安装J2SE SDK 1.4 和 J2EE SDK 1.4。·配置J2EE    下面以Windows2000 Professional为例,说明J2EE的配置。在环境变量中,要增加或修改4个环境变量,它们是PATH、ClASSPATH、J2EE_HOME和JAVA HOME。    具体内容如下:JAVAHOME ---- 为J2SE的安装目录,如:c:\jsdk1.3。J2EE_HOME --- 为J2EE的安装目录,如:c:\j2ee1.3Path ------- 增加%JAVAHOME%\bin;%J2EE_HOME%\bin;ClASSPATH --- 增加%JAVAHOME%\lib\dt.jar;%JAVAHOME%\lib\tools.jar;%J2EE_HOME%\lib\j2ee.jar;    ·调试J2EE1.启动J2EE服务器在DOS窗口中输入j2ee可启动J2EE服务器程序,下面是其启动完毕后的结果:C:\>j2eeJ2EE server listen port: 1050Redirecting the output and error streams to the following files:D:\j2ee1.3.1\logs\synhe\j2ee\j2ee\system.outD:\j2ee1.3.1\logs\synhe\j2ee\j2ee\system.errJ2EE server startup complete.
 也可以在DOS窗口中输入j2ee -verbose,能够显示所有的启动细节。2.测试J2EE Web服务器在浏览器中,输入 http://localhost:8000/index.html可以看到J2EE的缺省Web页面。 3.停止J2EE服务器在DOS窗口中输入j2ee -stop可以停止J2EE服务器。
 在这里为什么要使用J2EE技术呢?有以下成熟原因:
 J2EE作为一个新型成熟的分布式计算技术,已经广泛应用在很多领域,其可伸缩性、可扩展性的框架体系为应用系统带来了灵活的选择和实现。
使用J2EE技术来实现电子政务系统主要有两个好处:高度的安全性以及多样化的选择。
 首先是满足安全要求,电子政务系统由于涉及国家机密[13],作为互联网中的一个部分,其系统的安全性应当是首要考虑的。
实现安全的要求是多方面的,首先是操作系统和通信方面,通过修改操作系统内核实现国家自己的加密体系是一种比较好的方案,那么很显然,基于开放源代码的Linux操作系统将可能大量使用在电子政务系统中,而Java是一种跨平台的安全型语言,因此J2EE技术在安全性上可以满足要求。
 电子政务系统中将涉及到大量终端和PC机以及服务器[14],包括老系统和新系统,Windows和Linux或Unix都有,电子政府系统如何利用这些现有的资源,实现系统无缝运行,跨平台语言Java无疑又是首选,这样节省了投资,降低了成本。
电子政务系统是个复杂的综合性系统,又有大量老的系统资源需要整合,在这个庞大系统的实施过程中,可能碰到前所未有的各种问题,技术作为一种工具是专门来解决这些问题的,但是只有技术工具的多样化,提供各种解决问题的可能性,就如同五金工具箱提供有各种不同的螺丝刀、扳手等,有了这些丰富多样、各有特点的技术工具支持,才能帮助我们解决各种问题,而Java系统已经发展成为一个开放源代码的标准体系,在这个体系中,每天都诞生大量丰富、各有特点的软件工具,这些无疑为电子政务系统的建设提供了有力支持。
 总而言之,高度的安全性以及多样化的选择是使用J2EE建设电子政务系统最大的优点,政府作为信息技术的消费者,必须将自己立于一种有多种选择的主动地位,这本身也是一种安全性的考虑。
 
 
 
 
 
 
 
 
 

第三章  项目设计
第一节  系统开发要求
界面友好,美观,有明显导视作用。
系统容易使用,准确,方便。
系统能满足目前功能要求,并有相应的扩展能力,便于以后升级。
易于安装维护,以降低成本。
安全性好,能抵抗较强的外界攻击。
系统容错性强,有一定的伸缩能力。
功能齐全,成本低廉。
第二节  需求分析
 档案管理是各企事业单位必不可少的工作,管理的合理程度及成功与否关系到整个办公业务的运作。目前大多数企业利用计算机及定制开发的管理系统对复杂烦琐的公论文案信息进行管理,与信息管理相关的办公业务流程则完全由人工进行办理,如对资料的传阅、发放、借阅等。档案管理是结合计算机特点,对文件资料进行规范化、科学化管理,对形成的具有保存价值的文字、照片、图表、声像等不同载体和类别的文件材料进行收集、保管和利用的管理系统。
 档案管理系统构架的设计遵循多层结构系统模型[15],即在用户操作界面层和最终数据存储层之间布署一个基于组件化技术的应用层。多层体系结构的核心是在Web服务器和数据库服务器之间构架应用服务器,并在应用服务器上封装业务逻辑,以有效减轻数据库服务器的连接压力,改善系统运行的稳定性和性能。由于分离了业务逻辑和页面逻辑,在软件开发和应用过程中,系统的可维护性得到了良好的保证,从而使得项目实施过程中的“需求分析一设计开发”能够进入良性循环,最大限度地保证系统的易用性。   
 由于系统提供面向Internet/Intranet各个方向的信息服务,所以既要向各类用户提供各种方式的信息服务,也要保护系统数据的安全。系统在硬件、网络、数据库和数据、应用操作权限和身份认证方面,要加载全面的安全措施,在信息流的各个层面和角度都具有相应的安全机制。应用开发整体构架要选择符合主流设计思想并经过验证完全可靠的技术方案,以保证系统各项功能、性能指标都达到较高水平。
 目前,实用的三(多)层结构系统模型主要有两种:一是IBM , SUN等众多业界巨头联合开发的基于中间件的J2EE模型,二是Microsoft独家提出的Microsoft. NET模型。后者只能运行在Windo*平台下,而且目前还不太成熟;前者基于跨平台的Java技术,可以在几乎所有主流平台上运行。综合考虑办公系统未来业务的扩展和业务的多样性,以及对系统的安全性、稳定性的较高要求,因此建议选用J2EE模型。
 系统构架的前端部署用户的Web界面,由Web服务器及运行在应用服务器上的Web组件提供支持。系统构架的后端数据库采用功能强大的Oracle数据库,确保数据库系统的扩展、安全以及性能。数据库存储各类信息数据,并由数据库管理系统完成对各类信息数据的采集、分析、表现和管理。数据库管理系统还可以完成从多个数据源中提取数据,并可进行对外数据连接及对已有数据的分析表达。档案管理系统建立各种资料库,可以节省人力,提高效率,为特定的人群服务,提供更广泛的、更便捷的信息。使人们使用更方便的网络获取方式。系统建设要充分考虑到现有环境和未来可能建设的电子平台的接入方式,并考虑数字化政府的整体构架,使机构能够相对平稳地向电子化过渡。对各种延伸业务提供支持,并为电子商务和电子社区提供扩展的空间预留充足的软硬件接口。系统在保护既有投资环境的同时,应注重系统的开放性。
第三节  系统体系架构
 系统的模块划分如下图所示,将系统分为7个模块[16],每个模块负责的功能相对专一。其中,用户登录与验证提供对用户身份的验证,只有具有系统账号的用户才可以适用本系统,其他6个模块对应需求分析中的各个功能。在系统的底层采用Java中间件提供对JSP的支持和对数据库的访问。系统的最底层是数据库,本系统采用Oracle 9i数据库。
 
 图3-1  系统整体框图
 在本系统共设置了三类用户:系统管理员,档案库管理员,普通用户。其权限分别介绍如下:
 系统管理员的权限最大[17],可以根据单位的实际情况对档案库进行配置,如建立音像档案库、上级文件库等,如果机构比较庞大,档案数量较多,可以将档案库细化,如宣传音像档案库、上级回复文件库等。管理员还可以对档案库进行描述,说明该档案库的具体范围。每个档案库可以指定一个管理者,该管理者在这个档案库中有和系统管理员一样的权限,可以对库中档案进行增加、归档、删除和借阅等操作。档案库管理员只对某一类档案库有管理权限,可以对其所管辖的档案库进行增加,归档,删除和借阅等操作。
    一般管理员只有最基本的档案检索功能,查询档案的信息,是否归档,不具有操作数据库的权限。还可以查看我的档案管理模块中用户的档案借阅情况,即我的借阅申请情况,我的在借档案情况,我的借阅情况。
 以下为对管理人员的权限的说明:
 1.管理档案库及其管理人
    系统管理员可以根据单位的实际情况对档案库进行配置[18],如建立音像档案库、上级文件库等,如果机构比较庞大,档案数量较多,可以将档案库细化,如宣传音像档案库、上级回复文件库等。管理员还可以对档案库进行描述,说明该档案库的具体范围。每个档案库可以指定一个管理者,该管理者在这个档案库中有和系统管理员一样的权限,可以对库中档案进行增加、归档、删除和借阅等操作。
    2.新增档案和归档
    用户可以在某个档案库新增档案,新增档案时,需要指定该档案所属的机构、年度、保管期限和备注。但是新增的档案属于未归档(未组卷)类型。管理员可以查看、审核新增的档案,对于不合理的档案,管理员可以修改其属性。而对于合格的档案,管理员可以进行归档操作(组卷操作)。
    3.档案的移出和删除
    管理员可以将档案库中的档案进行移出操作,移出后的档案还存在系统中,不过此时的档案已变成未归档状态。对于未归档状态的档案,管理员有权彻底将该档案删除。
    4.查询档案
 用户可以查询已归档的档案,系统需要提供多种查询的方式,如按归档时间、机构、档案名或按档案库等。   
 5.借阅申请
    用户可以对已归档的档案(未借出)进行借阅,借阅时需要提交借阅申请指明档案的名称、借出时间和归还时间。
    6.借阅审批   
 管理员可对用户提出的借阅申请进行审批,审批通过用户便可到档案室提取档案,未通过管理员需要指出未通过的理由,将信息返回给用户。
 7.档案的归还与提醒
 用户将所借档案归还时,管理员需要在系统中进行档案的归还操作,对于归还日期已到档案,管理员可以进行提醒操作,提醒借阅人归还档案。
 8.机构管理
 系统管理员可对系统中的机构进行管理[19],包括新增机构,此时需要提供机构的名称和说:更改机构名称和说明:删除机构,删除机构前,需要指定别的机构继承该机构的档案或将该机构的所有档案将移出档案库。
 9.系统的功能结构图
 系统的功能结构图如下图所示。
 
 
 图3-2  档案管理系统的功能结构图
 
第四节 数据库设计
 本系统采用Oracle9i作为数据库。首先创建一个数据库,命名为DocSys。然后创建一个用户:DocSys/DocSys。本系统需要7张表,现列举如下:

表名 用途
USERS 用户信息表
DEPARTMENT 机构信息表
DOCBASE 档案库信息表
DOCUMENTS 档案信息表
BORROWRECORD 借阅信息表
MESSAGES 交互信息表
SYSLOG 系统日志信息表

用户信息表(USERS)

名称 数据类型 可否为空 备注
ID VARCHAR2 不允许 用户代码
NAME VARCHAR2 不允许 用户姓名
PASSWORD VARCHAR2 不允许 用户密码
PRIVILEGE NUMBER 不允许 用户权限(1.管理员,0.普通用户)
YXBZ VARCHAR2 允许 有效标志
DJSJ DATE 允许 登记日期
2.机构信息表(DEPARTMENT)
名称 数据类型 可否为空 备注
NAME VARCHAR2 不允许 机构名称
DESCRIPTION VARCHAR2 允许 机构描述
TJSJ DATE 允许 添加时间

3.档案库信息表(DOCBASE)
名称 数据类型 可否为空 备注
NAME VARCHAR2 不允许 档案库名称
DESCRIPTION VARCHAR2 允许 档案库说明
ADMIN VARCHAR2 允许 管理员代码
TJSJ DATE 允许 添加时间

4.档案信息表(DOCUMENTS)
名称 数据类型 可否为空 备注
ID NUMBER 不允许 档案编号
NAME VARCHAR2 不允许 档案名称
DEPT VARCHAR2 允许 机构名称
DOCYEAR NUMBER 允许 档案年度
TIMELIMIT NUMBER 允许 档案时限(0短期、1长期)
ATTR NUMBER 不允许 状态(0未归档、1已归档)
DOCBASE VARCHAR2 不允许 档案库
DESCRIPTION VARCHAR2 允许 档案描述
BUILDER VARCHAR2 允许 创建人
BUILDTIME DATE 允许 创建时间
SFZDSP VARCHAR2 允许 是否自动审批

5.借阅信息表(BORROWRECORD)
名称 数据类型 可否为空 备注
ID NUMBER 不允许 借阅编号
DOCUMENT NUMBER 允许 档案编号
BORROWER VARCHAR2 允许 借阅人
LENDER VARCHAR2 允许 借出办理人
REASON VARCHAR2 允许 借阅原因
STATE NUMBER 允许 装态(1申请、2批准、
3拒绝、4借出、5归还)
SQRQ DATE 允许 申请日期
SQJCRQ DATE 允许 申请借出日期
SQGHRQ DATE 允许 申请归还日期
JCRQ DATE 允许 实际借出日期
GHRQ DATE 允许 实际归还日期
SPRQ DATE 允许 审批日期
YXBZ VARCHAR2 允许 有效标志

6.交互信息表(MESSAGES)
名称 数据类型 可否为空 备注
ID NUMBER 不允许 信息编号
FROMUSER VARCHAR2 允许 送信息人
TOUSER VARCHAR2 允许 接收信息人
MESSAGE VARCHAR2 允许 信息内容
STATE NUMBER 不允许 信息状态(0已读、1未读)
TJRQ DATE 允许 提交日期

7.系统日志信息表(SYSLOG)
名称 数据类型 可否为空 备注
ID NUMBER 不允许 操作编号
OPERATOR VARCHAR2 允许 操作人
OPERATION VARCHAR2 允许 操作描述
TABLENAME VARCHAR2 允许 操作针对表名
TJRQ DATE 允许 操作日期

8.表之间的主外键关系
主键 外键
USERS.ID MESSAGES.FROMUSER
USERS.ID MESSAGES.TOUSER
USERS.ID SYSLOG..OPERATOR
USERS.ID DOCUMENTS.BUILDER
DOCUMENTS.ID BORROWRECORD.DOCUMENT
USERS.ID BORROWRECORD.BORROWER
USERS.ID BORROWRECORD.LENDER
DEPARTMENT.NAME DOCUMENTS.DEPT
DOCBASE.NAME DOCUMENTS.DOCBASE

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
第四章 系统功能实现
 我在本系统中主要利用DreamweaverMX开发工具[20]和HTML语言系统前台部分页面的设计和实现。目的就是很好的实现系统与用户的交互,以及同后台数据库操作紧密连接起来。现对部分页面的设计与实现进行一些分析介绍。
 登录页面:用户登录是用户进入系统的第一个页面,用户对系统的第一印象由此产生,因此这一页面至关重要。我们对此进行了精心设计,最终页面效果如下:
 
 
 图4-1  系统登录界面图
本页面部分实现代码如下:
<table width="100%"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="646" background="<%=rootpath%>/etc/images/login/logo_topsoft_back.jpg">
 <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="360" height="220">
      <param name="movie" value="<%=rootpath%>/etc/flash/frist_logo_flash.swf">
      <param name="quality" value="high">
      <param name="WMODE" value="Transparent">
      <embed src="<%=rootpath%>/etc/flash/frist_logo_flash.swf" width="360" height="220" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" wmode="Transparent"></embed>
    </object></td>
 <td width="146" background="<%=rootpath%>/etc/images/login/logo_topsoft_back_line.jpg">
 <div align="right"></div></td></tr></table>
<table width="500" border="0" align="center" cellpadding="4" cellspacing="4">
  <tr>
    <td colspan="3"><div align="center"><img src="<%=rootpath%>/etc/images/login/logo_bysj.gif" width="400" height="70"></div></td>
</tr>
</table>
第一节  用户管理
 用户管理模块实现用户和管理员的添加和删除功能,并可以查询用户信息。用系统管理员的身份进入系统之后的权限,在此我们选择登记用户功能:如4-2图:

 
图4-2  用户管理界面图
 在这个里系统管理员可以做的工作是可以添加一般用户或者权限比自身小的管理员,添加完毕之后新用户信息保存在数据库中,系统自动返回到登记页面,可以继续添加新用户。
 本页面实现部分实现代码如下:
 <body onload='into_title();'>
 <div id="title_g">添加用户</div>
 <table width="400"  border="0" cellpadding="0" cellspacing="0">
 <form name="userForm" method="post" action="UserAction.jsp?op=add">
   <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
     <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
     <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
   </tr>
   <tr>
     <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
     <td valign="top" bgcolor="#f7f7fe">
   <br>
  <table border="0" cellpadding="3" cellspacing="3" width="400">
       <center>
         <tr>
           <td align="right">用户代码:</td>
           <td align="left"><input name="userId" type="text"   class="inputNeed" maxlength="10"></td>
         </tr>
         <tr>
           <td align="right">用户姓名:</td>
           <td align="left"><input type="text" name="userName"    maxlength="10" class="inputNeed"></td>
         </tr>
   <tr>
           <td align="right">用户类型:</td>
           <td align="left"><select name="userType" style="width:200">
             <option value="0" selected>普通用户</option>
             <option value="1">管理员</option>
           </select></td>
   </tr>
         <tr>
         <tr>
           <td align="right">新密码:</td>
           <td align="left"><input type="text" name="password"    maxlength="10"  class="inputNeed"></td>
         </tr>
         <tr>
           <td align="right">密码确认:</td>
           <td align="left"><input type="text" name="password2"   maxlength="10" class="inputNeed"></td>
         </tr>
         <tr>
           <td colspan="2" align="center"> <input  name="sub" type="button" value="保存"   onclick="check();" class="input_ok"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
               <input name="re"  type="reset"  class="input_re" value="重置" >
 
 在删除用户页面中系统管理员进入后台数据库,可以删除无用的用户。如4-3图:
 
 
                   图4-3  用户删除界面图
 在查询页面中用户可以输入用户部分信息,或者直接点击确定,查询全部用户资料。可以看到用户名,用户密码,用户身份。
 其余操作类似。
 用JSP页面实现具体步骤为[21],由userMan.jsp,action.jsp和一个  JavaBean(UserMan.java)组成。userMan.jsp提供用户操作的界面,在其中输入的信息转发到action.jsp进行处理,在action.jsp中使用UserMan.java进行业务逻辑的处理,action.isp处理完请求后,页面将重新定向到userMan.jsp。
第二节  部门管理
 部门管理需要实现增加部门、维护部门、查询部门描述等功能,只有系统管理员才有权进行档案库管理。作为系统管理员以上三种功能都能实现,在此我们选择添加部门,管理员根据需要可以添加所需部门,并做相关描述。我们添加一个软件1部,运行效果如4-5图所示:
 
 
 图4-5  部门管理图
 在部门维护中系统管理员具有修改已存在的部门名称和描述信息,或者删除无用部门。
 其页面实现部分代码如下:
 <body onload='into_title();'>
 <div id="title_g">部门信息列表</div>
 <table width="500"  border="0" cellpadding="0" cellspacing="0">
   <tr>
     <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
     <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
     <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
   </tr>
   <tr>
     <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
     <td valign="top" bgcolor="#f7f7fe">
  <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" class="table_01">
       <tr align="center" valign="middle">
         <th width="35%" height="25"><div align="center">部门名称</div></th>
   <th width="40%" height="25"><div align="center">部门描述</div></th>
         <th width="25%" height="25"><div align="center">操作</div></th>
         </tr>
      <%
   ArrayList deptInfo=queryDept.getDeptInfo();
   Iterator it=deptInfo.iterator();
   StringTokenizer st=null;
   String deptName="",deptDesc="";
   while(it.hasNext())
   {
     st=new StringTokenizer((String)it.next());
     deptName=st.nextToken();
     if(deptName.equals("deleted"))
            continue;
     deptDesc=st.nextToken();
     if(deptDesc.equals("empty"))
          deptDesc="";
   %>
       <tr align="center" valign="middle">
         <td height="20" align="left"><div align="center"><%=deptName%></div></td>
   <td height="20" align="left"><div align="center"><%=deptDesc%></div></td>
         <td><div align="center"><a href="DeptSet.jsp?deptName=<%=deptName%>&deptDesc=<%=deptDesc%>">修改</a>&nbsp;&nbsp;<a href="java script:doWhenConfirm('确定要删除部门:<%=deptName%>吗?','DeptChange.jsp?deptName=<%=deptName%>')">删除</a></div></td>
       </tr>
   <%
   }
   %>
     </table> 
  </td>
 其余操作类似。
 部门查询则可以检索出所有已存在的部门及其描述信息。
 部门管理模块由三个页面(deptMan.jsp,changeDept.Jsp和action.jsp)和一个JavaBean(DepartmentMan.java)组成。deptMan.jsp提供用户操作的界面,在其中输入的信息转发到action进行处理,若要查询部门,则先转到selectDept.jsp页面,让用户选择是将该部门的档案转入其他部门还是移出档案库,然后转到action.jsp页面。在action.jsp中使用DepartmentMan.java进行业务逻辑的处理,action.jsp处理完请求后,页面将重新定向夏deptMan.jsp系统预设一个名为“selected”的部门与被查询部门的被移出档案库的档案关联。
第三节  档案库管理
 档案库管理的功能包括了新建档案库、删除档案库、修改档案库描述和任命档案库的管理员等,只有系统管理员才有权进行档案库管理。登记后的管理员可以进行如4-6图所示操作,在此我们选择添加档案库:
 
 
 图4-6  添加档案库图
 添加档案之后系统自动返回。
 档案维护可以对档案的信息进行修改和删除.
 档案库查询页面可以查看所用的档案库资料,我们可以看到刚刚添加的档案库:数据库书籍,如4-7图所示:
 
 
 图4-7  信息查询结构图
 其余操作类似。
 档案库的管理由两个JSP;(docBaseList.jsp,action.jsp)和一个JavaBean(DocBaseMan.java)实现。docBaseList.jsp提供用户操作的界面,在其中输入的信息转发到action.jsp进行处理,在action.jsp中声使用DocBaseMan.java进行业务逻辑的处理,action.jsp处理完请求后,页面将重新定向到docBaseList.jsp。
第四节  档案管理
 档案管理是有权限限制的[22],其权限分割的标准是档案库。针对某个档案库,只有系统管理员和该档案库的档案库管理员才有权对该档案库下的档案进行操作。对档案的操作主要有:在档案库下增加档案、删除库中未归档(组卷)档案、对未归档的档案进行归档、修改未归档档案的信息、将档案库下未归档的档案移入其他的档案库、将已归入档案库的档案移出档案库等。档案的状态(归档、未归档)在档案管理中很重要,不能修改已归档的档案信息,也不能对该档案进行删除和移入其他档案库的操作;而对于未归档的档案,用户不可以借阅和查询。
   当管理员增加一个档案时,此时档案的状态是“未归档档案”,对未归档档案,管理员可以删除、更新它的信息,也可以将它移入别的档案库或者在本档案库归档:未归档档案一旦归档,即变成了“已归档档案”,对于已归档档案,用户可以查询和借阅,管理员则可以把它移出档案库:已归档档案移出档案库后又变成了“未归档档案”。
 档案管理中选择录入档案,选择所要录入档案的类别,点击确定之后会看到录入后的档案信息,如所属档案库,所属部门等等,如4-8所示:
 
 
图4-8 添加档案图
 档案维护功能可以对分类的档案进行修改很删除。
 其余操作类似。
 档案管理部分稍复杂[23],由4个JSP页面(doclist.jsp,docinfo.jsp、addDocument.jsp,action.jsp)和一个JavaBean(DocMan.java)协作完成。和前几部分一样,action.jsp负责集中页面请求的处理和集中所用到的函数,doclist.jsp则负责档案管理的功能和信息列表的显示,docinfo.jsp负责显示单个档案的信息以及对单个档案的操作,addDocument.asp是增加档案的表单。
第五节  借阅管理
 对某个档案库有操作权限的用户才能对该档案库下的借阅事务进行管理。
 借阅管理中我们选择管理已批准借阅功能,在选择完档案库之后点击进入。如有批准借阅的资料的话,用户可以做查看档案的资料。
 查看到的档案资料页面有档案被借阅的详细内容,此时管理员可以把此档案借出或者由于某种愿意拒绝借阅。页面效果如下:
 
 
 图4-9  档案借阅信息图
 管理已拒绝借阅的资料用户可以把没有借出去的档案重新归档。
 其页面实现部分代码为:
 <!--档案借阅-->
 <body onload='into_title();'>
 <%
 String id=request.getParameter("id");
 if (id==null)
 {
 %>
 <jsp:forward page="../share/Error.jsp?errorMessage=不存在该借阅信息"/>
  <%
  }
 else{
  Hashtable borrowInfo=borrow.getBorrowInfo(Integer.parseInt(id));
  Object tempState=borrowInfo.get("state");
  int state=Integer.parseInt(tempState.toString());
  String strState="";
  if(state==1)
    strState="申请";
  else if(state==2)
          strState="批准";
    else if(state==3)
           strState="拒绝";
       else if(state==4)
           strState="借出";
      else
        strState="归还";
 %>
 <div id="title_g">档案借阅信息</div>
 <table width="400"  border="0" cellpadding="0" cellspacing="0">
 <form name="form" method="post" action="Action.jsp">
 <input name="op" type="hidden">
 <input name="id" type="hidden" value=<%=id%>>
   <tr>
     <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
     <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
     <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
   </tr>
   <tr>
     <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
     <td valign="top" bgcolor="#f7f7fe">
   <br>
   <table border="0" cellpadding="3" cellspacing="3" width="400">
       <center>
         <tr>
           <td align="right">档案名称:</td>
           <td align="left"><input  type="text"  class="inputNull" readonly value=<%=docMan.getDocNameById(Integer.parseInt((String)borrowInfo.get("document")))%>></td>
 
 <script language="java script">
 function check()
 {
     document.forms[0].sub.disabled=true;
  document.forms[0].re.disabled=true;    
     form.submit();
 }
 
 function approveIt(){
    document.form.op.value="approveIt";
    check();
 }
 function rejectIt(){
    document.form.op.value="rejectIt";
    check();
 }
 function lendIt(){
    document.form.op.value="lendIt";
    check();
 }
 function returnIt(){
    document.form.op.value="returnIt";
    document.forms[0].sub.disabled=true;
    form.submit();
 }
 </script>
 其余操作类似。
 借阅管理中涉及到的JSP页面有3个:liblist.jsp显示指定档案库下的借阅申请和已借档案的列表,libinfo.jsp显示借阅申请或已借档案的详细信息,action.sp集中页面请求。  liblist.jsp可以链接到libinfo.jsp显示具体的借阅信息,libinfo.jsp向action.sp发送同意借阅、拒绝借阅、提醒借阅人归还和归还档案等请求,action.sp则调用BorrowMan.java中的实现函
第六节  档案的检索
 档案的检索是所有用户都可操作的功能[24],用户通过设定检索的条件对档案进行检索,可以查阅检索出的档案的详细信息,可以对某个档案提出借阅申请并填写借阅申请单。
 查询未归档的档案中,填写完未归档信息,确定之后页面转入未归档信息页,如果没有填写档案信息,则查询所有未归档档案的信息,如果有所查询的档案的信息时,系统会给出档案的详细信息,如4-10图所示:
 
 
 图4-10  未归档信息图
 检索到未归档的资料之后,用户可以查看档案的资料,并对档案的信息进行更新,或使之归档。页面运行效果如下:
 
 
图4-11  档案详细信息图
    查询已归档的档案时,可以查询所有档案信息,通过查看操作对档案状态进行整理,如不需要此档案则移出档案库,如被申请借阅,则转入档案借阅申请页面,填写完信息之后可以保存信息等候批准。
    其余操作类似。
 该模块由5个JSP页面(docSearch.jsp,docSearchResult.jsp,docinfo.jsp,addlibinfo.jsp,action.jsp)协作完成:docSearch.jsp提供用户用于档案检索的表单,docSearchResult.jsp是表单搜索到的结果的列表,docinfo.jsp显示docSearchResult.jsp检索到的档案的具体内容,addlibinfo.jsp是借阅申请的表单,还有就是action.jsp完成信息的提交。该模块用到档案管理模块的JavaBean(DocMan.java)。如果该档案已有人申请,则在管理员拒绝该申请之前,其它用户无法再申请该档案。
系统小结:
1. 网络开发模式Brower/Server结构的应用系统  B/S是现在比较流行的数据库应用模式,B/S模式通过Internet进行通信,可以不受子类采用结构化的方式进行集中管理、层次化界面进行信息体现;统一化的界面风格,使得用户只要掌握员只需简单的培训即可掌握。
3. 系统工作环境
 网络操作系统选择: 一般用户选用Windows2000即可,建议用户使用Windows XP。Windows XP是目前最流行的网络操作系统,使用操作简单实用,通用性好,是网络操作系统的发展趋势,也是在企业中应用最广泛的网络操作系统.
 4. 系统存在的不足及需要改进的地方 由于系统采用了尖端的J2EE平台技术,并把Struts这种比较先进的技术框架融合进去,但是由于大家是第一次运用这些技术,小组成员的技术水平有限,有些疑问没有解决,还有后期毕业生联系找工作等问题,所以系统存在一些不足,我们以后会一直关注这个问题。
 不足如下:
(1) 系统界面设计的不是专业水平,稍嫌简陋。
(2) 系统实现了主要功能,并没有实现系统的全部功能,
(3) 后期测试时,有些部可能没有测试到,存在问题留待以后使用中发现。
(4) 异常抛出处理不是很到位,有些错误系统不能自动抛出。
这些方面鉴于目前的条件和我们本身的限制,目前还不能做的非常完善,但是做
到今天这个程度,大家也算比较满意。

 

 

 

 

 

 

 

 

 

 

 


  结束语

 为了做毕业设计我从上学期开始都在认真筹备,由于我的以前的专业课学习的不是很好,所以我从开始学习ASP都有很大的困难,特别是耐下心来写程序对我来说是特别大的考验。等论文题目定下来以后,我开始学习JSP,JSP是Java技术的一个分支,而此时我对Java也仅限于大三下学期所开的选修课的听课水平,后来我直接开始学JSP,所以碰到很多疑窦都一知半解,就请教同学,上网查资料,我又去图书馆借阅了Java程序设计基础方面的教程,才算慢慢上路,学会了自己解决问题的方法。
 开始做毕业设计以后才发现要学习的还不止这些,我们这个系统所用的应用服务器BEA WebLogic Platform 8.1是我没有接触过的,虽然我负责的是前台的部分工作,但是要想对整个系统有充分深刻的了解,就要对BEA WebLogic Platform 8.1的作用有个基本的认识。在做前期的工作的时候,我发现另一门学科的知识是不能忽略的,那就是软件工程,写程序刚刚上手的新人最不注意这一块,觉得论文性质的东西不是很重要,系统需求分析没有好好做,只是简单的分析一下就开始写程序,调查少,考虑不周到,系统做到中间就开始迷惑了,功能之间的分类开始混淆,到后来扩展的空间少,导致后来系统要做很大的变动。从新翻阅软件工程课程使我规范好多程序上的不足,我也学会好多这方面的知识。
 做一个成熟完整的软件,我们所做的还很不够全面,在一套完整的系统中需要整理的论文部分还有很多,我在本论文中的论文不很充分,程序写的也不够完善,有好多预想中的功能都没有实现,希望在以后的学习中慢慢改善。
 
 
 
 
 
 
 
 
 
致  谢

 一个学期的课程设计就要结束了,大学生活也接近尾声,如果说大学中有许多虚度的时间是可惜的,那么在做毕业设计这一段我是充实的。我们是一个完整的团队,在这里有导师张建伟副教授的指领,时时刻刻的为我们创建良好的环境,提供大量的参考资料,并不时的指导,给予我们很多支持。在做设计时,大家都是互相帮助,其中组长崔浩是对我帮助最大的,他是个非常有耐心的人,不管问他什么样的问题他都给予很详细的解答,他的工作量是全组中最重的,而且大家有很多问题需要他来解决,我对他的无私和认真表示我真诚的谢意。
 
 感谢所有教育过我的老师,你们不仅给予我知识的启发,生活上,个人素质上也让我受益匪浅,我深深铭刻,并致以我最深的谢意。

    感谢我的母校郑州轻工业学院!

 

 

 

 

 

 

 

 

 

 

 

 

参考文献

 [1] 王宝国,李乐明.电子政务系统框架结构的设计.中国信息导报.2005年01期,25-27。
 [2] 刘家真.档案管理软件开发问题的分析.北京理工大学学报.2004年03期,15-19.
 [3] 何梅.Java Applet编程实例.北京:清华大学出版社.2003.50-71.
 [4] 金元欢,王建宇.电子政务-现状与前景,信息化建设,2001-3,64-73.
 [5] 朱福喜,唐晓军等.Java程序设计技巧与开发实例.北京:人民邮电出版社.2004-2,53-69.
 [6] (美)Bruce Eckel .Java in Java.北京:机械工业出版社.2004.53-78. 
 [7] 求是科技编著.Java 数据库系统开发实例导航.北京:人民邮电出版社.2004-5,19-50.
 [8] 飞思科技产品研发中心.JSP应用开发详解.北京:电子工业出版社.2003-6,43-61.
 [9] 倪晓秋,季民,王光伟等.J2EE案例开发.北京:中国水利水电出版社.2005-1,36-79.
 [10] 徐迎晓.Java安全性编程实例.北京:清华大学出版社.2003-4,16-56.
 [11] 本书编委会编著.中文Photoshop7.0/cs精彩实战百例通.西安:西北大学出版社出版.2004-7,46-75.
 [12] 崔亚量主编.Flash MX经典实例158例.北京:电子科技大学出版社.2004-2,25-63.
 [13] BEA系统有限公司编著.BEA WebLogic Platform 8.1实战指南.北京:电子工业出版社出版.2004,24-68.
 [14] [美]Simon Brown.JSP编程指南(第二版).北京:电子工业出版社.2002,183-193.
 [15] [美]Bryan Pfaffenberger,Bill Karow.HTML 4实用(第二版).北京:水利水电出版社.2001,143-165.
 [16] 魏江江,李国芥,刘亚妮.java script网页特效编程百例通.北京:科学出版社. 2003,15-23.
 [17] Bruce Eckel.thinking in Java.http://java.4kiki.net/.
 [18] [美]Harvery M.Deitel.高级Java2大学教程.北京:电子工业出版社,2002,206-221.
 [19] 江开耀.软件工程.西安:电子科技大学出版社.2003,35-68.
 [20] 曾凡,欧东等.医院网络自动化办公系统的开发与应用.医疗设备信息报.2005年1期,12-18.
 [21] 王宏,田小鹏等.基于Java网络管理代理的研究和实现.上海交通大学学.1998年10期,17-21.
 [22]  IBM技术论坛:http://www-900.ibm.com/cn/support/forum/app/tscforum/
 [23] 豆豆技术网:http://www.ddvip.net/
 [24] 邹红军,李裕能,刘默玲.公共框架式管理信息系统软件开发策略眼镜.武汉水利电力大学报.1998年10期,13-18.
 
 
 
附录:主要程序源代码

登记用户页面源代码:UseAdd.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../etc/css/main.css" type=text/css rel=stylesheet>
<script language="java script" src="../etc/js/interface.js"></script>
<title>添加用户</title>
</head>

<body onload='into_title();'>
<div id="title_g">添加用户</div>
<table width="400"  border="0" cellpadding="0" cellspacing="0">
<form name="userForm" method="post" action="UserAction.jsp?op=add">
  <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
    <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
    <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
  </tr>
  <tr>
    <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
    <td valign="top" bgcolor="#f7f7fe">
  <br>
 <table border="0" cellpadding="3" cellspacing="3" width="400">
      <center>
        <tr>
          <td align="right">用户代码:</td>
          <td align="left"><input name="userId" type="text"   class="inputNeed" maxlength="10"></td>
        </tr>
        <tr>
          <td align="right">用户姓名:</td>
          <td align="left"><input type="text" name="userName"    maxlength="10" class="inputNeed"></td>
        </tr>
  <tr>
          <td align="right">用户类型:</td>
          <td align="left"><select name="userType" style="width:200">
            <option value="0" selected>普通用户</option>
            <option value="1">管理员</option>
          </select></td>
  </tr>
        <tr>
        <tr>
          <td align="right">新密码:</td>
          <td align="left"><input type="text" name="password"    maxlength="10"  class="inputNeed"></td>
        </tr>
        <tr>
          <td align="right">密码确认:</td>
          <td align="left"><input type="text" name="password2"   maxlength="10" class="inputNeed"></td>
        </tr>
        <tr>
          <td colspan="2" align="center"> <input  name="sub" type="button" value="保存"   onclick="check();" class="input_ok"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
              <input name="re"  type="reset"  class="input_re" value="重置" >
          </td>
        </tr>
      </center>
     
    </table>    
  <br>
    </td>
    <td background="../etc/images/tablepage/tbale_kfg_05.gif">&nbsp;</td>
  </tr>
  <tr>
    <td height="24" background="../etc/images/tablepage/tbale_kfg_07.gif"><img src="../etc/images/tablepage/tbale_kfg_06.gif" width="26" height="24"></td>
    <td background="../etc/images/tablepage/tbale_kfg_07.gif">&nbsp;</td>
    <td><img src="../etc/images/tablepage/tbale_kfg_08.gif" width="27" height="24"></td>
  </tr>
 </form>
</table>
</body>
</html>
<script language="java script">
function check()
{
    if(JHshLTrim(document.userForm.userId.value)=="")
      {
        document.userForm.userId.focus();
        alert("请输入用户代码!");
        return;
       }
 if(JHshLTrim(document.userForm.userName.value)=="")
      {
        document.userForm.userName.focus();
        alert("请输入用户姓名!");
        return;
       }
 if(JHshLTrim(userForm.password.value)=="")
   {
     document.userForm.password.focus();
        alert("新密码不能为空!");
  return;
      }
 if(JHshLTrim(userForm.password2.value)=="")
   {
     document.userForm.password2.focus();
        alert("密码确认不能为空!");
  return;
      }
    if(JHshLTrim(userForm.password.value)!=JHshLTrim(userForm.password2.value))
   {
     document.userForm.password.focus();
        alert("新密码和密码确认不一致!");
        return;
      }
    document.forms[0].sub.disabled=true;
 document.forms[0].re.disabled=true;     
    userForm.submit();
}
</script>

删除用户源代码:UserMan.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="userMan" class="com.bysj.aaf.web.javabean.UserMan" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../etc/css/main.css" type=text/css rel=stylesheet>
<script language="java script" src="../etc/js/interface.js"></script>
<title>用户列表</title>
</head>
<%    
      Vector users=userMan.getUserInfo();
      Object userInfor[]=users.toArray();
%>
<body onload='into_title();'>
<div id="title_g">用户列表</div>
<table width="700"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
    <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
    <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
  </tr>
  <tr>
    <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
    <td valign="top" bgcolor="#f7f7fe">
 <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" class="table_01">
      <tr align="center" valign="middle">
        <th width="20%" height="25"><div align="center">用户账号</div></th>
  <th width="15%" height="25"><div align="center">用户姓名</div></th>
        <th width="15%" height="25"><div align="center">用户身份</div></th>
  <th width="40%" height="25"><div align="center">加密密码</div></th>
        <th width="10%" height="25"><div align="center">操作</div></th>
      </tr>
      <%
  StringTokenizer st=null;
  String tempUser="";
  String tempUserId="";
  String tempUserName="";
  String tempUserPassWord="";
  int tempIdentity=3;
  String identity="";
  for(int i=0;i<userInfor.length;i++)
  {
     st=new StringTokenizer((String)userInfor[i]);
     tempUserId=(String)st.nextToken();
  tempUserName=(String)st.nextToken();
  tempUserPassWord=(String)st.nextToken();
  if(tempUserName.equals("null")||tempUserName.equals(""))
     {
       tempUser=tempUserId;
  }
  else
     {
    tempUser=tempUserName;
     }
  
     tempIdentity=Integer.parseInt((String)st.nextToken());
     if(tempIdentity==0)
        identity="普通用户";
     else if(tempIdentity==1)
        identity="管理员";
 
  %>
      <tr align="center" valign="middle">
        <td height="20"><div align="center"><%=tempUserId%></div></td>
  <td height="20"><div align="center"><%=tempUserName%></div></td>
        <td><div align="center"><%=identity%></div></td>
  <td><div align="center"><%=tempUserPassWord%></div></td>
        <td><div align="center"><a href="java script:doWhenConfirm('确定要删除用户<%=tempUser%>','UserAction.jsp?op=del&userId=<%=tempUserId%>')">删除</a></div></td>
      </tr>
      <%
  }
  %>
    </table> 
 </td>
    <td background="../etc/images/tablepage/tbale_kfg_05.gif">&nbsp;</td>
  </tr>
  <tr>
    <td height="24" background="../etc/images/tablepage/tbale_kfg_07.gif"><img src="../etc/images/tablepage/tbale_kfg_06.gif" width="26" height="24"></td>
    <td background="../etc/images/tablepage/tbale_kfg_07.gif">&nbsp;</td>
    <td><img src="../etc/images/tablepage/tbale_kfg_08.gif" width="27" height="24"></td>
  </tr>
</table>
</body>
</html>

部门维护源代码:DeptMan.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="queryDept" class="com.bysj.aaf.web.javabean.DepartmentMan" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../etc/css/main.css" type=text/css rel=stylesheet>
<script language="java script" src="../etc/js/interface.js"></script>
<title>部门信息列表</title>
</head>

<body onload='into_title();'>
<div id="title_g">部门信息列表</div>
<table width="500"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
    <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
    <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
  </tr>
  <tr>
    <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
    <td valign="top" bgcolor="#f7f7fe">
 <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" class="table_01">
      <tr align="center" valign="middle">
        <th width="35%" height="25"><div align="center">部门名称</div></th>
  <th width="40%" height="25"><div align="center">部门描述</div></th>
        <th width="25%" height="25"><div align="center">操作</div></th>
        </tr>
     <%
  ArrayList deptInfo=queryDept.getDeptInfo();
  Iterator it=deptInfo.iterator();
  StringTokenizer st=null;
  String deptName="",deptDesc="";
  while(it.hasNext())
  {
    st=new StringTokenizer((String)it.next());
    deptName=st.nextToken();
    if(deptName.equals("deleted"))
           continue;
    deptDesc=st.nextToken();
    if(deptDesc.equals("empty"))
         deptDesc="";
  %>
      <tr align="center" valign="middle">
        <td height="20" align="left"><div align="center"><%=deptName%></div></td>
  <td height="20" align="left"><div align="center"><%=deptDesc%></div></td>
        <td><div align="center"><a href="DeptSet.jsp?deptName=<%=deptName%>&deptDesc=<%=deptDesc%>">修改</a>&nbsp;&nbsp;<a href="java script:doWhenConfirm('确定要删除部门:<%=deptName%> ','DeptChange.jsp?deptName=<%=deptName%>')">删除</a></div></td>
      </tr>
  <%
  }
  %>
    </table> 
 </td>
    <td background="../etc/images/tablepage/tbale_kfg_05.gif">&nbsp;</td>
  </tr>
  <tr>
    <td height="24" background="../etc/images/tablepage/tbale_kfg_07.gif"><img src="../etc/images/tablepage/tbale_kfg_06.gif" width="26" height="24"></td>
    <td background="../etc/images/tablepage/tbale_kfg_07.gif">&nbsp;</td>
    <td><img src="../etc/images/tablepage/tbale_kfg_08.gif" width="27" height="24"></td>
  </tr>
</table>
</body>
</html>

部门查询源代码:UserSearch.jsp

<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %>
<jsp:useBean id="userMan" class="com.bysj.aaf.web.javabean.UserMan"  scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../etc/css/main_rpt.css" type=text/css rel=stylesheet>
<script language="java script" src="../etc/js/interface.js"></script>
<title>查询用户</title>
</head>

<body onload='into_title();'>
<div id="title_g">查询用户</div>
<table width="400"  border="0" cellpadding="0" cellspacing="0">
<form name="userForm" method="post" action="UserSearchResult.jsp">
  <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
    <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
    <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
  </tr>
  <tr>
    <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
    <td valign="top" bgcolor="#f7f7fe">
 <br>
 <table border="0" cellpadding="3" cellspacing="3" width="100%">
      <center>
    
        <tr>
          <td align="right">用户信息</td>
          <td align="left"><input name="user" type="text"  style="width:200" class="search" size="20" maxlength="20"></td>
        </tr>
        <tr>
          <td colspan="2" align="center"> <input  name="sub" type="button" value="确定"   onclick="check();" class="input_ok">
          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
             
          </td>
        </tr>
      </center>
     
    </table>  
    <br>
    </td>
    <td background="../etc/images/tablepage/tbale_kfg_05.gif">&nbsp;</td>
  </tr>
  <tr>
    <td height="24" background="../etc/images/tablepage/tbale_kfg_07.gif"><img src="../etc/images/tablepage/tbale_kfg_06.gif" width="26" height="24"></td>
    <td background="../etc/images/tablepage/tbale_kfg_07.gif">&nbsp;</td>
    <td><img src="../etc/images/tablepage/tbale_kfg_08.gif" width="27" height="24"></td>
  </tr>
</form>
</table>
</body>
</html>
<script language="java script">
function check()
{
    document.forms[0].sub.disabled=true;    
    userForm.submit();
}
</script>

部门修改页面:DeptSearchResult.jsp
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*"%>
<jsp:useBean id="queryDept" class="com.bysj.aaf.web.javabean.DepartmentMan" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link href="../etc/css/main.css" type=text/css rel=stylesheet>
<script language="java script" src="../etc/js/interface.js"></script>
<title>部门信息查询结果</title>
</head>

<body onload='into_title();'>
<div id="title_g">部门信息查询结果</div>
<table width="500"  border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="4%" height="23" background="../etc/images/tablepage/tbale_kfg_02.gif"><img src="../etc/images/tablepage/tbale_kfg_01.gif" width="26" height="23"></td>
    <td width="94%" background="../etc/images/tablepage/tbale_kfg_02.gif">&nbsp;</td>
    <td width="2%"><img src="../etc/images/tablepage/tbale_kfg_03.gif" width="27" height="23"></td>
  </tr>
  <tr>
    <td background="../etc/images/tablepage/tbale_kfg_04.gif">&nbsp;</td>
    <td valign="top" bgcolor="#f7f7fe">
 <table width="100%" border="1" align="center" cellpadding="0" cellspacing="0" class="table_01">
      <tr align="center" valign="middle">
        <th width="35%" height="25"><div align="center">部门名称</div></th>
  <th width="65%" height="25"><div align="center">部门描述</div></th>
        </tr>
     <%
  String tempName=request.getParameter("deptName");
  ArrayList deptInfo=queryDept.searchDeptInfo(tempName);
  Iterator it=deptInfo.iterator();
  StringTokenizer st=null;
  String deptName="",deptDesc="";
  while(it.hasNext())
  {
    st=new StringTokenizer((String)it.next());
    deptName=st.nextToken();
    if(deptName.equals("deleted"))
           continue;
    deptDesc=st.nextToken();
    if(deptDesc.equals("empty"))
         deptDesc="";
  %>
      <tr align="center" valign="middle">
        <td height="20" align="left"><div align="center"><%=deptName%></div></td>
  <td height="20" align="left"><div align="center"><%=deptDesc%></div></td>
        </tr>
  <%
  }
  %>
    </table> 
 </td>
    <td background="../etc/images/tablepage/tbale_kfg_05.gif">&nbsp;</td>
  </tr>
  <tr>
    <td height="24" background="../etc/images/tablepage/tbale_kfg_07.gif"><img src="../etc/images/tablepage/tbale_kfg_06.gif" width="26" height="24"></td>
    <td background="../etc/images/tablepage/tbale_kfg_07.gif">&nbsp;</td>
    <td><img src="../etc/images/tablepage/tbale_kfg_08.gif" width="27" height="24"></td>
  </tr>
</table>
</body>
</html>


以上为本篇毕业论文范文基于J2EE的档案管理系统—前台功能的设计与实现的介绍部分。
本论文在计算机论文栏目,由论文网(www.zjwd.net)整理,更多论文,请点论文范文查找

毕业论文降重 相关论文

收费专业论文范文
收费专业论文
汉语言文学论文
物理学论文
自动化专业论文
测控技术专业论文
历史学专业论文
机械模具专业论文
金融专业论文
电子通信专业论文
材料科学专业论文
英语专业论文
会计专业论文
行政管理专业论文
财务管理专业论文
电子商务国贸专业
法律专业论文
教育技术学专业论文
物流专业论文
人力资源专业论文
生物工程专业论文
市场营销专业论文
土木工程专业论文
化学工程专业论文
文化产业管理论文
工商管理专业论文
护理专业论文
数学教育专业论文
数学与应用数学专业
心理学专业论文
信息管理专业论文
工程管理专业论文
工业工程专业论文
制药工程专业论文
电子机电信息论文
现代教育技术专业
新闻专业论文
艺术设计专业论文
采矿专业论文
环境工程专业论文
西班牙语专业论文
热能与动力设计论文
工程力学专业论文
酒店管理专业论文
安全管理专业论文
交通工程专业论文
体育教育专业论文
教育管理专业论文
日语专业论文
德语专业论文
理工科专业论文
轻化工程专业论文
社会工作专业论文
乡镇企业管理
给水排水专业
服装设计专业论文
电视制片管理专业
旅游管理专业论文
物业管理专业论文
信息管理专业论文
包装工程专业论文
印刷工程专业论文
动画专业论文
环境艺术专业论文
信息计算科学专业
物流专业论文范文
人力资源论文范文
营销专业论文范文
工商管理论文范文
汉语言文学论文范文
法律专业论文范文
教育管理论文范文
小学教育论文范文
学前教育论文范文
财务会计论文范文

电子商务论文范文

上一篇:学生信息管理系统 下一篇:档案管理相关技术文献综述

最新论文

精品推荐

毕业论文排版

热门论文


本站简介 | 联系方式 | 论文改重 | 免费获取 | 论文交换

本站部分论文来自网络,如发现侵犯了您的权益,请联系指出,本站及时确认删除 E-mail:229120615@qq.com

毕业论文范文-论文范文-论文同学网(www.zjwd.net)提供计算机论文毕业论文,毕业论文范文,毕业设计,论文范文,毕业设计格式范文,论文格式范文

Copyright@ 2010-2024 zjwd.net 毕业论文范文-论文范文-论文同学网 版权所有