一,什么是框架?  所谓框架就是提供了一组统一的接口和编程方式的可以重用组件,同时我们可以在框架中扩充我们自己的特定逻辑。

二,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来维持 ;   持久级:模型组件来维持;

Struts22222的更多相关文章

随机推荐

  1. 栈的理解和代码实现(java)

    从数据结构的角度来看,其实栈也是线性表.特殊性在于栈和队列的基本操作是线性表操作的子集,栈是操作受限制的线性表. 栈的定义 栈是限定仅在表尾进行插入或者删除操作的线性表.对于一个栈来说,表尾端有着特殊 ...

  2. FlowPortal-BPM——离线审批(邮箱审批)配置

    一.将系统文件复制到安装目录下 二.以管理员身份运行bat安装程序 三.开启邮件离线审批服务 四.创建数据库表(JAVA数据库 或 .Net数据库) 五.配置config文件(发件箱.收件箱.错误问题 ...

  3. python里有意思的文件查找glob模块

    python标准库之glob介绍 glob 文件名模式匹配,不用遍历整个目录判断每个文件是不是符合. 1.通配符 星号(*)匹配零个或多个字符 import glob for name in glob ...

  4. IntelliJ IDEA 18 周岁,吐血推进珍藏已久的必装插件

    IntelliJ IDEA是目前最好最强最智能的Java IDE,前几天,他刚刚年满18岁.  本文,给大家推荐几款我私藏已久的,自己经常使用的,可以提升代码效率的插件. IDEA插件简介 常见的I ...

  5. SQL语句01

    SQL(Structured Query Language):结构化查询语言 SQL分类:    数据操纵语言DML(Data Manipulation Language)        SELECT ...

  6. 搭建django环境

    一.安装django(两种方式) 1.pip install django 2.python setup.py install(下载gjango包:https://www.djangoproject. ...

  7. 那些H5用到的技术(6)——屏幕适配

    前言长屏适配单页适配参考 前言 曾经屏幕适配一直是个头疼的问题,各种坑,各种浏览器&设备兼容问题,好在的是,随着技术&标准的不断发展,这个问题得到了极大程度的解决,这篇文章主要对之前开 ...

  8. 网站安全系列:跨站脚本攻击XSS

    本篇博文主要从概念和应用上介绍XSS,主要内容来源于<白帽子讲web安全> XSS核心本质 XSS实际上是一种HTML注入,用户输入的数据被当成HTML的一部分来执行.防御方法核心是输入检 ...

  9. redis linux安装过程回顾

    1,官网wget http://download.redis.io/releases/redis-3.2.9.tar.gz 2,解压 tar zxf redis-3.2.9.tar.gz 后进入解压后 ...

  10. mongo 与 传统mysql语法对比

    MongoDB语法                                  MySql语法 db.test.find({'name':'foobar'})<==> select ...