菜鸟学习Struts——总结
一、原理
客户端请求到ActionSeverlet,ActionSeverlet负责截URL进行分发分发到每一个Action上,Action负责和Model打交道然后把相关信息返回到ActionSeverlet ,ActionSeverlet在返回到jsp。
二、总结。
Struts体系结构实现了MVC设计模式的概念,它将Model、View和Controller分别映射到Web应用中的组件。Controller负责控制流程,由ActionServlet负责读取struts-config.xml,并使用ActionMapping来查找对应的Action;Model由ActionForm来构建;View是由JSP和Struts提供的自定义标签来实现。
Struts有五个核心类:
ActionSvervlet:
用来接收用户请求和状态改变,以及发出视图选择。当ActionServlet接收到HTTP Request的时候,
调用process()方法,将Request()转发给RequestProcessor来处理。
在一般情况下,我们不需要自己实现或者修改ActionServlet类,仅仅通过在web.xml中进行配置直接
使用就可以了。在某些情况下,我们可以自己扩展ActionServlet类,从ActionServlet继承,实现自己的
ActionServlet。
ActionMapping:
ActionMapping是ActionConfig的子类,实质上是对struts-config.xml的一个映射,从中可以取得所有配
置信息。
Action:
控制器的一部分,用于模型交互,执行状态改变或状态查询,高数ActionServlet下一个选择的视图。
Action类是实现整个体系的核心部分,它在客户请求、界面表示和业务逻辑之间起到一个桥梁的作用。
每一个Action是用来执行一个业务操作。
ActionForward:
ActionForward是对struts-config.cml配置的mapping元素的forward属性的包装。在Action的excute方法
中返回一个ActionForward类。ActionForward把配置文件中forward部分的信息包装起来,减少了应用程序
和物理资源信息之间的耦合性。
ActionForm:
用来保存用户表单信息,它的所有属性应该满足get和set对应。对于一些复杂的系统可以采用
DynaActionForm来构造动态的Form。
以上是Struts的核心类,通过我查阅资料下面让我们从用户操作的角度来理解当一个ActionServlet接收到一个客户请求时的流程,如下图:
三、感受。
         通过Struts的学习对Struts有了一个基本的了解,对Struts的基本原理有了一定的掌握,还有对Struts框架中的标签库,scope属性,ActionForm、国际化的应用有了一个初步的了解。一开始学习的时候没啥感觉。等学完以后才发现学习这个框架与学习Javascript和JQuery有点相似,JQuery是javascript的一个封装好的框架,说框架说的其实有点太专业说白了就是javascript的函数库别人封装好的就像我们自己封装的SQLHelper一样。而Struts呢是Java封装的一个函数库。Struts为我们封装优化了MVC,使得MVC使用起来更高效,更快捷。就像JQuery一样。JQuery帮我们封装了Javascript让我们使用起来更加方便。
菜鸟学习Struts——总结的更多相关文章
- 菜鸟学习Struts——简易计算器
		
这是学习Struts的一个简单的例子文件结构如下: 1.配置Struts环境 2.新建input.jsp,success.jsp,error.jsp input.jsp代码如下: <%@ pag ...
 - 菜鸟学习Struts——配置Struts环境
		
刚开始学习Struts,它通过采用JavaServlet/JSP技术,实现了基于Java EEWeb应用的MVC设计模式的应用框架,是MVC经典设计模式中的一个经典产品. 要用到Struts就要学会配 ...
 - 菜鸟学习Struts——国际化
		
一.概念 国际化:界面上的语言可以根据用户所在的地区改变显示语言. 如图: 二.实例 下面就一步一步的教大家利用Struts实现国际化. 1.编写资源文件 这个资源文件就是界面上显示的字符,资源文件里 ...
 - 菜鸟学习Struts——Scope属性
		
一.概念. 在Action映射配置中,Scope属性可以取值为:request或session.Scope属性表示:Struts框架在将 ActionForm对象(与目标Action匹配的Ac ...
 - 菜鸟学习Struts——bean标签库
		
一.Struts标签库. Struts实际上包含了4个标签库:bean,logic,html,tiles bean:用来在属性范围中定义或取得属性的,同时可以读取资源文件信息 logic:替代JSTL ...
 - 菜鸟学习SSH——目录
		
菜鸟学习Struts--配置Struts环境 菜鸟学习Struts--简易计算器 菜鸟学习Struts--bean标签库 菜鸟学习Struts--Scope属性 菜鸟学习Struts--国际化 菜鸟学 ...
 - 【菜鸟学习jquery源码】数据缓存与data()
		
前言 最近比较烦,深圳的工作还没着落,论文不想弄,烦.....今天看了下jquery的数据缓存的代码,参考着Aaron的源码分析,自己有点理解了,和大家分享下.以后也打算把自己的jquery的学习心得 ...
 - 菜鸟学习Andriod-弹窗
		
菜鸟学习Andriod-弹窗 return new AlertDialog.Builder(ZyScreenSaver.this).setIcon( R.drawable.ic_launcher).s ...
 - 菜鸟学习Spring——60s配置XML方法实现简单AOP
		
一.概述. 上一篇博客讲述了用注解的形式实现AOP现在讲述另外一种AOP实现的方式利用XML来实现AOP. 二.代码演示. 准备工作参照上一篇博客<菜鸟学习Spring--60s使用annota ...
 
随机推荐
- 浅析人脸检测之Haar分类器方法
			
一.Haar分类器的前世今生 人脸检测属于计算机视觉的范畴,早期人们的主要研究方向是人脸识别,即根据人脸来识别人物的身份,后来在复杂背景下的人脸检测需求越来越大,人脸检测也逐渐作为一个单独的研究方向发 ...
 - OC项目中使用Swift
			
1.在OC工程中新建 Swift 文件,会提示的是否创建一个桥接文件,创建不创建都无所谓,这个桥接文件主要是用来包含OC头文件的,主要用于Swift中使用OC 2.在Person.sw ...
 - 断言--NSAssert
			
NSAssert()是一个宏,用于开发阶段调试程序中的Bug,通过为NSAssert()传递条件表达式来断定是否属于Bug,满足条件返回真值,程序继续运行,如果返回假值,则抛出异常,并切可以自定义异常 ...
 - 运行时---关联Associated
			
关联:指把两个对象相互关联起来,使得其中的一个对象作为另外一个对象的一部分 一.在类的定义之外为类增加额外的存储空间 使用关联,我们可以不用修改类的定义而为其对象增加存储空间.这在我 ...
 - SQO (标准查询运算符)方法 & Linq To Object
			
#region SQO (标准查询运算符) 方法 #region Where() Find() FindAll() FirstOrDefault()等方法 static void c01where() ...
 - oracle中行转列、列转行函数
			
多行转字符串 这个比较简单,用||或concat函数可以实现 select concat(id,username) str from app_user select id||username str ...
 - cacti yum快速部署
			
简述:本来是编译安装的,由于编译过程中库文件关联太多,安装文件一定要有顺序性,报错太多,到了rrdtool这一步说什么都安装不过去了,由于时间问 题,选择了yum安装,对于编译安装,这个要简单多了,她 ...
 - 【缓存】.net中Cache管理操作
			
隐藏行号 复制代码 ? 这是一段程序代码. using System; using System.Web; using System.Web.Caching; using System.Collect ...
 - Save a bricked Samsung Note 3 and do extraction
			
The case scenario was about bank robery and the suspect threw his Samsung Note 3 into the river. For ...
 - Threatening letter in Naver Line App
			
A suspect sent a threatening letter in Naver Line App to Richman, and said that he wanted those mone ...