http://ajh-123.blog.163.com/blog/static/161727409201031455634475/

1.ActionServlet类:

是一个前端控制器,将request转发给RequestProcessor来处理。提供了一组能够被Action对象使用的方法:

(1) 动态的添加和删除,只影响应用程序当前的实例

public void addFormBean(ActionFormBean formBean)

public void removeFormBean(ActionFormBean formBean)

public void addForward(ActionForward actionForward)

public void removeForward(ActionForward actionForward)

public void addMapping(ActionMaping actionMapping)

public void removeMapping(ActionMaping actionMapping)

(2) 根据名称查找对象

public ActionFormBean findFormBean(String name)

public ActionForward findForward(String name)

public ActionMapping findMapping(String name)

(3) 用来处理数据源

public void addDataSource(String key, DataSource ds)

public DataSource findDataSource(String key)

(4) 使用destroy()方法结束ActionServlet

(5) 使用reload()方法从struts配置文件将信息重新加载。

2.ActionMapping类:

ActionMapping类是ActionConfig的子类,实质上是对struts-config.xml的一个映射类,从中可以取得所有的配置信息。将特定请求映射到特定Action的相关信息存储在ActionMapping中,ActionServlet将ActionMapping传送到 Action类的perform()方法,Action将使用ActionMapping的findForward()方法,此方法返回一个指定名称的 ActionForward,这样Action就完成了本地转发。若没有找到具体的ActionForward,就返回一个null。 ActionMapping类的方法:

(1) 可以在映射中动态添加ActionForward

public ActionForward findForward(String name)

(2) 可以返回与映射关联的表单bean

public void addForward(ActionForward forward)

(3) 可以返回映射的属性域(回话或请求)

public String getName()

(4) 可以返回映射的作用域

public String getScope()

3.RequestProcessor类

根据提交过来的url,如*.do从ActionMapping中得到相应的ActionForm和Action,然后将request参数对应到 ActionForm中,进行验证(ActionForm不光要对传入的paramter进行存储,也要校验?)。如果验证通过则调用Action的execute()方法来执行Action,最终返回ActionForward。

4.ActionForward类:

是对mapping中一个forward的包装,对应于一个url。

5.Action类:是框架包的核心,链接客户请求和业务操作,真正实现应用程序的事务逻辑,负责处理请求。其方法有:

(1) 所有Action类都扩展org.apache.struts.action.Action类,且覆盖类中定义的一个execute()方法(重载有多个)。

处理非HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form,ServletRequest request, ServletResponse response) thorws IOException, ServletException

处理HTTP请求:

public ActionForward execute(ActionMapping action, ActionForm form, HttpServletRequest request, HttpServletResponse response) thorws IOException, ServletException

(2) 可以获得或设置与请求相关联的区域:

public Local getLocal(HttpServletRequest request)

public void setLocal(HttpServletRequest request, Local local)

(3) 为应用程序获得消息资源:

public MessageResources getResources()

(4) 检查用户是否点击表单上的“取消”键,如果是,返回true:

public Boolean isCancelled(HttpServletRequest request)

(5) 当应用程序发生错误时,Action类存储错误信息:

public void saveErrors(HttpServletRequest request, ActionErrors errors)

6.DispatchAction类:

Struts提供了多种Action供选择使用。普通的Action 只能通过调用execute执行一项任务,而DispatchAction可以根据配置参数执行,而不是仅进入execute()函数,这样可以执行多种 任务。如insert,update等。LookupDispatchAction可以根据提交表单按钮的名称来执行函数。

struts1 核心类的更多相关文章

  1. cesium核心类Viewer简介

    1.简单描述Viewer Viewer类是cesium的核心类,是地图可视化展示的主窗口,cesium程序应用的切入口,扮演必不可少的核心角色. 官网的英文解析如下: A base widget fo ...

  2. Webwork 学习之路【03】核心类 ServletDispatcher 的初始化

    1. Webwork 与 Xwork 搭建环境需要的的jar 为:webwork-core-1.0.jar,xwork-1.0.jar,搭建webwork 需要xwork 的jar呢?原因是这样的,W ...

  3. Hibernate核心类用法-使用Transaction管理事务

    一个典型的事务应该使用下面的形式 在创建完Session对象后即使用beginTransaction()启动事务 从此开始直到commit()之间的代码 都会处于同一个事务中 这两个函数之间所有的数据 ...

  4. 理解Lucene索引与搜索过程中的核心类

    理解索引过程中的核心类 执行简单索引的时候需要用的类有: IndexWriter.ƒDirectory.ƒAnalyzer.ƒDocument.ƒField 1.IndexWriter IndexWr ...

  5. android的消息处理有三个核心类:Looper,Handler和Message。

    android的消息处理机制(图+源码分析)——Looper,Handler,Message   作为 一名android程序员,我学习android的一大乐趣是可以通过源码学习google大牛们的设 ...

  6. codeigniter框架扩展核心类---实现前台后台视图的分离

    1. 扩展核心类,主要作用就是扩展系统现在的功能. 为前台增加独立的视图文件夹: a. 自定义路径常量 :在application ->config/  constants.php中增加 /*m ...

  7. Activiti源码分析(框架、核心类。。。)

    http://jiangwenfeng762.iteye.com/blog/1338553 Activiti是业界很流行的java工作流引擎,关于Activiti与JBPM5的关系和如何选择不是本文要 ...

  8. Spring Security——核心类简介——获得登录用户的相关信息

    核心类简介 目录 1.1     Authentication 1.2     SecurityContextHolder 1.3     AuthenticationManager和Authenti ...

  9. lucene原理及源码解析--核心类

    马云说:大家还没搞清PC时代的时候,移动互联网来了,还没搞清移动互联网的时候,大数据时代来了. 然而,我看到的是:在PC时代搞PC的,移动互联网时代搞移动互联网的,大数据时代搞大数据的,都是同一伙儿人 ...

随机推荐

  1. FastPolice项目总结

    This is the final homework for spatial information Mobile Service Lesson.It generally inclusived the ...

  2. 使用dynatrace+showslow进行前端性能测试

    1.背景 应用的性能测试与优化目前主要停留在服务器端的反馈,而对于前端性能标准的研究与测试相对比较空白,缺乏统一的标准与工具.众所周知,浏览器html组件的下载及渲染性能直接影响最终的用户体验,目前应 ...

  3. sqlserver 用户、账号、安全等问题小汇

    一.孤立账号 SQL Server 的用户安全管理分两层,整个SQL Server 服务器一层,每个数据库一层. 在服务器层的帐号,叫登录账户(SQL Server:服务器角色),可以设置它管理整个S ...

  4. MVC部分视图(Partial View)

    分部视图,也就是整体视图的一部分.单个视图页面展示在整体页面之上,使用步骤如下 1.创建视图数据也就是viewmodel public class FooterViewModel { public s ...

  5. qsort函数详解

    C语言标准库函数 qsort 详解 文章作者:姜南(Slyar) 文章来源:Slyar Home (www.slyar.com) 转载请注明,谢谢合作. 原文链接:http://www.slyar.c ...

  6. BI 项目管理之角色和职责

          DW/BI 系统在生命周期中需要许多不同的角色和技能,它们来自业务和技术领域.本文将介绍创建DW/BI 系统所涉及的主要角色.角色和人之间很少是一对一关系.与我们合作的团队小到只有一人,大 ...

  7. iphone手机不同版本兼容、横竖屏

    /* 兼容问题*/ @media screen and (device-width: 320px) and (device-height: 480px) and (-webkit-device-pix ...

  8. win7 快捷键

    F F1 显示辅助 F2 重命名选定项目 F3 搜索文件或文件夹 F4 在 Windows 资源管理器中显示地址栏列表 F5 刷新活动窗口 F6 在窗口中或桌面上循环切换屏幕元素 F10 激活活动程序 ...

  9. 单例模式/singleton模式/创建型模式

    Java实现要点: 私有构造方法 线程安全(并发的考虑) 延迟加载(效率的考虑,对于较大的类在使用时在加载) 公有方法访问单一实例 常见单例模式代码及问题 //无延迟加载,常驻内存(即使不使用) cl ...

  10. 在Asp.Net MVC中PartialView与EditorFor和DisplayFor的区别

    相同之处: PartialView, EditorFor 和 DisplayFor 都可以用作来实现页面的公共部分,其他页面可以根据需求来引用. 不同之处: PartialView 是从Page的角度 ...