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

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章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标签配置为:

Struts2

org.apache.struts2.dispatcher.FilterDispatcher

Struts2

/*

这样设置之后系统将会调用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类,我们可以这样设置:

相关文档
最新文档