当前位置:文档之家› 基于Struts2框架的信息发布系统的设计与初步实现

基于Struts2框架的信息发布系统的设计与初步实现

第一章Struts2的起源和发展说到网络应用很难让人不联想到网络信息的浏览,自从Internet进入民用领域之后,上网成为了越来越多的人闲暇时光的消磨手法。

于是网络系统的开发也变得越来越总要。

1.1 Web技术的发展随着Internet技术的大面积应用和发展,传统的静态HTML页面由于缺乏足够的用户交互能力已经无法满足日益膨胀的网络需求。

人们希望Web应用中能够包含更多的动态交互功能,于是为了应对拥有更广泛用户群的动态Web开发,软件开发商分别推出的ASP和JSP两款动态网站开发解决方案。

但是当时的JSP 开发并没有很科学的层次设计,最初的JSP开发中逻辑代码和前端代码杂合在一起。

虽然在最初开发时这样的做法使得开发非常的容易,然而随着Web系统的使用越来越广泛,应用规模的日益增长,如果继续使用传统的简单的JSP + Servlet 结构进行Web系统的开发,则会由于系统层次混乱而导致系统的开发难度和维护成本越来越大,最终使开发过程陷入困境。

1.2 MVC思想进入Web系统开发面对开发过程中所出现的困难,开发者们试图寻找一种能够使得开发结构更加具有条理性的开发模式。

根据以往面向对象系统设计的经验,开发者开始将MVC开发模式引入Web系统的开发。

MVC模式将一个应用分为三个基本部分:Model(模型)、View(视图)、Controller(控制器)。

在此模式中触发事件由控制器捕获,并根据事件的类型来改变模型和视图。

这样既可将系统模型与视图分离,从而使各部分能够工作在最小的耦合状态下协同工作,从来提高系统的扩展性和可维护性。

将其引入Web系统开发后,系统模式由传统的JSP完成用户请求和响应改变为由控制器捕获用户请求,JavaBean完成模型操作,而JSP专门负责响应用户需求。

老一代的开发框架Struts1便是这时的产物。

1.3 Struts2开发框架的成型随着Struts1框架在Web系统开发中的大量应用,越来越多的使用者发现Struts1有着许多不可避免的缺陷。

首先,Struts1只支持JSP作为表现层,然而并不是所有的Web系统都必须使用JSP进行信息反馈。

其次,Struts1编写业务逻辑控制器时,必须调用大量Servlet API,而这些接口都是依赖于Web服务器的。

这样就造成了业务逻辑测试无法脱离Web容器,造成了测试的困难。

最后,由于大量的Servlet API使用,使得系统结构混乱,使得这些业务逻辑在使用其他框架是需要大量重写,降低了代码使用效率。

为了应对这些问题,Struts2去除了业务逻辑中对于Servlet API的耦合,使得业务逻辑类不需要继承任何Struts2基类,降低了测试难度,也加强了Action类的可移植性。

1.4 本章小结本章从Web系统开发的发展历程入手,讲述了Web系统开发模式的变化,从而引出了Struts框架的起源,描述了Struts1的出现,以及所带来的问题。

并由此解释了Struts2出现的目的,和解决的问题。

第二章Struts2框架的基本原理学习一个框架,我们首先要了解他的工作原理和基本工作方式,由此才能够进行后续的学习和使用,本章从基本的流程开始讲解Struts2的基本原理和相关配置。

2.1 Struts2的事务处理流程相对于Struts1框架,Struts2为了使业务逻辑控制与Servlet容器的API分离而大量使用了拦截器来处理用户的请求。

首先由Struts2的核心控制器拦截到用户在浏览器中发送的请求,然后核心控制器根据请求调用适当的Action进行处理。

然后根据Action返回的参数选择对应处理方式将处理的结果返回给浏览器。

2.2 Struts2的基本配置Struts2的基本配置主要包括三个部分:站点设置、核心设置控制器、业务控制器设置。

2.2.1 为站点添加Struts2框架支持要使用Struts2框架开发就必须要将Struts2框架嵌入到当前的Web系统中,为Web系统提供相关支持。

那么我们需要被指配置WEB-INF路径下的web.xml 文件,将Struts2的核心控制器键入系统。

该Web.xml文件在开发过程中该文件会存在与源代码目录中。

具体设置比较简单,只需要将web.xml中的filter标签配置为:<filter> <filter-name> Struts2</filter-name><filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class></filter><filter-mapping><filter-name>Struts2</filter-name><url-pattern>/*</url-pattern></filter-mapping>这样设置之后系统将会调用struts2框架的FilterDispatcher组件处理由客户端发送的请求,就完成了系统Struts2框架的添加。

2.2.2 Struts2的控制器组件完成了Struts2框架的添加,我们可以尝试写一个业务的控制器组件。

一个控制器组件主要用来处理用户提交的请求,这些请求大多数情况下会有参数传递,于是一个控制器(Action)类就需要包括用于读取这些参数的函数,在Struts2框架中这些操作需要靠编写响应的设置(setter)和获取(getter)函数来完成。

同样的,Struts2框架要求改控制类完成的操作需要通过相应的执行(execute)函数来完成。

下面是一个样例:public class LoginAction {//需要传递的参数protected String username;//参数的Setter和Getter函数public void setUsername(String user) ;public void setUsername(String user) ;//执行函数public String execute() throws Exception {//返回结果值return null;}}2.2.3 Struts2框架文件的设定有了控制器类我们要做的就是将控制器置入系统,所以我们需要设计一个调用打的方式,并设定一个处理控制器返回结果的方式。

这就是这一步需要配置的工作。

比如上面的LoginAction类,我们可以这样设置:<package extends="struts-defaults" name="strutspkg" namespace="/"><action class="javaAction.LoginAction" method="" name="Login"><result name="success" type="dispatcher">/welcome.jsp</result><result name="input" type="dispatcher">/login.jsp</result></action></package>这里action标签就是我们需要配置的部分,上面的内容表示当调用Login动作的时候,系统会使用我们编写的类包javaAction中的LoginAction类来处理这条请求。

并且当其执行函数返回success时会跳转至welcome.jsp页面继续下一步工作,而返回input是则会跳回登陆界面提示登陆。

这样Struts2框架基本就可以工作了。

2.3 本章小结本章主要讲述了Struts2框架的工作流程和配置要点,并说明了各个组件的作用,基本说明了一个Struts2系统开发框架的搭建步骤。

第三章Struts2框架开发简单的信息发布系统前面已经简要说明了Struts2框架的基本原理和基本配置方式,那么接下来我们将会通过一个小心信息发布系统的开发来详细描述Struts2框架的应用方式。

3.1 信息发布系统的分析与建模类似所有的系统开发,没个系统都需要进行完善的分析与设计,只有这样才能够对后续的开发进行把握。

3.1.1 系统的可行性分析可行性研究用来判断系统目标和规模是否显示,以及系统完成后能否达到预计的目的。

所以经过了初步的设计和调查后得出以下三点可行性分析:1.技术可行性本次系统主要为学习和了解Struts2开发模式,因此只需要实现信息发布系统的基本功能,所以程序结构上比较简单。

整个应用核心部分使用Struts2框架作为核心解决方案,使用基本的JavaBean进行后台数据库操作,并使用JSP页面进行信息响应。

2. 经济可行性本次开发使用的所有软件都是网上发布的开源版本或者相关软件的免费版本,使用的相关参考都源自有经验的开发者的无私分享,所以开发成本基本为零。

且本次开发的目的仅限于学习和了解新兴的开发架构,亦不需要达成任何经济效应。

因此,可以认为开发本系统在经济上是可行的。

3. 操作可行性本系统的开发参照了目前主流信息服务站点的设计结构,采取了相似的设计思路,基本满足了用户的需求。

因此,本系统在操作上也是基本可行的。

3.1.2 系统的需求分析本系统是一个信息发布系统,所以需要有信息发布与显示功能。

对于信息显示部分,我们需要设置专门的发布员进行信息的发布和管理。

而对于浏览部分,我们需要设置分类浏览和总体浏览。

对于浏览的信息,它必须要拥有标题,并标示出他的作者和发布的日期。

同时为了配合分类浏览功能,一跳信息还必须同时具有分类属性,便于分类浏览时作为参照。

这样就满足了一个基本的信息发布平台的需求。

3.1.3 系统的总体功能分析通过参考各种信息发布系统,从自身的理解进行分析,对各种需求进行整理后认为,本系统需要具备的功能主要有:信息登录、信息修改、信息浏览三个主要功能,并且配合这三大基本功能选择实现其他配套功能。

由此,本系统最终的规划功能有:信息发布系统的首页,包括发布员的注册与登录,浏览各种分类新闻。

信息发布系统的浏览页面,显示信息的详细信息。

信息发布系统的登陆页,为新闻发布员提供登录服务。

信息发布系统的注册页,为发布员提供注册服务。

信息发布系统的发布员页面,显示发布员发布的信息。

本系统的系统结构图如下图3.1所示图3.1 系统功能模块对应的系统应该分为以下几个模块,如图3.2所示图3.2 系统功能模块3.1.4 系统用例图设计由于信息发布系统需要面对游客和发布员两类人群,所以需要设计两种模式。

相关主题