万方期刊网,快速职称u乐国际娱乐平台发表权威机构

  1. 热门搜索:
您的位置:首页 > 万方期刊网 > u乐国际娱乐平台分类> 基于struts框架的专家信息收集系统开发研究

基于struts框架的专家信息收集系统开发研究

来源:万方期刊网  时间:2017-09-06 09:38:21  点击:

作者:张海亮

  摘要在中亚气象科技合作中存在着专家信息难于收集、维护的问题,为了解决实际问题,研究开发了基于struts框架的专家信息收集系统。该系统使用mysql数据库和J2EE平台进行开发,实现了用户登录、注册、组合查询、明细查询等功能,同时采用了MVC的软件架构方式,使得系统更加便于维护、扩展,有效的满足了中亚气象科技合作中专家信息收集的实际应用需要。
  关键词strutsmvcjsp专家信息收集系统
  0引言
  经调查,在中亚气象科技合作中常遇到的问题就是缺少相关研究领域专家信息库,导致在合作中双方联系困难,影响合作效率。同时因缺少系统的专家信息库,存在专家信息易于遗失、难于更新等问题。本文研究开发了一套专家信息收集系统,以信息化手段改善上述中亚气象科技合作中存在的问题。本项目由中国气象局法规司软课题:与丝绸之路经济带沿线中亚国家气象交流合作机制研究项目资助。
  Struts简介
  struts是J2EE的一个轻量级MVC开源框架,可以实现M(model)、V(view)、C(control)的分离开发,提高代码的灵活性和重用性,简化基于MVC的web应用程序开发。
  struts框架由Action、ActionForm、forward三个基本概念组成。Action是业务处理基类,当客户端发送一个httpRequest请求后,由struts框架根据请求的url调用相应的Action子类的成员函数处理该请求。ActionForm是表单数据基类,由struts框架根据HTML表单中的数据名称填写ActionForm表单子类对象并将该对象传递给对应的Action子类对象,因此,在Action子类对象的成员函数中可以直接使用填好的表单数据进行业务处理。forward包含了Action子类可以访问的JSP页面的路径信息,一个Action子类可以有若干forward信息,可以根据需要访问不同的JSP页面。
  struts框架初始化时会创建ActionServlet对象,该对象在内存中只有一个实例(单态),ActionServlet实例负责struts框架的总调度,是struts的核心对象[1]。ActionServlet会读取struts-config.xml配置文件,把配置文件信息存入ActionMapping对象中。当一个HttpRequest请求到来时,ActionServlet实例接收到该请求,查找ActionMapping实例,如果找到Action子类对象且未实例化则实例化对应的Action子类对象(单态),同时查找ActionForm实例,如果没有,则会创建一个ActionForm实例并把表单中的数据存入ActionForm实例中。这样整个struts框架就运行起来了[2]。
  Struts框架主要的缺点就是单态。单态对程序的并发执行带来了不利影响,可能导致系统用户的接入效率下降,假如一个用户占用了IO资源,那么其他用户只能等待这个用户IO操作结束后才能接入系统。但这并不影响struts成为目前最流行的MVCWEB框架之一。
  系统功能
  系统由登录模块、注册模块、查询模块三部分组成。各领域专家用户通过浏览器访问网站注册个人信息并通过网站审核后,便可使用登录名及密码登录并使用系统,在系统中可设置组合查询条件寻找研究工作相关的各领域专家信息,也可以查看某位专家的详细信息。
 
  图1专家信息组合查询结果页面
  图示为用户查询到的相关领域专家界面,用户可以点击查看详情的链接进入用户的详细信息显示页面,也可以点击返回查询设置页面返回查询条件设置页面。
  数据库设计
  本系统的数据库采用关系型数据库MySQL。关系模型的奠基人E﹒F﹒Codd在1971年至1972年间系统地提出了第一范式(1NF)、第二范式(2NF)、第三范式(3NF),成为关系型数据库表结构设计的理论依据[3]。本文设计的expert数据库完全遵循了第一、二、三范式,所有表结构的数据都是不可分解的、非主属性完全依赖于主键、非主属性不传递函数依赖于主键,实现了数据概念的单一化,确保数据维护的简单、高效。
  图2专家信息收集系统数据库设计
  expert数据库使用了7张表用于存储专家信息,它们分别是专家登录信息表(loginfo)、专家基本信息表(expertinfo)、专家扩展信息表(expertinfo_ext)、专家研究领域表(expert_research)、研究领域表(research)、国籍表(nation)、专业表(major)。专家登录信息表的expert_id字段为自增长主键。专家基本信息表、专家扩展信息表的expert_id字段是专家登录信息表expert_id字段的外键并与之形成1:1(1对1)联系。专家信息扩展表的nation_id字段是国籍表nation_id字段的外键并与之形成1对1联系。专家信息扩展表的major_id字段是专业表major_id字段的外键并与之形成1对1联系。专家研究领域表的research_id字段是研究领域表research_id字段的外键并与之形成1对1联系。专家研究领域表的expert_id字段是专家登录信息表expert_id字段的外键并与之形成n:1(多对一)联系。专家研究领域表的expert_id,research_id是联合主键以避免插入重复数据。
  所有数据表都设置了外键约束关系(ondeleterestrictonupdatecascade),父表更新主键记录时,子表与主表存在外键关系的子记录将被级联更新;父表删除主键记录时,子表与父表有外键关系的子记录存在时则不能删除,只有当子表与父表存在外键关系的子记录被删除后,才能删除父表的主键记录。通过设置外键约束,有效保证了数据库数据的参照完整性和一致性。
  struts设计
  Action是struts框架的执行单元,是MVC软件架构中的控制部分。本系统使用分派Action实现业务流程控制,分派Action可以处理JSP页面传入的标识并由struts框架调用对应的处理函数完成业务逻辑。
  在本系统中共有3个分派Action子类控制单元,分别是专家登录Action、专家注册Action、专家查询Action。登录控制单元完成专家的登入、登出处理。注册控制单元完成专家的注册处理。查询控制单元完成专家信息的组合查询与明细查询处理。
  注册功能实现逻辑:在loginfo表中插入专家登录名、密码数据,由数据库自动生成expert_id主键值,再查询loginfo表获取expert_id主键值,通过主键expert_id值,配合用户各类信息,将数据插入到专家基本信息表和扩展信息表中。
  组合查询实现逻辑:通过多表联合查询获取符合组合条件的专家ID链表,组合条件主要有:姓名、性别、专业、学历、国籍、研究领域等信息,各查询信息之间是逻辑与关系。再通过专家ID链表查询对应专家的基本信息,并将查询到的专家信息存放在链接的session中,显示查询结果的JSP页面可以得到这些数据并显示。
  明细查询实现逻辑:获取JSP页面传入的希望查询的专家ID参数,并得到存放在session中的专家信息数组,通过专家ID查询专家数组得到对应的专家基本信息。再通过专家ID查询专家扩展信息和研究领域信息,并将这些信息存放在request对象中,以便显示用户明细信息的JSP页面可以得到这些数据并显示。
  软件结构设计
 
  图3专家信息收集系统软件结构图
  本系统软件基于struts框架开发,整体软件结构分为4层:控制层、服务与工具层、数据模型层、显示层。控制层的功能主要是处理各类业务逻辑,由系统的各类Action类组成;服务层实现基本的功能函数供控制层进行调用,例如检查用户是否合法、查询基本用户信息等函数实现;工具层提供了底层mysql数据库的操作接口,例如通用查询操作等,主要由服务层进行使用。数据模型层是整个系统数据模型的定义,由服务层和控制层使用。显示层由系统的各种JSP文件组成,负责数据的显示工作。
  通过剥离业务层、显示层、模型层的软件架构设计,大大增强了软件的可靠性、提高了重用性和适应性、降低了开发成本、改善了系统的可维护性。
  结语
  目前专家信息收集系统可以作为中亚气象科技合作的支撑手段之一。但是该系统尚有不完善之处,主要是专家信息易于泄露。为此,考虑后续增加用户注册信息的审核功能、网站用户好友功能(只有互相加为好友的专家才能查看对方的详细信息)。中亚气象科技合作的支撑平台还需要其他功能的支撑,包括会议通知、邀请功能,站内邮件功能、论坛功能等等,有待进一步开发、完善。
  参考文献
  刘艳春,洪晓慧.Struts2框架核心配置文件的研究与应用[J].计算机技术与发展,2013,2:77-81
  孙鑫.Struts2深入详解[M].北京:电子工业出版社.2008:61
  [王珊,萨师煊.数据库系统概论(第四版)[M].北京:高等教育出版社,2006:174-176
 

基于struts框架的专家信息收集系统开发研究相关期刊: