【JSP开源代码栏目提醒】:网学会员,鉴于大家对JSP开源代码十分关注,论文会员在此为大家搜集整理了“图书信息管理系统 - 其它论文”一文,供大家参考学习!
北京航空航天大学毕业设计
论文 第 1 页 1 绪论 1.1 选题背景 本课题源自某大型企业信息平台的设计与建设项目该信息平台的特点是注册用户数及访问量大功能复杂对于用户互动部分的可用性要求很高。
本课题的目标是运用面向对象的设计和开发方法实现该项目中的在线调查系统。
要求支持问卷管理、题库管理、智能出卷、结果统计分析等多项功能调查题目要支持单选、多选、填空、排序等多种类型。
1.2
论文的主要内容及组织结构
论文的研究目的是出调查问卷的信息平台可为企业方便的提供问卷发布、结果收集和结果显示为参与调查的人和企业形成信息的互动。
论文的主要工作集中在以下几个方面 1介绍总结在线调查系统的命题背景阐述在线调查项目的来由分析在线调查项目用到的关键技术。
2分析题目讨论项目的具体需求考虑在实际运用中将遇到的一些问题如访问的高并发量、缓存问题等。
3设计系统包括系统的布局、程序的流程、一些关键技术怎么融入到系统中。
对系统进行数据库设计、类设计和模块详细设计等。
4实现在线调查系统包括配置数据库web应用的几类重要的文件配置层层之间的调用的实现。
最终开发出一个问卷的题目、选项、结果、显示等各个方面进行较好的管理的系统。
5运行测试在线调查系统通过该系统向数据库添加题目、出问卷和收集的调查结果等包括界面的呈现等等。
论文按照三个部分来组织本文的结构 第一部分包括第一章。
第一章绪论概括介绍课题的背景说明课题的主要内容给出
论文的组织结构。
北京航空航天大学毕业设计
论文 第 2 页 第二部分包括第二、三、四、五、六章是
论文的重点也是工作的核心由以下5章构成 1第二章对本课题使用的关键技术进行概要介绍主要包括Struts技术、Spring技术和JDBC Template技术并对这些技术对系统实现的好处进行介绍。
2第三章是对在线调查系统的需求分析进行阐述。
主要包括功能需求、其它需求如用户体验的需求等、运行环境需求和对于高并发量的一些考虑等等。
3第四章是对在线调查系统的总体设计进行阐述。
其中主要有在线调调查系统的模块设计、系统运行机制的总体设计、数据库的设计和界面设计。
4第五章是对在线调查系统的详细进行阐述。
其中主要内容有程序流程的详细设计、模块详细设计、系统实现等等小节。
重点内容是程序流程的详细设计和系统实现。
5第6章主要是运行测试。
第三部分包括第七章。
第七章总结本课题的工作成果对系统做出评价指出存在的不足之处并对系统今后进一步的发展和完善进行展望。
北京航空航天大学毕业设计
论文 第 3 页 2系统关键技术简介 2.1 Struts的MVC模式
JSP Web应用的有两种基本的结构模式Model 1和Model 2。
Model 1结构如图2-1所示。
图2-1
JSP Web开发model 1图 mode1 1是一个以
JSP文件为中心的模式在这种模式中
JSP页面不仅负责表现逻辑也负责控制逻辑。
专业书籍上称之为逻辑耦合在页面中这种处理方式对一些规模很小的项目如一个简单的留言簿也没什么太大的坏处实际上人们开始接触一些对自己来说是新的东西的时候比如用
JSP访问数据库时往往喜欢别人能提供一个包含这一切的单个
JSP页面因为这样在一个页面上他就可以把握全局便于理解。
但是用Model 1模式开发大型项目时程序流向由一些互相能够感知的页面决定当页面很多时要清楚地把握其流向将是很复杂的事情修改一页时可能会影响相关的很多页面大有牵一发而动全身的感觉使得程序的修改与维护变得异常困难还有一个问题就是程序逻辑开发与页面设计纠缠在一起既不便于分工合作也不利于
代码的重用这样的程序其健壮性和可伸缩性都不好。
Grady Booch等人在UML用户指南一书中强调建模的重要性时打了一个制作狗窝、私人住宅和大厦的形象比喻来说明与人们处理不同规模的事物时应该采用的合理 北京航空航天大学毕业设计
论文 第 4 页 方法一样人们对不同规模的应用程序也应该采用不同的模式。
为了克服Model 1的缺陷人们引入了Model 2如图2-2所示。
图2-2
JSP Web开发model 2图 它引入了“控制器”这个概念控制器一般由servlet来担任客户端的请求不再直接送给一个处理业务逻辑的
JSP页面而是送给这个控制器再由控制器根据具体的请求调用不同的事务逻辑并将处理结果返回到合适的页面。
因此这个servlet控制器为应用程序提供了一个进行前-后端处理的中枢。
一方面为输入数据的验证、身份认证、日志及实现国际化编程提供了一个合适的切入点另一方面也提供了将业务逻辑从
JSP文件剥离的可能。
业务逻辑从
JSP页面分离后
JSP文件蜕变成一个单纯完成显示任务的东西这就是常说的View。
而独立出来的事务逻辑变成人们常说的Model再加上控制器Control本身就构成了MVC模式。
实践证明MVC模式为大型程序的开发及维护提供了巨大的便利。
其实MVC开始并不是为Web应用程序提出的模式传统的MVC要求M将其状态变化通报给V但由于Web浏览器工作在典型的拉模式而非推模式很难做到这一点。
因此有些人又将用于Web应用的MVC称之为MVC2。
正如上面所提到的MVC是一种模式当然可以有各种不同的具体实现包括您自己就可以实现一个体现MVC思想的程序框架Struts就是一种具体实现MVC2的程序框架。
2.2 Struts 组件 Struts Framework 是一种基于Java的技术Web应用程序开发人员通过Struts Framework 就可以充分利用面向对象设计、
代码重用以及“编写一次到处运行”的优 北京航空航天大学毕业设计
论文 第 5 页 点。
Struts Framework提供了一种创建Web应用程序的框架其中对应用程序的现实、表示和数据的后端
代码进行了抽象。
可以说Struts Framework是对MVC设计模式的实现Struts MVC体系结构如图2-3所示 图2-3 Struts MVC体系结构图 从图上可以清楚的看出Struts也是由控制器、视图和模型三部分构成。
2.3 Spring简介 Spring是一个
开源框架它由Rod Johnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言任何Java应用都可以从Spring中受益。
简单来说Spring是一个轻量级的控制反转IoC和面向切面AOP的容器框架。
◆控制反转——Spring通过一种称作控制反转IoC的技术促进了松耦合。
当应用了IoC一个对象依赖的其它对象会通过被动的方式传递进来而不是这个对象自己创建或者查找依赖对象。
可以认为IoC与JNDI相反——不是对象从容器中查找依赖而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面编程的丰富支持允许通过分离应用的业务逻辑与系统级服务例如审计auditing和事务business管理进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责甚至是控制器ControllerActionServlet视图View客户端浏览器模型ModelAction客户端请求分发请求转发响应分发Strtuts-config.xml 北京航空航天大学毕业设计
论文 第 6 页 意识其它的系统级关注点例如日志或事务支持。
◆容器——Spring包含并管理应用对象的配置和生命周期在这个意义上它是一种容器可以配置的每个bean如何被创建——基于一个可配置原型prototype的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。
在Spring中应用对象被声明式地组合典型地是在一个XML文件里。
所有Spring的这些特征能够使编写更干净、更可管理、并且更易于测试的
代码。
它们也为Spring中的各种模块提供了基础支持。
◆Spring关注提供一种方法管理的业务对象。
◆Spring是全面的和模块化的。
Spring有分层的体系结构这意味着能选择使用它孤立的任何部分它的架构仍然是内在稳定的。
因此从的学习中可得到最大的价值。
例如可能选择仅仅使用Spring来简单化JDBC的使用或用来管理所有的业务对象。
◆它的设计从底部帮助编写易于测试的
代码。
Spring是用于测试驱动工程的理想的framework。
2.4 Jdbc Template组件 JDBCJava Data Base Connectivityjava数据库连接是一种用于执行SQL语句的Java API可以为多种关系数据库提供统一访问它由一组用Java语言编写的类和接口组成。
JDBC提供了一种基准据此可以构建更高级的工具和接口使数据库开发人员能够编写数据库应用程序同时JDBC也是个商标名。
有JDBC向各种关系数据发送SQL语句就是一件很容易的事。
换言之有了JDBC API就不必为访问Sybase数据库专门写一个程序为访问Oracle数据库又专门写一个程序或为访问Informix数据库又编写另一个程序等等程序员只需用JDBC API写一个程序就够了它可向相应数据库发送SQL调用将Java语言和JDBC结合起来使程序员只须写一遍程序就可以让它在任何平台上运行。
有了JDBC向各种关系数据库发送SQL语句就是一件很容易的事。
换言之有了JDBC API就不必为访问Sybase数据库专门写一个程序为访问 Oracle数据库又专门 北京航空航天大学毕业设计
论文 第 7 页 写一个程序为访问Informix数据库又写另一个程序等等。
您只需用JDBC API写一个程序就够了它可向相应数据库发送SQL语句。
而且使用Java编程语言编写的应用程序就无须去忧虑要为不同的平台编写不同的应用程序。
将Java和JDBC结合起来将使程序员只须写一遍程序就可让它在任何平台上运行。
而通过使用“org.springframework.jdbc.core.JdbcTemplate”这个已有的类将会更进一步简化对数据库的访问和管理。
另外通过修改Spring的xml文件可以很容易的配置对不同的数据库的访问便于目标数据库的转移如从oracle转移到mysql而不需要改动程序里面大量sql语句。
北京航空航天大学毕业设计
论文 第 8 页 3在线调查系统需求分析 3.1系统功能结构 经过对用户需求的分析确定在线调查系统主要由题目管理模块、选项管理模块、调查管理模块、前台调查显示模块、前台题目显示、调查结果显示、管理员登陆模块7个模块组成。
功能如图3-1所示。
图3-1 系统功能结构图 3.2 系统功能概述 3.2.1 题目管理 该模块主要提供系统管理员对题目的增删改、查看题目详细信息、为调查配置题目、设置题目顺序等功能。
其中查看题目的详细信息主要是指显示题目内容、创建时间等信息不显示题目的选项。
设置题目顺序是指对题目在调查中出现的顺序进行设置。
这个模块是涉及到功能最多的一个模块。
题目管理模块的用例图如图3-2所示。
在线调查系统题目管理选项管理调查管理前台调查显示前台题目显示后台登陆调查结果显示配置调查题目更改题目删除题目题目列表创建题目设置调查题目顺序进入选项配置页面新建选项更新选项删除选项进入调查维护页面进入调查结果列表页面添加调查删除调查更新调查前台显示调查前台调查题目显示调查结果显示登录验证 北京航空航天大学毕业设计
论文 第 9 页 图 3-2 题目管理用例图 3.2.2 选项管理 该模块主要实现管理员在题目维护中的配置选项、对选项进行增删改等功能。
配有选项的题目主要是单选题、多选题和填空题。
选项管理模块的用例图如图3-3所示。
图 3-3 选项管理用例图 管理员题目列表创建题目删除题目更改题目配置调查题目设置题目顺序ltltusesgtgt管理员新建选项修改选项创建选项返回题目列表ltltusesgtgtltltusesgtgtltltusesgtgt 北京航空航天大学毕业设计
论文 第 10 页 3.2.3 调查管理 该模块主要实现管理员在调查维护中对调查的增删改、查看调查详细信息、预览调查问卷等功能。
这个模块是功能比较多的一个模块。
查看调查详细信息指显示调查的名字、关键字、创建日期等信息预览调查问卷是把配好的题和调查的一些基本信息在后台以问卷的形式呈现给管理员。
调查管理模块的用例图如图3-4所示。
图3-4调查管理用例图 3.2.4 前台调查显示 该模块主要实现前台调查列表显示功能。
用例图如图3-5所示。
图3-5 前台查看问卷列表用例图 管理员添加调查修改调查查看调查删除调查预览问卷用户查看问卷列表 北京航空航天大学毕业设计
论文 第 11 页 3.2.5 前台题目显示 显示前台的某个调查的题目以问卷的方式展示。
用户可以填写问卷。
前台题目显示模块用例图如图3-6所示。
图3-6 前台问卷展示用例图 3.2.6 调查结果显示 当用户填写完某分问卷后点击提交后将自动转到该问卷的结果界面。
该界面将可以看到以往所有用户填写的结果以统计后的结果显示。
该模块需要有结果统计功能在用户填写完调查点击提交时应用程序将提交结果保存到对应数据表中然后统计所有用户的提交结果统计分析出一个报告通过柱状图或其他方式向用户暂时结果。
还应包括后台管理员的结果查看功能。
用户查看调查结果用例图如图3-7所示。
图3-7 用户查看调查结果用例图 用户查看并填写问卷返回问卷列表提交结果ltltextendsgtgtltltextendsgtgt用户查看调查结果结果统计ltltusesgtgt 北京航空航天大学毕业设计
论文 第 12 页 3.2.7 管理员登陆管理 该模块主要实现后台管理员的登录验证功能。
根据不同的登录名和密码用户进入后所拥有的操作权限也不一样。
本系统比较简单可能不会涉及到更多的功能。
管理员登陆用例图如图3-8所示。
图3-8 管理员登陆用例图 3.3 其它需求 1系统能同时在windows和linux下访问使用。
2以后系统可能考虑mysql或sql server等其他数据库服务器要求届时
代码维护的代价尽量小。
3必须考虑高并发量下系统的响应效率。
4应当有良好的用户界面UI和增强的用户体验UE。
5应当考虑如何减轻管理员维护调查题目的负担。
6应考虑多层的安全保护为企业数据提供足够的保密性。
3.4 解决高并发量的考虑 该系统对系统应付数据高并发的响应要求比较高所以思考一下可能采用的解决方案。
但是很遗憾系统并未能用到其中的任何一种解决方法从而未能解决这个问题。
1用Oracle的lock table ????share mode 方式而非 lock table???? exclusive mode 提高并发性处理 尽量减少不必要执行等待。
2缓存 管理员登录验证登陆后台ltltusesgtgt 北京航空航天大学毕业设计
论文 第 13 页 Linux上提供的Memory Cache是常用的缓存接口可以在web开发中使用比如用Java开发的时候就可以调用Memory Cache对一些数据进行缓存和通讯共享一些大型社区使用了这样的架构。
另外在使用web语言开发的时候各种语言基本都有自己的缓存模块和方法。
北京航空航天大学毕业设计
论文 第 14 页 4在线调查系统总体设计 4.1开发环境和设计约束 由于系统最终面向的客户群体是分布的系统采用B/S架构采用这种架构有以下优势 1服务器端维护比较简单升级系统只需要更新服务器上的应用程序即可。
2客户端的地理位置不限。
任何可以访问Internet网络的计算机都可以使用本系统提供的全部功能。
下面给出项目开发的环境 1操作系统Windows 2使用语言及版本JavaJDK 1.5.0 3数据库系统Oracle 10g 4应用服务器Tomcat 5.5 5使用框架Struts、Spring、JDBC template 6程序平台Eclipse 7测试工具IE6.0或者更高版本 4.2 在线调查系统运行机制 从系统运行流程来看在线调查系统的每一个模块都是一个非常典型的Struts结构的程序。
对于每一个模块都能用如下的图4.2来反映项目的运行机制。
北京航空航天大学毕业设计
论文 第 15 页 图4-1 系统运行机制图 每个模块都采用B/S结构主要由三层构成从左到右依次为表示层view、控制层control和模型层model。
其表示层使用Struts标签库构建。
来自客户的所有需要通过框架的请求统一由叫ActionServlet的servlet接收ActionServlet Struts已经为写好了只要应用没有什么特别的要求它基本上都能满足您的要求根据接收的请求参数和Struts配置struts-config.xml中ActionMapping将请求送给合适的Action去处理解决由谁做的问题它们共同构成Struts的控制器。
Action则是Struts应用中真正干活的组件开发人员一般都要在这里耗费大量的时间它解决的是做什么的问题它通过调用需要的业务组件模型来完成应用的业务业务组件解决的是如何做的问题并将执行的结果返回一个代表所需的描绘响应的
JSP或Action的ActionForward对象给ActionServlet以将响应呈现给客户。
4.3 在线调查系统采用的框架 系统采用Struts Framework技术。
在Struts应用程序工作过程中实际上就是各组件之间的协作过程struts的时序图如4-2所示。
北京航空航天大学毕业设计
论文 第 16 页 图4-2 Struts的时序图 Struts工作过程如下 首先控制器 ActionServlet 进行初始化操作读取配置文件struts-config.xml 为不同的 struts 模块初始化相应的 ModuleConfig 对象。
比如配置文件中的 Action 映射定义都保存在 ActionConfig 集合中。
相应的有 ControlConfig 集合、 FormBeanConfig 集合等等。
控制器接受 HTTP 请求并从 ActionConfig 中找出对应于请求的 Action 子类如果没有对应的 Action 控制器直接将请求转发给
JSP 或者静态页面否则控制器将请求分发到具体的 Action 类进行处理。
在控制器调用具体 Action 的 Execute 方法之前 ActionForm 对象将利用 HTTP 请求中的参数来填充自己。
ActionForm 是一个抽象类它可以被每个输入表格模型扩展。
它代表数据的一般概念可以被HTML 表格设置或者更新。
在用户表单的时候 ActionForm 对象会收集所有的表单数据保存在 ActionForm 对象中这样的 ActionForm 对象可以在 Action 类中直接使用。
实际上 struts 将这些 ActionForm 的配置信息都放在 FormBeanConfig 集合中通过它们 struts 能够知道针对某个客户请求是否需要创建相应的 ActionForm 实例。
Action 的结构很简单一般只包含一个 Execute 方法它负责执行相应的业务逻 北京航空航天大学毕业设计
论文 第 17 页 辑。
执行完成后返回一个 ActionForward 对象控制器通过该 ActionForward 对象来进行转发工作。
为了简化 Action 处理逻辑可以把 Action 要处理的业务逻辑封装在 JavaBean 中如果系统中有 EJB 那么可以通过 JavaBean 调用 EJB 完成业务处理如果没有 EJB 那么就直接在 JavaBean 进行业务操作。
4.4 在线调查系统数据表的设计 尽可能的设计出符合系统需要的各种表和表之间的关系然后通过分析这些表之间的关系有助于更好的理解将要设计和开发的程序。
系统数据的设计主要围绕“调查”展开。
想要出一份调查或者填写一份调查首先要看调查由哪些内容组成。
调查要有题目因此要有一张调查表和一张题目表然后要有一张调查和题目的关联表之所以不通过添加字段的方式把调查和题目合到一个表里是为了题目的复.