
基于JSP-Servlet项目申报系统的设计与实现.docx
6页基于JSP/Servlet项目申报系统的设计与实现 摘要:项目申报系统是一个基于Internet的应用系统,它是一个面对当前项目申报的行政工作基本还处于手工和半信息自动化状态应运而生的一个基于Internet的一个完全信息自动化的系统主要采用B/S结构以及JSP/Servlet技术作为网站开发工具本文首先进行系统分析,给出系统主要功能,然后建立系统的体系结构,最后给出系统设计的关键技术论文关键词:B/S结构,JSP/Servlet,信息自动化项目申报系统是面向政府的对外公共服务协作的项目审批事务处理、实现对科技项目申报审批的有效执行、监督和管理的电子政务应用系统网上行政审批服务是电子政务公共服务的一项重点应用项目,为了使申报流程变得方便快捷和对项目申报者填入的信息进行有效的控制,开发一个基于Internet条件的网上项目申报系统就显得尤为重要2.系统功能分析根据实际业务的操作需求,科技项目申报系统[1]可分为四个模块:项目申报模块、项目评审模块、项目管理模块和联系我们模块其系统功能如图1所示1)项目申报:网上公共服务平台的主要用户是进行审批申报的公众单位网上公共服务平台运行在互联网上为公众提供行项目申报服务的窗口,是实现公众与政府交互对话的一站式服务门户。
网上公共服务平台不但达到了行政审批改革的政务公开、办事透明的目的,而且真正实现了从办事咨询、申请提交、到项目跟踪和交流答辩等审批办理一站式服务功能 图1 系统功能图(2)项目评审:邀请的主要专家负责对项目的各项进行评审网上评审业务平台运行于政府专网上,为评审专家提供处理评审业务的工作平台,实现评审业务的信息共享、任务调度、协作交互、管理监控等业务功能网上评审平台包括窗口服务、项目审批、信息管理,使用相应的功能3)项目管理:管理员对申报项目和评审项目进行管理,他可以对单位和专家进行添加和删除,对单位申报的项目进行分配专家,实现管理业务的信息共享、任务调度、协作交互、管理监控等业务功能管理平台包括窗口服务、单位、专家,项目,分配等相应的功能4)联系我们:用户意见反馈,并且把用户邮件地址存入数据库,以便查阅回复3.系统设计3.1 系统体系结构本系统主要针对网上项目申报的特点和要求,开发环境建立在Windows Server 2003平台上,编译器采用J2SDK 1.6,服务器采用Tomcat 6.0,后台数据库采用SQL Server2000,使用JSP动态WEB编程技术进行系统的开发网上项目申报系统采用B/S三层体系结构模型,使用JSP、JavaBean以及Servlet相关技术。
系统体系结构如图2所示图2 系统体系结构当客户机请求JSP页面时,Web服务器通过内置的JSP引擎来解释执行JSP页面,JSP页面可以置于任何网络服务器端与应用程序服务端在该系统中,JSP页面与Servlet进行数据交互,并调用相关的JavaBean,通过JDBC-ODBC桥实现Java与关系数据库SQL Server的互连,并将处理数据查询、数据更新、添加和运行的存储过程等结果以页面文件形式返回给客户在本系统中采用SQL Server 2000作为数据库系统,使得Web Server与数据库服务分离3.2 系统设计的关键技术(1)Java Servlet技术Servlet是Java服务器端小程序[7],它是一种独立于平台和协议的服务器端的Java应用可以生成动态的Web页面它使用Java Servlet API以及其他相关类和方法来分发客户端浏览器的请求通过web.xml配置文件可以找到用户请求和特定的Servlet的对应关系,每个Servlet具有高效、易于开发、功能强大、可移植性好等优点2)JavaBean技术JavaBean是Java类,它的体系结构是一个基于组件的标准模型,通过封装属性和方法成为具有独立功能、可重复使用的并且可与其他控件通信的组件对象[5],具有运行速度快、安全性高、易于扩展等优点。
在开发中主要使用一下JavaBean类:数据库连接类:主要用于操作连接数据库,封装了连接的数据库的参数以及操作数据库的方法,保证系统的安全字符转换类:当访问JSP或者Servlet产生的页面时,显示错误的中文乱码,利用SetCharacterEncodingFilter.java这个类来解决编码问题,以免输入中文时产生乱码,页面编码统一采用UTF-83)建立数据库存储过程在设计数据库时,存储过程具有很重要的作用存储过程是服务器端的一段程序[6],在运行时生成执行方式,所以对其再次运行时其执行速度很快存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库;以后每次执行存储过程都不需再重编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度在SQL Server中使用了自定义存储过程,格式如下:Create procedure [name][@parameter data_type][output][with]{recompile|en-cryption}assql_statement(4)建立JSP数据库连接池在开发基于数据库的Web程序时,传统操作模式是:首先在主程序中建立数据库连接,然后进行SQL操作,读取出数据,最后断开数据库连接。
使用这种模式开发,存在很多问题因为每一次Web请求要建立一次数据库连接,对于web程序来讲,在某一较短的时间段内,其操作请求数是数百上千次,在这种情况下系统开销是相当大的而且使用传统的模式,必须管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终将不得不重启数据库为此系统采用一个名为factory的连接池[2,3,4],可以设置factory的基本属性,比如连接池中连接数量上下限、一个连接的最大使用次数、一个连接的最长空闲时间、同一时间的最大连接数等同时要定义出factory要完成管理所需要的基本接口,如:public class factory implementstimerlistener{public boolean initialize();//连接池初始化public void destroy();//连接池销毁public synchronizedjava.sql.connection getconncetion();//取一个连接public synchronized voidclose();//关闭一个连接private synchronized voidremovefrompool();//把一个连接从连接池中删除private synchronized voidfillpool();//维护连接池大小public synchronized voidtimerevent();//定时器事件处理函数}通过这几个接口,可以完成连接池的基本管理。
因为要保存每一个连接的状态,所以还需要一个数据库连接对象:class connobject{public java.sql.connection con;…}加入connobject对象后,在factory中操作的应该只是connobject,而其他进程只需要connobject的con属性,因此可以再加入一个类,作为其他进程获得返回连接的接口:class conn{getconnection();//从连接池取出一个有效连接closeconnection();//返回连接,此时没有关闭连接,只是放回了连接池destroypool();销毁连接池}这样,在连接数据库时既能保证数据连接的有效性,同时多次连接不会使数据库系统中的内存泄露,保证了数据的完整性4.总结项目申报系统是基于internet的,面向政府的对外公共服务协作的项目审批事务处理,实现对科技项目申报审批的有效执行、监督和管理的电子政务应用系统系统操作简单、低成本、高效率,没有地域限制,申报和查询方便参考文献:[1] 国家信息研究中心著.《电子政务总体设计与技术实现》,电子工业出版社[2] 何川、方兴、陈渝、齐畅.《JSP编程实践——动态网页的引擎》,清华大学出版社[3] 雨阳隆春等.《深入JSP 网络编程》,清华大学出版社[4] 杨学瑜、王志军、刘同利.《JSP入门与提高》, 清华大学出版社-全文完-。
