软件开发 毕业设计论文开题报告.docx
《软件开发 毕业设计论文开题报告.docx》由会员分享,可在线阅读,更多相关《软件开发 毕业设计论文开题报告.docx(12页珍藏版)》请在冰豆网上搜索。
软件开发毕业设计论文开题报告
莱芜职业技术学院
毕业设计(论文)开题报告
论文题目:
基于JavaWeb的新闻发布系统管理软件
所在系计算机系
姓名
专业
班级
指导老师
二零一一年三月七日
开题报告评审表
学号
姓名
学制
专业
软件技术
班级
论文题目
基于JavaWeb的新闻发布系统管理软件
指导教师
职称或职务
指导教师意见:
指导教师签名:
年月日
所在专业审查意见:
审查人签名:
年月日
毕业设计(论文)开题报告
一、文献综述
1.本系统开发所用技术简介
1.1JSP简介
JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。
网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。
JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。
Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
插入的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。
JSP与JavaServlet一样,是在服务器端执行的,通常返回给客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。
JSP的1.0规范的最后版本是1999年9月推出的,12月又推出了1.1规范。
目前较新的是JSP1.2规范,JSP2.0规范的征求意见稿也已出台。
JSP页面由HTML代码和嵌入其中的Java代码所组成。
服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。
JavaServlet是JSP的技术基础,而且大型的Web应用程序的开发需要JavaServlet和JSP配合才能完成。
JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。
1.2Struts2简介
Struts2是Struts的下一代产品。
是在struts和WebWork的技术基础上进行了合并,全新的Struts2框架。
其全新的Struts2的体系结构与Struts1的体系结构的差别巨大。
Struts2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以Struts2可以理解为WebWork的更新产品。
因为Struts2和Struts1有着太大的变化,但是相对于WebWork,Struts2只有很小的变化。
经过六年多的发展,Struts1已经成为了一个高度成熟的框架,不管是稳定性还是可靠性都得到了广泛的证明。
市场占有率超过20%,拥有丰富的开发人群,几乎已经成为了事实上的工业标准。
但是随着时间的流逝,技术的进步,Struts1的局限性也越来越多地暴露出来,并且制约了Struts1的继续发展。
对于Struts1框架而言,由于与JSP/Servlet耦合非常紧密,因而导致了一些严重的问题。
首先,Struts1支持的表现层技术单一。
由于Struts1出现的年代比较早,那个时候没有FreeMarker、Velocity等技术,因此它不可能与这些视图层的模版技术进行整合。
其次,Struts1与ServletAPI的严重耦合,使应用难于测试。
最后,Struts1代码严重依赖于Struts1API,属于侵入性框架。
从目前的技术层面上看,出现了许多与Struts1竞争的视图层框架,比如JSF、Tapestry和SpringMVC等。
这些框架由于出现的年代比较近,应用了最新的设计理念,同时也从Struts1中吸取了经验,克服了很多不足。
这些框架的出现也促进了Struts的发展。
目前,Struts已经分化成了两个框架:
第一个是在传统的Struts1的基础上,融合了另外的一个优秀的Web框架WebWork的Struts2。
Struts2虽然是在Struts1的基础上发展起来的,但是实质上是以WebWork为核心的。
Struts2为传统的Struts1注入了WebWork的先进的设计理念,统一了Struts1和WebWork两个框架。
Struts1分化出来的另外一个框架是Shale。
这个框架远远超出了Struts1原有的设计思想,与原有的Struts1关联很少,使用了全新的设计思想。
Shale更像一个新的框架而不是Struts1的升级。
1.3Spring简介
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
◆目的:
解决企业应用开发的复杂性
◆功能:
使用基本的JavaBean代替EJB,并提供了更多的企业应用功能
◆范围:
任何Java应用
简单来说,Spring是一个轻量级的控制反转IOC和面向切面AOP的容器框架。
◆轻量——从大小与开销两方面而言Spring都是轻量的。
完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。
并且Spring所需的处理开销也是微不足道的。
此外,Spring是非侵入式的:
典型地,Spring应用中的对象不依赖于Spring的特定类。
◆控制反转——Spring通过一种称作控制反转(IoC)的技术促进了松耦合。
当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。
你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
◆面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。
应用对象只实现它们应该做的——完成业务逻辑——仅此而已。
它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
◆容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。
然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
◆框架——Spring可以将简单的组件配置、组合成为复杂的应用。
在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。
Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
所有Spring的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。
它们也为Spring中的各种模块提供了基础支持。
1.4Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
Hibernate的核心接口一共有5个,分别为:
Session、SessionFactory、Transaction、Query和Configuration。
这5个核心接口在任何开发中都会用到。
通过这些接口,不仅可以对持久化对象进行存取,还能够进行事务控制。
下面对这五个核心接口分别加以介绍。
Session接口
Session接口负责执行被持久化对象的CRUD操作(CRUD的任务是完成与数据库的交流,包含了很多常见的SQL语句。
)。
但需要注意的是Session对象是非线程安全的。
同时,Hibernate的session不同于JSP应用中的HttpSession。
这里当使用session这个术语时,其实指的是Hibernate中的session,而以后会将HttpSession对象称为用户session。
SessionFactory接口
SessionFactory接口负责初始化Hibernate。
它充当数据存储源的代理,并负责创建Session对象。
这里用到了工厂模式。
需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够,当需要操作多个数据库时,可以为每个数据库指定一个SessionFactory。
Configuration接口
Configuration接口负责配置并启动Hibernate,创建SessionFactory对象。
在Hibernate的启动的过程中,Configuration类的实例首先定位映射文档位置、读取配置,然后创建SessionFactory对象。
Transaction接口
Transaction接口负责事务相关的操作。
它是可选的,开发人员也可以设计编写自己的底层事务处理代码。
Query和Criteria接口
Query和Criteria接口负责执行各种数据库查询。
它可以使用HQL语言或SQL语句两种表达方式。
1.5jQuery简介
Jquery是继prototype之后又一个优秀的Javascrīpt框架。
它是轻量级的js库(压缩后只有21k),它兼容CSS3,还兼容各种浏览器(IE6.0+,FF1.5+,Safari2.0+,Opera9.0+)。
jQuery使用户能更方便地处理HTMLdocuments、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。
jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。
2.本系统的设计思想
2.1MVC设计模式
MVC是一种程序开发设计模式,它实现了显示模块与功能模块的分离。
提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。
它主要分模型、视图、控制器三层。
1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。
模型与数据格式无关,这样一个模型能为多个视图提供数据。
由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性
2、视图(view)用户与之交互的界面、在web中视图一般由jsp,html组成
3、控制器(controller)接收来自界面的请求并交给模型进行处理在这个过程中控制器不做任何处理只是起到了一个连接的做用
MVC的优点
1、可以为一个模型在运行时同时建立和使用多个视图。
变化-传播机制可以确保所有相关的视图及时得到模型数据变化,从而使所有关联的视图和控制器做到行为同步。
2、视图与控制器的可接插性,允许更换视图和控制器对象,而且可以根据需求动态的打开或关闭、甚至在运行期间进行对象替换。
3、模型的可移植性。
因为模型是独立于视图的,所以可以把一个模型独立地移植到新的平台工作。
需要做的只是在新平台上对视图和控制器进行新的修改。
4、潜在的框架结构。
可以基于此模型建立应用程序框架,不仅仅是用在设计界面的设计中。
MVC的不足之处
1、增加了系统结构和实现的复杂性。
对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。
2、视图与控制器间的过于紧密的连接。
视图与控制器是相互分离,但确实联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。
3、视图对模型数据的低效率访问。
依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。
对未变化数据的不必要的频繁访问,也将损害操作性能。
4、目前,一般高级的界面工具或构造器不支持模式。
改造这些工具以适应MVC需要和建立分离的部件的代价是很高的,从而造成MVC使用的困难。
2.2SSH设计模式
典型的J2EE三层结构,分为表现层、中间层(业务逻辑层)和数据服务层。
三层体系将业务规则、数据访问及合法性校验等工作放在中间层处理。
客户端不直接与数据库交互,而是通过组件与中间层建立连接,再由中间层与数据库交互。
表现层是传统的JSP技术,自1999年问世以来,经过多年的发展,其广泛的应用和稳定的表现,为其作为表现层技术打下了坚实的基础。
中间层采用的是流行的Spring+Hibernate,为了将控制层与业务逻辑层分离,又细分为以下几种。
Web层,就是MVC模式里面的“C”(controller),负责控制业务逻辑层与表现层的交互,调用业务逻辑层,并将业务数据返回给表现层作组织表现,该系统的MVC框架采用Struts。
Service层(就是业务逻辑层),负责实现业务逻辑。
业务逻辑层以DAO层为基础,通过对DAO组件的正面模式包装,完成系统所要求的业务逻辑。
DAO层,负责与持久化对象交互。
该层封装了数据的增、删、查、改的操作。
PO,持久化对象。
通过实体关系映射工具将关系型数据库的数据映射成对象,很方便地实现以面向对象方式操作数据库,该系统采用Hibernate作为ORM框架。
Spring的作用贯穿了整个中间层,将Web层、Service层、DAO层及PO无缝整合,其数据服务层用来存放数据。
一个良好的框架可以让开发人员减轻重新建立解决复杂问题方案的负担和精力;它可以被扩展以进行内部的定制化;并且有强大的用户社区来支持它。
框架通常能很好的解决一个问题。
然而,你的应用是分层的,可能每一个层都需要各自的框架。
仅仅解决UI问题并不意味着你能够很好的将业务逻辑和持久性逻辑和UI组件很好的耦合。
3.基于JavaWeb的新闻发布系统管理软件
3.1新闻发布系统管理软件简介
新闻发布系统(NewsReleaseSystemorContentManagementSystem)是一个基于新闻和内容管理的全站管理系统,新闻发布系统是基于B/S模式的WEBMIS系统,本系统可以将杂乱无章的信息(包括文字,图片和影音)经过组织,合理有序地呈现在大家面前。
当今社会是一个信息化的社会,新闻作为信息的一部分有着信息量大,类别繁多,形式多样的特点,新闻发布系统的概念就此提出。
新闻发布系统的提出使电视不再是唯一的新闻媒体,从此以后网络也充当了一个重要的新闻媒介的功能。
与一般的信息系统相比较,新闻发布系统具有以下特征:
是基于B/S模式下的WEB信息系统,数据库逻辑相对简单,但数据量一般比较庞大;
用户数量大,服务器压力大,是系统设计中必须考虑的问题之一,而一般的信息系统相对压力要少了很多;
是一个开放式的系统,前台浏览无须验证。
3.2新闻发布系统管理软件架构
3.2.1后台管理模块
图1,2给出了后台管理模块的实现流程。
图1新闻类别管理模块图
图2新闻管理模块图
图3,4为前台管理模块的实现页面。
图3前台新闻类别和新闻的显示
图4前台新闻评论的提交管理
4.参考文献
[1]徐明华.JavaWeb整合开发与项目实战:
JSP,Ajax,Struts,Hibernate,Spring[M].北京:
人民邮电出版社,2009.2:
234-333.
[2]韩万江.软件工程案例教程[M].北京:
机械工业出版社,2007.5:
18-30,191-227.
[3]李刚.轻量级JavaEE企业应用实战-Struts2+Spring+Hibernate整合开发[M].北京:
电子工业出版社,2009.9:
68-72.
[4]王珊,萨师煊.数据库系统概论(第四版)[M]北京:
高等教育出版社,2006.5:
78-118.
[5]孙鑫.JavaWeb开发详解:
XML+XSLT+Servlet+JSP深入剖析与实例应用[M].北京:
电子工业出版社,2006.4:
5-10.
[6]唐友国,湛洪波.JSP网站开发详解[M].北京:
电子工业出版社,2008.10:
102-118.
[7]BruceEckel.Java编程思想[M].陈昊鹏.第四版.北京:
机械工业出版社,2007.880
[8]程伟.汪孝宜.开发者突击:
JSP网络开发经典模块实现全集[M].北京:
电子工业出版社,2008.963
[9]孙卫琴.精通Hibernate:
Java对象持久化技术详解[M].北京:
电子工业出版社2007.4:
5-10.
[10]孙卫琴.精通Struts:
基于MVC的JavaWeb设计与开发[M].北京:
电子工业出版社2006.4:
9-10.
二、开题报告:
课题研究意义、主要研究内容、课题的研究方法、进度安排等
1.课题研究意义
随着互连网的进一步发展,网络媒体在人们心中的地位进一步提高,新闻发布系统做为网络媒体的核心系统,其重要性是越来越重要:
一方面,它提供一个新闻管理和发布的功能;另一方面,现在的新闻发布要求实现与普通的用户实现交互,用户可以很方便地参加一些调查和相关新闻的评论,这一点也是其他一些媒体现在无法做到的(电视,电台等),同时,Internet发展到当今,可以说,只要你上Internet,你就会接触到新闻发布系统,新闻发布系统的用户是相当惊人的,其重要性是不容置疑的,当然这也对新闻发布系统的开发提出了更高的要求。
与一般的信息系统相比较,新闻发布系统具有以下特征:
是基于B/S模式下的WEB信息系统,数据库逻辑相对简单,但数据量一般比较庞大;
用户数量大,服务器压力大,是系统设计中必须考虑的问题之一,而一般的信息系统相对压力要少了很多;
是一个开放式的系统,前台浏览无须验证
1.前台动态显示的新闻发布系统
该类系统大约占60%的分额,其主要特点是前台采用编程语言动态读取数据库的内容,随时更新,该类系统设计简单,适合大多数中小企业建站需要,通用性不强,一般需要量身定做,不适合大型新闻站点,当用户过多时,编程语言动态读取数据库就势必消耗大量的服务器资源,造成系统运行缓慢,甚至崩溃,同时由于前台新闻是动态从数据库中读取,导致前端用户直接接触到数据库,很容易造成一些不安全的因素。
2、前台静态显示的新闻发布系统
该类系统大约占有30%多的市场分额,其主要特点为:
前台新闻全部生成HTML静态文件,前台无须读取数据库,浏览器只需要直接下载HTML文件即可浏览新闻,浏览速度得到提高,同时也大大减轻了数据库服务器的压力,该系统后台设计复杂需要处理复杂的模板标签和个模板之间的逻辑,一般采用三层模式实现,该类系统灵活性大,可以通过模板自定义实现界面复杂的前台页面,一般不需要为某一个企业而定做,该系统具有良好的通用性,适合各类新闻站点,同时,系统把前端用户和数据库分割开来,系统的安全性得到大大的提高。
3、基于文本的新闻发布系统
该系统在市场上占有很少的一部分,主要是把前面的数据库换成了TXT格式的文本文件,该系统主要缺点是文本文件是无序的,管理起来非常麻烦,而且安全性不高,很容易造成数据冗余,因此,目前还没有见到该类系统的商业版本,一般都作为个人用户使用。
4.基于XML数据岛的新闻发布系统
该系统是新闻发布系统的一个发展趋势,它用XML数据岛代替了数据库,XML是一个有序的数据文件,比数据库的读取速度更快,但操作起来没有数据库这么方便,但是由于开发技术难度大,该类系统现在市场很少见到。
综上所述,新闻发布系统就是一个把杂乱无章的新闻信息有效得组织起来并以有序的方式呈现给前端客户的一个信息系统,系统主要实现对新闻的分类,管理,检索,浏览等一系列问题,从而为用户提供一个美观,大方,快速的前台新闻阅读界面。
2.主要研究内容
针对具体的项目,实现该项目的系统架构和设计。
主要采用MVC三层架构模式,实现应用程序的松散耦合,在应用程序的各个层次以及层次之间,设计各种不同的应用模式,使得各个层次以及层次之间尽量达到松散耦合的程度。
3.课题的研究方法
本课题的研究方法主要采用理论学习和具体实践相结合的方法,通过对J2EE框架和设计模式的研究,详细探讨如何利用J2EE进行系统开发,通过分析和比较各种框架和设计模式的优点和不足,最终提出自己的见解。
4.进度安排
论文进展
时间
搜集资料、查阅文献
2011年1月1日至2011年1月31日
确定选题、整理开题报告
2011年2月1日至2011年3月7日
进行需求分析,确定总体解决方案
2011年3月7日至2011年3月15日
进行详细设计、编码、测试
2011年3月16日至2011年4月20日
整理毕业设计论文
2011年4月21日至2011年5月25日
毕业答辩
2011年5月27日至2011年5月29日