3.3 系统实现
3.3.1 投稿模块
(1)填写稿件信息
作者角色填写稿件信息:作者在表示层页面Modify.JSP中填写稿件信息,点击提交按钮时,页面信息通过form表单发送给控制层,控制层ModifyAction收到作者的请求,调用业务逻辑层处理逻辑Modify方法,业务层处理逻辑调用持久层update方法访问领域对象层的数据对象。数据对象与数据库中的数据对应,处理数据对象就相当于处理数据库中的数据。图4为作者填写稿件信息的逻辑时序图。
部分代码如下:
ModifyAction调用业务层逻辑方法的代码为:
publIC String modify()
{
cf.modify(c);
return Action.SUCCESS;
}
操作数据表的业务层接口代码: public void modify (Caogao c);
操作数据表业务逻辑层实现方法modify代码:public void modify (Caogao c) {
cd.update(c);
}
操作数据表的持久层接口代码:public Caogao update(Caogao entity);
操作数据表持久层实现方法update代码:
public Caogao update(Caogao entity) {
EntityManagerHelper.beginTransaction();
try {
Caogao result = getEntityManager().merge(entity);
EntityManagerHelper.commit();
return result;
} catch (RuntimeException re) {
EntityManagerHelper.rollback();
throw re;
}
}
(2)上传稿件
作者角色上传稿件:采用在线文件上传组件Components-FileUPload上传稿件。作者在表示层页面Upload.jsp中选择要上传的稿件的路径,点击上传按钮,页面请求通过form表单发送给控制层UploaDACtion, form中的enctype属性用来设置上传数据的编码方式,应设为multipart/form-date。UploadActon中的execute()方法中首先创建一个字节型输入流来读取传送来的文件file。然后通过ServletAcrionContext.getRequest().getRealPath()获取存储问价的父目录,然后创建一个destFile文件。该文件用来做为输出流的目的文件。最后再创建一个关于destFile文件的输出流。创建完输入流和输出流后,就可以创建一个中间字节数组buffer来实现输入流与输出流的转换,从而实现文件的上传功能。实现上传功能,还要在struts.xml文件中对实现文件上的Action进行拦截器方面的配置,可以设置允许上传文件的大小,文件类型等等。上传成功后返回Uploadsuccess.jsp。
3.3.2 审稿模块
(1)查阅稿件
编辑角色查看稿件信息:稿件信息包括稿件的基本信息、稿件内容及编辑部工作人员和专家对其的评价。查看稿件内容需要下载稿件,实现方法也是采用Components-FileUPload组件,和上面讲到的上传稿件类似,这里就不再详述。在编辑角色的ViEW层页面Editor.jsp点击目标稿件的查看按钮,则通过URL链接到findSingleContribution.action,并把目标稿件的id传送给action,此action调用业务层处理逻辑findSingleContribution,业务层调用持久层findById方法查询数据对象, 查询完成后返回数据库结果,返回数据对象结果,返回逻辑处理结果,返回页面视图展现结果。
(2)审理稿件
编辑角色审理稿件:主要包括评价稿件,提交审理结果。评价稿件与作者角色填写稿件信息类似,调用持久层的update方法。审理结果有三种:拟录、退修、退稿、分别对应数据库flag中的1、2、3。提交审理结果就是修改flag的值。在Editor.jsp中选择目标稿件的三种稿件的任一种结果,调用控制层的review.action并传递目标稿件的id和稿件处理结果flag的值给action,调用业务层的review方法,调用持久层的update方法。返回处理结果。
4 系统测试
把系统布置到tomcate6中,通过浏览器访问。按照注册、登陆、投稿、审稿的流程操作系统。测试结果表明基本实现了需求分析时的功能。并且该系统通过javascript实现了许多浏览器端数据输入验证功能,例如文题不能为空、验证邮箱格式、验证是否上传了稿件等等。 图5是投稿成功后,按照编辑人员审稿的流程操作的测试结果。
本文设计的网站和系统是基于B/S结构,采用Dreamweaver制作静态网页,采用MVC模式Struts2+Spring+Jpa框架,Java语言和JSP技术,MySQL数据库实现的方案,完成了投稿和审稿功能。本系统具有如下优点:采用Java语言和JSP技术,具有跨平台的优点;基于B/S结构,系统运行更简易;采用MVC模式和Struts2+Spring+Jpa框架,易维护、易升级、易操作。本系统很好地解决了传统手工投审稿效率低、耗时长、交互性差的问题。
参考文献
[1] 李振捷. JSP网站开发典型模块与实例精讲[M].北京:电子工业出版社,2007.
[2] 胡异峰.投稿考评及分析系统的设计与实现[J].计算机工程与应用,2005(29):223-225.
[3] (荷)范德兰斯著. MySQL开发者SQL权威指南[M].许杰星,等译.北京:机械工业出版社,2008.
[4] 林永傍,刘伟平,黄红斌,等.EPON故障管理系统的设计与实现[J].光通信技术,2009,33(10):16-18.