1、读取配置(初始化ModuleConfig对象)

Struts框架总控制器(ActionServlet)是一个Servlet,
在web.xml中配置成自动启动的Servlet。
读取配置文件(struts-config.xml)的配置信息,
为不同的Struts模块初始化响应的ModuleConfig对象

2、发送请求
用户提交表单或调用URL向Web应用程序器提交一个请求,
请求数据用HTTP协议上传给Web服务器。

3、填充FORM(实例化、复位、填充数据、校验、保存)
(1)检查Action的映射,确定Action中已经配置了对ActionForm的映射
(2)根据name属性,查找form bean的配置信息
(3)检查Action的form bean的使用范围,确定在此范围下(request,session),是否已经有此form bean的实例
(4)假如当前范围下,已经存在form bean的实例。
而对当前请求来说,是同一种类型的话就重用,
否则,就重构一个form bean实例,并且保存在一定作用范围
(5)form bean的set()方法调用
(6)调用对应的setter()方法,对状态属性赋值
(7)如果validate的属性设置为true,那么就调用form bean的validate()方法
(8)如果validate()方法没有返回任何错误,控制器将ActionForm作为参数,传给Action实例的execute()方法并执行

注:直接从ActionForm类集成的reset()和validate()方法,并不能实现什么处理功能,
所以有必要自己重新覆盖

4、派发请求
控制器根据配置信息ActionConfig将请求派发到具体的Action,
响应的FormBean一并传给这个Action的execute()方法

5、处理业务
Action一般只包含一个execute方法,它负责执行响应的业务逻辑。
完毕返回一个ActionForward对象,控制器通过该ActionForward对象那个来进行转发工作

6、返回响应
Action根据业务处理的不同结果返回一个目标响应对象给总控制器,
该目标响应对象对应一个具体的JSP页面或另一个Action

7、查找响应
总控制器根据业务功能Action返回的目标响应对象,
找到对应的资源对象,通常是一个具体的JSP页面

8、响应用户
目标响应对象将结果展现给用户目标响应对象(JSP)
将结果展现给用户

Action Form的过程的更多相关文章

  1. windows form参数传递过程

    三.windows form参数传递过程 在Windows 程序设计中参数的传递,同样也是非常的重要的. 这里主要是通过带有参数的构造函数来实现的, 说明:Form1为主窗体,包含控件:文本框text ...

  2. MVC中Action的执行过程

    接着上一篇:MVC控制器的激活过程 一.代码现行,该伪代码大致解析了Action的执行的过程 try { Run each IAuthorizationFilter's OnAuthorization ...

  3. MVC系统学习7—Action的选择过程

    在Mvc源码的ControllerActionInvoker的InvokeAction方法里面有一个FindAction方法,FindAction方法在ControllerDescriptor里面定义 ...

  4. MVC中Action参数绑定的过程

    一.题外话 上一篇:MVC中Action的执行过程 ControllerContext 封装有了与指定的 RouteBase 和 ControllerBase 实例匹配的 HTTP 请求的信息. 二. ...

  5. Asp.net mvc 中Action 方法的执行(二)

    [toc] 前面介绍了 Action 执行过程中的几个基本的组件,这里介绍 Action 方法的参数绑定. 数据来源 为 Action 方法提供参数绑定的原始数据来源于当前的 Http 请求,可能包含 ...

  6. Asp.net mvc 中Action 方法的执行(一)

    [toc] 在 Aps.net mvc 应用中对请求的处理最终都是转换为对某个 Controller 中的某个 Action 方法的调用,因此,要对一个请求进行处理,第一步,需要根据请求解析出对应的 ...

  7. asp.net Core MVC + form validation + ajax form 笔记

    asp.net Core MVC 有特别处理form,controller可以自己处理model的验证,最大的优势是写form时可以少写代码 先了解tag helper ,这东西就是element上的 ...

  8. 解决下载ftp文件过程中,浏览器直接解析文件(txt,png等)的问题

    搭建了一个ftp服务器,供用户进行上传下载,在下载过程中发现,一些文件,例如txt,jpg,png,pdf等直接被浏览器解析了.在浏览器中显示其内容,没有下载. 下面通过网上查询得到一些解决方法: 最 ...

  9. 【struts 报错】 No action config found for the specified url

    1 type Exception report message org.apache.struts.chain.commands.InvalidPathException: No action con ...

随机推荐

  1. windows 安装nvm步骤(shi'yongnvm-windows管理node版本):

    瞎几把前言:mac上可以用n来管理node版本,私以为n很好用.家里的win7台式机一直没有安装过任何管理工具,今天来给家里电脑安装一下nvw-windows,一个用于windows系统的node版本 ...

  2. Beta 冲刺 (6/7)

    Beta 冲刺 (6/7) 队名:第三视角 组长博客链接 本次作业链接 团队部分 团队燃尽图 工作情况汇报 张扬(组长) 过去两天完成了哪些任务 文字/口头描述 组织会议 开发wxpy部分功能 展示G ...

  3. php源代码安装

    1.在官网下载php安装源文件.版本选择5的最新稳定版. [root@trial download]# wget http://cn.php.net/distributions/php-5.5.38. ...

  4. Codeforces Round #281 (Div. 2) D(简单博弈)

    题目:http://codeforces.com/problemset/problem/493/D 题意:一个n*n的地图,有两个人在比赛,第一个人是白皇后开始在(1,1)位置,第二个人是黑皇后开始在 ...

  5. Python 基于时间的进程通信

    import time from multiprocessing import Process,Event def f1(e): time.sleep(2) n = 100 print("子 ...

  6. linux c 获取console 结果

    getLine(char *line, const char *cmd) { FILE *pf = popen(cmd, "r"); if (pf == NULL) { ; } f ...

  7. Linux 分支那么多,这里可以帮你缩小选择范围

    Linux 分支那么多,这里可以帮你缩小选择范围 https://wiki.installgentoo.com/wiki/Babbies_First_Linux https://wiki.instal ...

  8. 文献--A Survey on Server-side Approaches to Securing Web Applications

    Q:1.如何定义XSS攻击? 2.taint-based 啥意思? 3. second-order vulnerabilities 啥意思?

  9. 关于java类加载的那些事

    首先,类加载的定义: 类加载(Class Loading)是一种机制,他描述的是将字节码以文件形式加载到内存再经过连接.初始化后,最终形成可以被虚拟机直接使用的Java类型地过程. 其次,类加载器的分 ...

  10. JavaScript中DOM(第二天)

    DOM document object model,文档对象模型,也叫dom树:dom是由节点组成的.html标签称为标签节点,属性称为属性节点: console.log(docment);即可输出d ...