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. Python第一个GUI

    #!/usr/bin/python#coding=utf-8'''Created on 2017年11月2日 from home @author: James zhan ''' from functo ...

  2. vue,在模块中动态添加dom节点,并监听

    在这里,onclick事件没有作用,因为它指向的是window,如果写为this.click页面显示为undefined, 我采用的是通过class绑定事件,但是会有一个问题,那就是当你渲染多个事件时 ...

  3. tcl脚本直接执行脚本中中文识别不了的处理

    上一篇说tcl中文乱码是因为我写了个bat调用该脚本,但是脚本中的中文路径是乱码.今天刚好有时间进行解决下: 首先看看调用代码 "./bin/base-tcl8.6-thread-win32 ...

  4. binary and out mode to open a file

    When I use binary and out mode to open a exist file, and to modify the 4th and 8th byte data to 0x78 ...

  5. 关于测绘软件南方CASS(7.0)成图系统的使用心得

    关于测绘软件南方CASS(7.0)成图系统的使用心得   王天池 南方CASS是一款基于CAD平台开发的一套集地形地籍空间数据建库工程工程应用土石算量等功能为一体的绘图软件. 初识这款软件是在大二校园 ...

  6. 利用教育邮箱注册JetBrains产品(pycharm、idea等)的方法

    转载:http://www.cnblogs.com/wang-meng/p/8887436.html 1,申请邮箱   地址为:http://mdu.edu.rs/  邮箱的前缀可以改成自己喜欢的字符 ...

  7. SQL注入之Sqli-labs系列第三十三关(基于宽字符逃逸注入)

    开始挑战第三十三关(Bypass addslashes) 0x1查看源码 本关和第三十二关其实是一样的,只是这里用到了addslashes()函数 function check_addslashes( ...

  8. Cocos2dx利用intersectsRect函数检测碰撞

    if (sp1->boundingBox().intersectsRect(sp2->boundingBox())) { pLabel->setString(“碰撞飞机爆炸”); } ...

  9. java-Set集合、HashSet集合、LinkedHashSet集合和TreeSet集合

    1.Set集合,无索引,不可以重复,无序(存取不一致) public class Demo { public static void main(String[] args) { //demo1(); ...

  10. Java 11 Tutorial

    Java 11 Tutorial 参考 https://blog.csdn.net/sihai12345/article/details/82889827 原文 https://winterbe.co ...