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. CSDN-markdown编辑器

    欢迎使用Markdown编辑器写博客 本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 图片链接 ...

  2. 三、jQuery--Ajax基础--Ajax全接触--Ajax在JS中的应用

    Ajax的全称:Asynchronous JavaScript And XML(异步的 JavaScript 和 XML). Ajax不是某种编程语言,是一种在无需重新加载整个网页的情况下能够更新部分 ...

  3. AJAX 三级联动

    新的封装类 <?php class DBDA { public $host="localhost";//服务器地址 public $uid="root"; ...

  4. gitlab 建仓的流程

    repository:仓库 Git global setup: git config --global user.name "Administrator" git config - ...

  5. C/C++学习笔记---高地址、低地址、大段字节序、小段字节序

    字节顺序是指占内存多于一个字节类型的数据在内存中的存放顺序,通常有小端.大端两种字节顺序. 小端字节序指低字节数据存放在内存低地址处,高字节数据存放在内存高地址处: 大端字节序是高字节数据存放在低地址 ...

  6. Dubbo应用与异常记录

    结合项目里使用暴露出的问题,对并发较多的核心业务或者对请求失败等敏感的业务场景不太建议使用Dubbo, 如电商的购买等行为,使用Dubbo就必须阅读源码,熟悉相关机制,或者直接自己造轮子. >& ...

  7. git 使用技巧

    让git不检测文件权限 在android根目录执行:repo forall -c git config core.filemode false即可 修改默认编辑器: git config –globa ...

  8. 攻城狮在路上(贰) Spring(三)--- Spring 资源访问利器Resource接口

    Spring为了更好的满足各种底层资源的访问需求.设计了一个Resource接口,提供了更强的访问底层资源的能力.Spring框架使用Resource装载各种资源,包括配置文件资源.国际化属性文件资源 ...

  9. PHPCMS-V9 获取一级栏目、二级栏目、三级栏目

    <!-- 获取一级栏目 -->{pc:content action=" siteid="$siteid" order="listorder ASC& ...

  10. php获取当前页面的完整url

    javascript实现: top.location.href 顶级窗口的地址 this.location.href 当前窗口的地址 php实现: //测试网址: http://localhost/b ...