关于Struts框架简介
一,什么是框架? 所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑。
二,MVC设计模式
将应用程序分为3个部分:模型 Model,视图View,控制器Controller;
模型组件:负责业务逻辑; 模型包含应用程序的核心功能。模型封装了应用程序的状态。有时它包含的唯一功能就是状态。它对视图或控制器一无所知。
视图组件:负责表示业务范围的视图; 视图提供模型的表示。它是应用程序的 外观。视图可以访问模型的读方法,但不能访问写方法。此外,它对控制器一无所知。当更改模型时,视图应得到通知。
控制器组件:负责控制用户输入的流和状态; 控制器对用户的输入作出反应。它创建并设置模型。
Struts,它是使用 servlet 和 JavaServer Pages 技术的一种MVC 实现; Struts,Apache组织的一个项目,MVC 的一种开放源码实现;
三,什么是Struts框架 Struts 是一组相互协作的类、servlet 和 JSP 标记组成的一个可重用的 MVC 2 设计。 这个定义表示 Struts 是一个框架,而不是一个库,但 Struts 也包含了丰富的标记库和独立于该框架工作的实用程序类。
四,Struts 概览
1,Client browser(客户浏览器) 来自客户浏览器的每个 HTTP 请求创建一个事件。Web 容器将用一个 HTTP 响应作出响应。
2,Controller(控制器) 控制器接收来自浏览器的请求,并决定将这个请求发往何处。就Struts而言,控制器是以 servlet 实现的一个命令设计模式。 struts-config.xml 文件配置控制器命令。
3,业务逻辑
业务逻辑更新模型的状态,并帮助控制应用程序的流程。就Struts而言,这是通过作为实际业务逻辑“瘦”包装的 Action 类完成的。
4,Model(模型)的状态 模型表示应用程序的状态。业务对象更新应用程序的状态。
ActionForm bean 在会话级或请求级表示模型的状态,而不是在持久级。 JSP 文件使用 JSP 标记读取来自 ActionForm bean 的信息。
5,View(视图) 视图就是一个 JSP 文件。其中没有流程逻辑,没有业务逻辑,也没有模型信息 —— 只有标记。
标记是使 Struts 有别于其他框架(如 Velocity)的因素之一。
五, Struts中的Controller(控制器) 命令设计模式的实现: Struts 的控制器将事件(事件通常是 HTTP post)映射到类的一个 servlet.
ActionServlet (Command) 创建并使用 Action 、 ActionForm 和 ActionForward . 通过struts-config.xml 文件配置该 Command.从而扩展 Action 和 ActionForm 来解决特定的问题。 可以通过扩展 ActionServlet 来添加 Command 功能。
在Struts框架中控制器组件由三个部分构成:
1,消息控制模块; 用户所有的提交请求都发往消息控制模块,在由消息总线模块根据视图映射模块找到消息处理模块来执行处理逻辑。
消息控制模块接收所有用户的请求,并根据请求视图找到处理。 Strtus中通过ActionServlet和RequestProcessor类来完成。
2,消息处理模块; 该模块执行该消息的逻辑处理,因此通常由用户扩展实现。 Struts中通过Action类来实现。
3,视图映射模块; 控制器逻辑和视图逻辑之间的结合是通过配置模块和配置文件建立其的链接。 Struts中配置模块通过ModuleConfig类来完成,而配置文件由struts-config.xml文件提供。
六,Struts中的View(视图) 视图组件通过JSP组件实现的。Struts框架对视图组件进行了扩展和封装。
Struts对视图的扩展提供了一组扩展服务器标签用来提供视图显示以及传递数据到处理缓冲,而处理缓冲由ActionForm的扩展类来实现。
Struts框架利用ActionForm Bean来实现视图与控制器之间的数据的交互,维持会话级或请求级的模型的状态。
服务器标签主要包括:Html视图标签;Logic逻辑流程控制标签;Bean数据缓冲读取标签;
七,Struts中的Model(模型)
1,Struts框架中并没有定义特定的模型组件,而是希望由用户自己决定选择合理的模型组件。
J2EE中可用的模型组件包括:JavaBean 用户定义组件;EJB 组件,由EJB容器实现组件;JDO 未来J2EE数据访问模型;一些扩展框架如:Hibernate;
2,模型中状态的级别 会话级或请求级:ActionForm bean来维持 ; 持久级:模型组件来维持;
关于Struts框架简介的更多相关文章
- Struts框架的核心业务
Struts的核心业务 Struts核心业务有很多,这里主要介绍了比较简单一些的: 请求数据的处理,和数据自动封装,类型自动转换 1.Struts中数据处理 1.1.方式1:直接过去servletap ...
- Spring 系列: Spring 框架简介 -7个部分
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...
- Struts核心技术简介
Struts核心技术简介 1.Struts内部机制 Struts是一种基于MVC经典设计模式的开发源代码的应用框架,它通过把Servlet.JSP.JavaBean.自定义标签和信息资源整合到一个 ...
- Spring 系列: Spring 框架简介(转载)
Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...
- Struts 框架
struts简介 Struts是Apache软件基金会(ASF)赞助的一个开源项目.它最初是jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目.它通过采用JavaServlet/ ...
- Struts 2简介
Struts 2简介 Struts 2 编辑 同义词 Struts2一般指Struts 2 Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中 ...
- 《HiWind企业快速开发框架实战》(0)目录及框架简介
<HiWind企业快速开发框架实战>(0)目录及框架简介 本系列主要介绍一款企业管理系统快速开发框架,该框架旨在快速完成企业管理系统,并实现易维护可移植的目标. 使用逐个系统模块进行编码的 ...
- Struts框架
Struts是最早的Java开源框架之一,它是MVC设计模式的一个优秀实现. Struts定义了通用的Controller(控制器),通过配置文件(通常是 Struts -config.xml) Ec ...
- 使用Struts框架,实现用户登陆功能
前言:本篇文章是本人这周学习的一个小结,在自我总结的同时,希望也能够给其他同学带来一点帮助.本文主要知识是参照书本上的知识点以及网上其他博客文章,在上机操练后的所得,具体源码主要来自http://bl ...
随机推荐
- swift swizzle
SWIZZLE 由 王巍 (@ONEVCAT) 发布于 2015/09/30 Swizzle 是 Objective-C 运行时的黑魔法之一.我们可以通过 Swizzle 的手段,在运行时对某些方法的 ...
- 【XCode7+iOS9】http网路连接请求、MKPinAnnotationView自定义图片和BitCode相关错误--备用
更新了iOS9和XCode7,之后,Swift变成了2.0,有了新的语法习惯,iOS也加强了安全方面的限制.我们原本的项目就会出现不少问题.先来看我之前的项目中出现的3个错误吧和相关的解决办法吧. 1 ...
- JavaEE下载文件名不显示中文的问题
我们在做JavaEE项目下载文件时,在我们熟悉的UTF-8编码下经常会发现文件名中文乱码.中文不显示等状况,此时,将文 件名改一下编码或许会解决这个烦恼: fileName = new String( ...
- structDemo1
structDemo1 # include <iostream.h> # include <malloc.h> enum EType{ One = ,Tow,Three }; ...
- Qt 静态函数QMetaObject::connectSlotsByName(QObject * object)按命名规则自动connect,不需要手动connect
看别人代码看到void on_MyWidget_slotTest(); 就郁闷了,没看到他代码里有connect 却能把信号和槽可以连接起来. 今日回顾书本发现该函所的nb之处. QMetaObjec ...
- oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)
oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.o ...
- com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: SELECT command denied to user’
Linux环境 Mysql+Hibernate command denied to user 错误 错误信息 如下: com.mysql.jdbc.exceptions.jdbc4.MySQLSynt ...
- java学习之多生产者和多消费者
在上一节当中我们说道了,java多线程当中单个消费者对应单个生产者的关系.这个时候有几个点需要注意一下,第一个就是把if判断flag的语句改成while这样能够避免,比如如果我们这个时候用if的话判断 ...
- VirtualBox设置共享文件夹和镜像访问的方法
VirtualBox设置共享文件夹和镜像访问的方法 virtualBox是一款虚拟机软件,可以在该软件上安装各类的操作系统,至于如何安装请参见另外一篇经验<如何使用VirtualBox安装win ...
- javascript时间、随机数
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...