struts1的原理和工作流程

struts1的工作原理或者说工作流程:

1.在web应用程序启动就会加载ActionServlet,ActionServlet从配置文件struts-config.xml中读取配置信息,并把它们存放到各种配置对象中。当ActionServlet接受到一个客户端请求时,将执行如下流程:

(1).检索和用户匹配的ActionMapping实例,如果不存在,就返回请求路径无效的错误信息

(2).如果ActionForm实例不存在,就创建一个ActionForm的对象,把客户提交的表单数据封装到ActionForm对象中。

(3).根据配置信息决定是否要进行表单验证,如果需要,就调用ActionForm的validate()方法

(4).如果validate()方法放回null,或者并不包含ActionMessage的ActionError对象,就表示验证成功

(5).ActionServlet根据ActionMapping所包含的映射信息决定将请求转发给那个action,如果相应的action实例不存在,就先创建这个action对象,然后再调用这个action的excute()方法

(6).action的execute()方法返回一个ActionForword对象,ActionServlet会把客户请求转发给ActionForword对象所指向的JSP组件

(7).ActionForword对象指向JSP组件生成动态网页返回给客户

最新文章

  1. jQuery与Zepto的异同
  2. WebService - 怎样提高WebService性能 大数据量网络传输处理
  3. FreeSWITCH的传真发送
  4. 二模 (8) day1
  5. *EditPlus注册码在线生成
  6. 【暑假】[深入动态规划]UVa 1380 A Scheduling Problem
  7. BZOJ1653: [Usaco2006 Feb]Backward Digit Sums
  8. jQuery模拟瀑布流布局
  9. css3_note
  10. Cocos2d-x 3.0 创建一个场景,并设置现场的时候,项目开始执行上主动
  11. Flume-ng源码解析之Source组件
  12. 获取3个月前的时间(获取某一天的时间 NSDate)
  13. Python-String字符串的相关方法
  14. 【Uva 11280 飞到弗雷德里顿】
  15. 成环的概率dp(初级) zoj 3329
  16. Django部署以及整合celery
  17. 使用promisify解决fs的回调地狱问题
  18. latex与word之间的各种转化方法
  19. MySQL的order by时区分大小写
  20. 【Unity Shader】(七) ------ 复杂的光照(下)

热门文章

  1. CentOS7安装vim7.4
  2. Python学习入门教程,字符串函数扩充详解
  3. Android-关于屏幕适配的一些经验
  4. mysql连接错误:Cannot get hostname for your address
  5. 网页版 treeview使用中遇到的问题
  6. C#网页版计算器程序代码
  7. 【转】Spring.NET学习笔记——目录
  8. C++ trivial和non-trivial构造函数及POD类型(转)
  9. 过滤HTML
  10. 帝国cms7.0修改“信息提示”框