JSP的实现原理
2.2.2.2Gson
Gson 是一个Java库,可用于将Java对象转换成JSON格式。
同样,也可以被用于将一个JSON字符串转换为等效的Java对象。
用Google的Gson包解读WebService提供的位置解读服务,数据交换格式指定为JSON。
2.2设计思想
2.2.1系统构思
系统功能层次
1表现层:
包括JSP页面视图,静态HTML页面,CSS文档,JavaScript代码等,主要负责界面的呈现显示。
2功能层:
包括Struts类库,Struts1的Action类,Servlet类等。
主要负责在服务器端调用服务层提供的服务来完成系统设计的所有功能。
服务层:
3包括提供服务接口的Java文件。
Spring连接功能层,JBPM流程管理服务。
4数据层:
包括Hibernate类库,提供数据访问接口的DAO类,数据库中表的域模型Java类和相应的X.hbm.xml文件,Hibernate配置文件。
5系统底层:
包括WindowsServer2003操作系统,应用服务器Tomcat6.x,数据库库软件MySQL5.x。
3系统功能设计
此部分主要对关键功能进行设计,描述其实现方式。
如果对详细设计要求不高,也可在下面的部分中包括对详细设计的功能说明,不必另建详细设计文件。
此部分主要对各模块功能进行分解,尽量能细化到每一个操作。
同时附以特征界面和数据表设计。
3.1网上事项申报系统
该模块为申请人设计,提供立项申报、实施管理申请、科技工程验收申请、成果鉴定申请、科技工程奖励申请,查看待办与办结工程以及更改个人信息的功能。
1立项申报
操作角色:
申请人
输入:
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
类别
手动输入
Varchar
50
申请人
手动输入
Varchar
50
申请经费
手动输入
Double
内容及目的
手动输入
Double
50
备注
手动输入
Double
50
附件
导入附件
每个文件限10M
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
到达申请成功页面。
输出:
申请成功。
界面如下图所示:
【图1】立项申报界面图
2实施管理申请
操作角色:
申请人
输入:
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
承办单位
手动输入
Varchar
50
协办单位
手动输入
Varchar
50
合同起始时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
合同完成时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
甲方负责人
手动输入
Varchar
50
乙方负责人
手动输入
Varchar
50
工程投资<万元)
手动输入
Double
支付情况
手动输入
Varchar
50
工程进度%
手动输入
Float
附件
导入附件
每个文件限10M
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
到达申请成功页面。
输出:
申请成功。
界面如下图所示:
【图2】实施管理申请界面图
3验收申请
操作角色:
申请人
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
承办单位
手动输入
Varchar
50
协办单位
手动输入
Varchar
50
合同起始时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
合同完成时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
甲方负责人
手动输入
Varchar
50
乙方负责人
手动输入
Varchar
50
工程投资<万元)
手动输入
Double
支付情况
手动输入
Varchar
50
工程进度%
手动输入
Float
附件
导入附件
每个文件限10M
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
到达申请成功页面。
输出:
申请成功。
界面如下图所示:
【图3】验收申请界面图
4成果鉴定申请
操作角色:
申请人
输入:
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
甲方负责人
手动输入
Varchar
50
乙方负责人
手动输入
Varchar
50
合同完成时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
总投资<万元)
手动输入
Double
工程编号
手动输入
Varchar
50
成果内容简介
手动输入
Varchar
200
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
到达申请成功页面。
输出:
申请成功。
界面如下图所示:
【图4】成果鉴定申请界面图
5奖励申请
操作角色:
申请人
输入:
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
承办单位
手动输入
Varchar
50
协办单位
手动输入
Varchar
50
完成人
手动输入
Double
科技奖励级别
手动输入
Varchar
50
科技奖励等级
手动输入
Varchar
附件
导入附件
每个文件限10M
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
到达申请成功页面。
输出:
申请成功。
界面如下图所示:
6工程详细信息
操作角色:
用户
输入
数据名称
输入方式
类型
长度
注释
工程名
手动输入
Varchar
50
工程申请人
手动输入
Varchar
50
立项申请时间
手动输入
Varchar
50
立项审批时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
甲方负责人
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
工程目的
手动输入
Varchar
50
合同起始时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
合同完成时间
手动输入
Datetime
从yyyy-DD-mm到yyyy-DD-mm
工程总投资
手动输入
Double
附件
导入附件
每个文件限10M
处理:
1.申请人填写表单,点击提交。
2.系统检查是否填写完整,完整则将信息填入数据库。
输出:
工程详细信息。
界面如下图所示:
3.2网上事项审批系统
1立项审批
操作角色:
输入:
数据名称、工程名称、申请人、工程类型、申请经费、目的、附件、审批意见列表、我的意见
数据名称
输入方式
类型
长度
注释
工程名称
手动输入
varchar
50
申请人
手动输入
varchar
50
工程类型
手动输入
varchar
50
申请经费
手动输入
double
目的
手动输入
text
500
附件
导入附件
每个文件限10M
审批意见列表
手动输入
varchar
50
我的意见
手动输入
varchar
500
处理:
1.审批人填写表单,点击提交。
2.系统校验是否填写完整,完整则将信息填入数据库。
到达审批成功页面。
输出:
审批成功。
界面如下图所示:
2实施管理审批
操作角色:
输入:
数据名称、工程名称、申请人、工程类型、申请经费、目的、附件、审批意见列表、我的意见
数据名称
输入方式
类型
长度
注释
工程名称
手动输入
varchar
50
申请人
手动输入
varchar
50
工程类型
手动输入
varchar
50
申请经费
手动输入
double
目的
手动输入
text
500
附件
导入附件
每个文件限10M
审批意见列表
手动输入
varchar
50
我的意见
手动输入
varchar
500
处理:
1.审批人填写表单,点击提交。
2.系统校验是否填写完整,完整则将信息填入数据库。
到达审批成功页面。
输出:
审批成功。
界面如下图所示:
3验收审批
操作角色:
输入:
数据名称、工程名称、申请人、工程类型、申请经费、目的、附件、审批意见列表、我的意见
数据名称
输入方式
类型
长度
注释
工程名称
手动输入
varchar
50
申请人
手动输入
varchar
50
工程类型
手动输入
varchar
50
申请经费
手动输入
double
目的
手动输入
text
500
附件
导入附件
每个文件限10M
审批意见列表
手动输入
varchar
50
我的意见
手动输入
varchar
500
处理:
1.审批人填写表单,点击提交。
2.系统校验是否填写完整,完整则将信息填入数据库。
到达审批成功页面。
输出:
审批成功
界面如下图所示:
4成果鉴定审批
操作角色:
输入:
数据名称、工程名称、申请人、工程类型、申请经费、目的、附件、审批意见列表、我的意见
数据名称
输入方式
类型
长度
注释
工程名称
手动输入
varchar
50
申请人
手动输入
varchar
50
工程类型
手动输入
varchar
50
申请经费
手动输入
double
目的
手动输入
text
500
附件
导入附件
每个文件限10M
审批意见列表
手动输入
varchar
50
我的意见
手动输入
varchar
500
处理:
1.审批人填写表单,点击提交。
2.系统校验是否填写完整,完整则将信息填入数据库。
到达审批成功页面。
输出:
审批成功
界面如下图所示:
5奖励审批
操作角色:
输入:
数据名称、工程名称、申请人、工程类型、申请经费、目的、附件、审批意见列表、我的意见
数据名称
输入方式
类型
长度
注释
工程名称
手动输入
varchar
50
申请人
手动输入
varchar
50
工程类型
手动输入
varchar
50
申请经费
手动输入
double
目的
手动输入
text
500
附件
导入附件
每个文件限10M
审批意见列表
手动输入
varchar
50
我的意见
手动输入
varchar
500
4系统数据结构设计
1.用户表字段名
数据类型
是否为空
注释
备注
userID
int
Notnull
用户编号
主键自增
username
Varchar(50>
Notnull
用户名
name
Varchar(50>
Notnull
姓名
position
Varchar(20>
Notnull
职位
phone
int
Notnull
电话
email
Varchar(20>
Notnull
邮箱
pwd
Varchar(20>
Notnull
密码
comID
int
Notnull
公司编号
外键
deptID
int
Notnull
部门编号
外键
imgID
int
Notnull
照片编号
外键
roleID
int
Notnull
角色编号
外键
2.工程表
字段名
数据类型
是否为空
注释
备注
proID
Int
Notnull
工程编号
主键
proname
varchar(40>
Notnull
工程名称
PartyA
varchar(40>
Notnull
甲方负责人
PartyB
varchar(40>
Notnull
乙方负责人
prepaid
double(10>
Notnull
预支付
sumTZ
double(20>
Notnull
总投资
contT
date
Notnull
合同时间
schedule
varchar(100>
Notnull
进度
status
varchar(100>
Notnull
状态
comID
int
Notnull
公司编号
外键
typeID
int
Notnull
类型编号
外键
applyID
int
Notnull
申请编号
外键
docID
int
Notnull
文档编号
外键
approveID
int
Notnull
审批编号
外键
3.公司表字段名
数据类型
是否为空
注释
备注
comID
int
Notnull
公司编号
主键
comname
Varchar<50)
Notnull
公司名称
4.部门表deptuser:
字段名
数据类型
是否为空
注释
备注
deptID
Int
Notnull
部门编号
主键自增
deptname
Varchar<50)
Notnull
部门名
comID
Int
Notnull
公司编号
外键
5.工程类型表type
字段名
数据类型
是否为空
注释
备注
deptID
int
Notnull
类型编号
主键自增
typename
Varchar<50)
Notnull
类型名
6.申请表字段名
数据类型
是否为空
注释
备注
applyID
int
Notnull
申请编号
主键自增
apcontent
Varchar(50>
Notnull
申请内容
proposer
Varchar(50>
Notnull
申请人
applyTime
Datetime
Notnull
申请时间
proID
Int
Notnull
状态<申请是否通过)
外键
typeID
Int
Notnull
类型编号
外键
proname
Varchar(50>
Notnull
工程名
funds
double(10>
Notnull
经费
affix
text
Notnull
附件
7.审批表:
字段名
数据类型
是否为空
注释
备注
approveID
Int
Notnull
审批编号
主键自增
approver
varchar(20>
Notnull
审批人
idea
varchar(20>
Notnull
审批意见
approveT
varchar(20>
Notnull
审批时间
proname
varchar(20>
Notnull
工程名
proID
Int
Notnull
工程编号
外键
8.文档表document:
字段名
数据类型
是否为空
注释
备注
docID
Int
Notnull
文档编号
主键
docname
Varchar<50)
Notnull
文档名
docDes
Text
文档描述
uploadTt
Datetime
Notnull
上传时间
typeID
Int
Notnull
类型编号
外键
9.角色表:
role
主键:
roleID
字段名
数据类型
是否为空
注释
备注
roleID
Int
Notnull
角色ID
主键
rolename
Varchar<50)
Notnull
角色名
9.照片表:
image
主键:
imgID
字段名
数据类型
是否为空
注释
备注
imgID
Int
Notnull
照片编号
主键自增
Imgname
Varchar<50)
Notnull
照片名称
Path
Varchar<100)
照片上传路径
UploadT
Varchar(50>
照片上传时间
5运行设计
5.1系统初始化
系统启动过程如上图所示。
5.2运行控制
本系统运行时可能的不同模块组合及模块间的关系如下图所示:
其中登录模块,系统公告模块,即时消息模块和修改个人信息模块属于公共模块,事项申请模块,事项审批模块,系统管理模块以及工程管理模块是四个独立的大的功能模块,用户通过登录统一安全验证之后,进入与其角色对应的功能模块中。
流程管理模块,事项统计模块,导出文件模块为内部子模块。
各模块所需的支持软件:
以上所有模块都需Web浏览器,数据库服务器,Web程序服务器支持。
特别的,流程管理模块需JBPM的支持,导出文件模块需apachePOIAPI的支持,事项统计需JFreechart的支持。
使用各模块都将经过权限验证,防止非授权用户的使用。
5.3系统结束
系统关闭时的流程图如上所示
6系统出错处理设计
6.1出错信息
系统在运行期间产生的错误,会在客户端产生出错提示,对于严重的错误系统会以日志的形式记录下来。
其中在客户端页面上显示的出错信息只包括简要的出错描述信息,例如用户登陆时密码错误,则产生“用户名或密码错误”相类似的提示信息。
对于系统运行期间产生的较严重的错误,系统将出错的详细信息打印到服务器的控制台上,
出错的详细信息包括:
出错信息项
说明
错误代号
统一编号的出错信息代号,通过代号可以查阅到更加信息的信息
错误类型
事先定义好的出错类型,例如空指针错误,数组越界错误等
错误简要描述
简要描述错误的原因
出错时间
错误发生时的系统时间,精确到毫秒
出错位置
指出错误最初出现在系统中的哪个模块,哪