摘要:项目申报系统是一个基于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-8。
(3)建立数据库存储过程
在设计数据库时,存储过程具有很重要的作用。存储过程是服务器端的一段程序[6],在运行时生成执行方式,所以对其再次运行时其执行速度很快。存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库;以后每次执行存储过程都不需再重编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。在SQL Server中使用了自定义存储过程,格式如下:
Create procedure [name]
[@parameter data_type][output][with]{recompile|en-cryption}
as
sql_statement
(4)建立JSP数据库连接池
在开发基于数据库的Web程序时,传统操作模式是:首先在主程序中建立数据库连接,然后进行SQL操作,读取出数据,最后断开数据库连接。使用这种模式开发,存在很多问题。因为每一次Web请求要建立一
次数据库连接,对于web程序来讲,在某一较短的时间段内,其操作请求数是数百上千次,在这种情况下系统开销是相当大的。而且使用传统的模式,必须管理每一个连接,确保他们能被正确关闭,如果出现程序异常而导致某些连接未能关闭,将导致数据库系统中的内存泄露,最终将不得不重启数据库。
为此系统采用一个名为factory的连接池[2,3,4],可以设置factory的基本属性,比如连接池中连接数量上下限、一个连接的最大使用次数、一个连接的最长空闲时间、同一时间的最大连接数等。
1/2 1 2 下一页 尾页 |