struts1 工作流程
来源:互联网 发布:软件模块化设计原则 编辑:程序博客网 时间:2024/06/04 23:37
1 容器启动后,会加载ActionServlet,然后从struts-config.xml配置文件中读取信息,把信息存放到配置对象中
(例如Action的信息放在ActionMapping对象中,每一个action信息都对应一个<action>标签,通过该标签进行信息的配置,在内存中,每一个<action>都对应一个org.apache.struts.action.ActionMapping的实例)。
(ActionSevlet是struts1的核心组件,继承了HttpServlet类,主要负责接收http请求,然后根据struts-config.xml文件中的信息,把请求转发给相应的action对象,如果该action对象不存在,则会先创建该action对象,反之直接使用该对象。从这点说,struts1存在线程安全问题,当多条线程使用该action对象进行操作,如果存在实例变量或静态全局变量,会发现变量值并不是预期结果)。
2 当ActionServlet接收到一个http请求后,会在struts-config.xml检索和请求对应的ActionMapping实例,如果没有,返回请求无效。
3 如果ActionForm实例不存在,创建一个,将客户提交的表单数据存放在ActionForm对象中。
4 根据配置信息决定是否需要表单的验证,如果需要,执行ActionForm中的validata()方法。
5 如果validate()返回null 或 不包含ActionMessage的ActionError对象,表示表单验证成功(如果包含ActionMessage,则表单验证失败,此时ActionServlet将请求转发给包含用户提交表单的jsp,不会创建Action对象,调用其excute()方法)。
6 ActionServlet根据ActionMaping实例中的映射信息,将请求转发给相应的Action。如果该Action实例不存在,先创建,然后调用Action()的excute()方法。
7 Action的excute()返回一个ActionForwrd对象,Actionservlet把客户的请求转发给ActionForward对象指向的jsp组件。
8 ActionForward指向的jsp组件生成动态网页,返回给客户。
- struts1工作流程
- struts1.X工作流程
- struts1的工作流程
- Struts1工作流程
- Struts1工作流程
- Struts1工作流程详解
- Struts1 工作流程
- struts1工作流程
- struts1的工作流程
- struts1工作流程
- Struts1的工作流程
- struts1 工作流程
- Struts1.X 整个工作流程
- Struts1.X整个工作流程
- struts1.x的工作流程
- Struts1.X的工作流程
- Struts1.X整个工作流程
- Struts1的工作处理流程
- 抓包参数tcp[13]详解
- linux内核虚拟化之路(一) cgroup机制
- debug断点调试
- 服务间通信之Http框架
- mysql修改字段的类型和相关属性
- struts1 工作流程
- 连接mysql数据库时Establishing SSL connection without server's identity verification is not recommended.
- 登录Hive
- mac升级python到3.6.2
- spring学习之aop关于xml文件配置和注解方式配置
- 深度学习算法评估指标
- FZU 2282 Wand (组合数学 错排应用)
- Effictive Go(五)函数
- Android中的像素单位