struts学习笔记之(1)—基本概念

本文介绍了Struts作为Web框架的基本概念,强调了框架在软件开发中的重用性和可扩展性。Struts遵循MVC模式,由Controller、Business Logic和Data Logic三层组成。Controller由ActionServlet实现,Business Logic通过ActionFormBean表达系统状态,Data Logic涉及数据访问技术如EJB、JDBC。Struts还包含一组自定义标签库简化JSP视图创建,并通过Action、ActionMapping和ActionForward协调业务逻辑。核心包action包含了Struts框架的关键组件。
摘要由CSDN通过智能技术生成

Struts结构与Mysql 的BBS论坛编译

Struts

一、Framework

struts是一个web framework,framework可以简单理解为框架,人们可以将充裕的时间用来分析、构建业务逻辑的应用上,而非繁杂的代码工程。于是人们将相同类型问题的解决途径进行抽象,抽取成一个应用框架。这也就是我们所说的Framework。Framework的体系提供了一套明确机制,从而让开发人员很容易的扩展和控制整个framework开发上的结构。

 

框架的定义

在设计模式中,Gamma等人为框架给出了一个明确定义:“框架(Framework)是一组协同工作的类,它们为特定类型的软件构筑了一个可重用的设计”。

框架是一组为相互协作的构件(Component)的集合,它能够处理一个或多个问题域(Domain)中的一系列问题。框架强调的是软件设计的重用性和系统的可扩充性。它是为了追求重用所带来的价值量最大化,而将被重用最多的部分封装成各个组件,辅以回调机制将它们纳入框架的控制范围之内。所以,框架提供了可在应用程序之间共享的可复用的公共结构。

 

通过基于请求响应(Request-Response)模式的应用framework,基本上有如下几个表现逻辑结构组成。 Controller、businesslogical、datalogic

(1)控制器(Controller——控制整个framework中各个组件的协调工作。

(2)业务逻辑层(Business Logic——这是framework所希望解决问题的关键。当然对framwork本身来说,这里仅仅只是概念和几个提够服务的基础组件,真正的实现与客户的业务逻辑接轨,还需要开发人员在framework上再次扩展。

(3)数据逻辑层(Data Logic——绝大应用系统都需要涉及到数据交互,这一层次主要包括了数据逻辑和数据访问接口。对于数据逻辑来说,如果你了解数据建模(DataModeling)可能就很容易理解。

 

MVC

MVC 模式结构

MVC 模式将应用分为模型、视图和控制器三个部分:

1. 视图:数据的展现。

视图是用户看到并与之交互的界面。视图向用户显示相关的数据,并能接收用户的输入数据,但是它并不进行任何实际的业务处理。视图可以向模型查询业务状态,但不能改变模型。视图还能接受模型发出的数据更新事件,从而对用户界面进行同步更新。

2. 模型:应用对象。

模型是应用程序的主体部分。模型代表了业务数据和业务逻辑;当数据发生改变时,它要负责通知视图部分;一个模型能为多个视图提供数据。由于同一个模型可以被多个视图重用,所以提高了应用的可重用性。

3. 控制器:逻辑处理、控制实体数据在视图上展示、调用模型处理业务请求。

Web 用户单击 Web 页面中的提交按钮来发送 HTML 表单时,控制器接收请求并调用相应的模型组件去处理请求,然后调用相应的视图来显示模型返回的数据。

 

 

三层体系结构是将整个系统划分:

 

1)表现层(Presentation layer):包含表示代码、用户交互GUI、数据验证。

该层用于向客户端用户提供GUI交互,它允许用户在显示系统中输入和编辑数据,同时系统提供数据验证功能。

2)业务逻辑层(Business layer):包含业务规则处理代码,即程序中与业务

相关专业算法、业务政策等等。该层用于执行业务流程和制订数据的业务规则。业务逻

辑层主要面向业务应用,为表示层提供业务服务。

3)数据持久层(Persistence layer):包含数据处理代码和数据存储代码。数

据持久层主要包括数据存取服务,负责与数据库管理系统(如数据库)之间的通信。

三个层次的每一层在处理程序上有各自明确的任务,在功能实现上有清晰的区分,

各层与其余层分离,但各层之间存有通信接口。

二、Struts的概念、体系结构

含有一组相互作用的组件——serlvet\jsp组成。属于MVC设计模式.。Struts有其自己的控制器(Controller),同时整合了其他的一些技术去实现模型层(Model)和视图层(View)。

 

模型层,Struts可以很容易的与数据访问技术相结合,包括EJB,JDBC和Object Relation Bridge。

视图层,Struts能够与JSP, Velocity Templates,XSL等等这些表示层组件想结合。

 

2.1下面分别从MVC三个角度分析:

1.从视图角度(View)

主要由JSP建立,struts自身包含了一组可扩展的自定义标签库(TagLib),可以简化创建用户界面的过程。目前包括:BeanTags,HTML Tags,Logic Tags,Nested Tags,Template Tags 

 2.从模型角度(Model)

模型主要是表示一个系统的状态(有时候,改变系统状态的业务逻辑操作也也划分到模型中)。在Struts中,系统的状态主要有ActiomFormBean体现,一般情况下,这些状态是非持久性的。如果需要将这些状态转化为持久性数据存储,Struts本身也提供了Utitle包,可以方便的与数据库操作

3.从控制器角度(Controller)

在Strutsframework中,Controller主要是ActionServlet,但是对于业务逻辑的操作则主要由Action、ActionMapping、ActionForward这几个组件协调完成(也许这几个组件,应该划分到模型中的业务逻辑一块)。其中,Action扮演了真正的业务逻辑的实现者,而ActionMapping和ActionForward则指定了不同业务逻辑或流程的运行方向。

 

2.2 Struts包

整个struts大约有15包,近200个类所组成,其中action是整个struts framework的核心。

org.apache.struts.action

基本上,控制整个strutsframework的运行的核心类、组件都在这个包中,比如我们上面提到的控制器ActionServlet。已经Action,ActionForm,ActionMapping等等。

org.apache.struts.actions

这个包是主要作用是提供客户的http请求和业务逻辑处理之间的特定适配器转换功能,

 org.apache.struts.config

提供对配置文件struts-config.xml元素的映射

Strtuts为了更好支持webapplication的应用,体统了一个些常用服务的支持,比如ConnectionPool和MessageSource。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值