struts1工作流程解析



 1、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config.xml)的配置信息,为struts中不同的模块初始化相应的对象。(面向对象思想)

2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。

3、form填充:struts的总控制器ActionServlet在用户提交请求时将数据放到对应的form对象中的成员变量中。

4、派发请求:控制器根据配置信息对象ActionConfig将请求派发到具体的Action,对应的formBean一并传给这个Action中的excute()方法。

5、处理业务:Action一般只包含一个excute()方法,它负责执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。

6、返回响应:Action将业务处理的不同结果返回一个目标响应对象给总控制器。

7、查找响应:总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。

8、响应用户:目标响应对象将结果传递给资源对象,将结果展现给用户。

 


登录举例:

1、加载xml(web.xml struts-config.xml...)文件并初始化

2/3、发送请求时,根据login.jsp中的
             <form  name="loginForm" method="post" action="Login.do">
其中的action ="Login.do"
与structs-config.xml中
                            <action name="loginForm" type="cn.com.Myclass.actions.LoginAction" validate="false" input="/index.jsp" scope="session" path="/Login">
                                  <forward name="loginOk" path="/pages/index.jsp" />
                                  <forward name="loginFail" path="/global/error.jsp" />
                             </action>
path = "/Login" 匹配找到Action类 cn.com.Myclass.actions.LoginAction 以及name = "loginForm"
然后跟据上面的name= "loginForm"找到
                              <form-beans>
                                  <form-bean name="loginForm" type="cn.com.Myclass.forms.LogonForm" />
                              </form-beans>
 找到绑定到LoginAction的FormBean的实例(即cn.com.Myclass.forms.LogonForm类的对象或者其子类对象如比如叫做 actionForm),此时ActionServlet自动将用提交的数据填充到actionForm中
 
4、再根据2/3中找到的action即:
   控制器根据配置信息对象ActionConfig将请求派发到具体的Action即cn.com.Myclass.actions.LoginAction,对应的formBean一并传给这个LoginAction中的excute()方法

5、执行相应的业务逻辑(调用其它的业务模块)完毕后返回一个ActionForward对象。服务器通过ActionForward对象进行转发工作。
如:
               return mapping.findForward("loginOk");
6、Action将业务处理的不同结果返回一个目标响应对象给总控制器。
即:
    将上面返回的对象mapping.findForward("loginOk")传递给ActionServlet

7、总控制器根据Action处理业务返回的目标响应对象,找到对应的资源对象,一般情况下为jsp页面。
  如: 上面返回loginOk
   然后匹配Struts-config.xml中的
    <forward name="loginOk" path="/pages/index.jsp" />
8、目标响应对象将结果传递给资源对象,将结果展现给用户。

 

 

 

struts1的工作流程 struts1的工作流程,初学者不错的资源 立即下载

相关推荐

手把手教你用单结晶体管搭建简易振荡电路(含电路图和波形分析)

本文详细介绍了如何使用单结晶体管(UJT)搭建简易振荡电路,包括电路设计、波形分析和实战技巧。通过具体的电路图和参数计算,帮助电子爱好者和工程师快速掌握UJT振荡器的设计与调试方法,适用于脉冲信号生成和时钟源制作等应用场景。

weixin_29207533的博客 516

Struts1的工作流程

Struts1的工作流程图如下所示:其工作流程如下: 当Web服务器启动的时候,根据web.xml文件加载并初始化ActionServlet,根据配置ActionServlet的config参数信息,确定struts-config.xml配置文件存放的位置,并根据Servlet映射配置确定其拦截处理的URL,例如,拦截请求的后缀是.do的UR。根据struts-config.xml中的配置信息,为s

zhuxinquan的博客 4145

rsyslog交叉编译(armv7、armv8、aarch64、arm32平台通用)

该文档描述了如何交叉编译rsyslog到arm64嵌入式平台。

sinat_33909696的博客 1560

struts1.X工作流程

struts1的工作流程 1. 读取配置(容器启动时一次性加载) 容器读取web.xml,自动加载设置为自动启动的ActionServlet; 读取struts-config.xml配置信息 2.发送请求 客户端发送http请求,容器收到后通过web.xml上的URL通配符(一般是*.do)找到ActionServlet; 3.填充数据 ActionServlet(Action配置p...

一直在路上 240

医学超声影像研究——从拒稿到录用:我的UMB投稿实战复盘

本文分享了作者将一篇关于超声影像中肿瘤传统分类方法的研究论文,从被其他期刊拒稿到最终被《Ultrasound in Medicine & Biology》录用的完整实战经验。文章详细复盘了心态调整、精准选刊、针对UMB期刊的稿件精修、投稿系统操作细节以及与审稿人有效沟通回复的全过程,为医学影像领域的科研工作者提供了宝贵的投稿策略与实操指南。

stem5的博客 492

GD32官方资料学习体系(主要包括MCU选型、原理图PCB设计、软件开发入门及用户手册等)

大部分还未更新,先占个坑,日后更新…… 目前国外芯片涨价涨的离谱(就是在说ST),国内最好的替代就是兆易创新出的系列芯片了。但是官方资料繁杂,小白上手不易,因此边入门边记录,也给后来者根据官方资料可以有一个较为完整的学习体系。

Eddie的博客 1万+

struts1.x的简单流程

开发流程:首先当然是要将相关的包导入到工程中,在MyEclipse中,将这些文件拷贝到WebRoot/WEB-INF/lib下 就可以了,在Eclipse中似乎不行,还是要在工程属性中添加这些类库。一个好的方法是将struts的这些jar包放到自己定义的一个库中,从而可以使得操作方便且不易出错。                                                

jubincn的专栏 1011

静态时序分析(STA)—— 标准单元库

目录 1、时序库 概览 2、时序模型 1、基本概念 2、影响因素 3、线性延时模型 4、非线性延时模型 5、单元时序弧 1、组合逻辑单元 2、时序逻辑单元 6、线负载模型 参考说明 上一篇,学习了 STA相关的基本概念,本篇继续学习 STA相关的 标准单元库。 1、时序库 概览 库文件概览: 2、时序模型 1、基本概念 2、影响因素 对于组合逻辑的时序弧而言,其延时的大小取决于: 1、输出负载,即,输出端的电容负载的大小。容性负载越大,...

记录所学,分享知识,结识挚友 2852

Struts1 工作流程

Struts1 工作原理及过程: 1. 初始化Struts1框架的总控制器ActionServlet,ActionServlet抽象类继承了GenericServlet,这个类继承下来的Service()方法外还提供了很多方法: doGet  doPost 从指定URL中取得数据, doHead获取HTTP header的信息,doPut主要用来向服务器端上传文件(与使用FTP的方法类似),d

daiyuntao841226的专栏 858

华为OD机试双机位C卷:挑选宝石 (C/C++/Python/JAVA/JS/GO)

华为OD机试双机位C卷 挑选宝石,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解。华为OD机试-挑选宝石,华为OD机考-挑选宝石。

qq_45776114的博客 1500

利用GAT(图论分析工具箱)构建并分析大脑结构协变网络学习笔记

前言 前面我学习了利用DTI构建白质纤维脑网络,并采用GRETNA计算了小世界网络属性。阅读文献发现可以利用灰质体积或皮层指标(皮层厚度、折叠指数、沟深)等构建结构协变网络再进行网络拓扑属性的计算。因此,我采用前面提取的灰质体积和皮质数据进行了结构协变网络分析,特此写下笔记以便后面的学习。 一、数据准备 二、构建结构协变网络 三、全局属性的统计分析 四、局部属性的统计分析 五、网络攻击分析 六、度的分布 ..................

weixin_52073820的博客 7496

Struts1.1b3部分源代码分析

Struts1.1b3部分源代码分析. 阅读次数3476 出处 CN-JAVA原创:孤魂一笑     Struts1.1部分源代码分析一:说明本文针对Struts1.1b3做分析,主要希望通过对源代码的分析阐述Struts1.1的工作方式。本文不适合初学者参考,适合具有一定基于Struts开发的程序员参考。下面的描述;里面将会对ActionServlet,RequestProces

山哥's 专栏 2834

SAP-ABAP:在SAP系统中,COEP表(成本控制对象行项目表)详解

在SAP系统中,COEP表(成本控制对象行项目表)详解

baidu_35680696的博客 1837

【SSH之旅】一步步学习Struts1框架(三):解析对比Struts1实例

上篇博客中,已经实现了一个Struts例子,

生命不止 学无止境 1740

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

struts1源码阅读看java反射

struts1源码阅读看java反射

天天吃面的博客 609

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

以一个简单的登录的例子来演示如何搭建struts1环境

本例先讲解struts1的工作流程,然后举一个用户登录的例子做演示。 struts1的工作流程: struts1是MVC模型的经典应用,以前对MVC的模型理解有错,一直以为C,也就是Control是做业务逻辑的,也就是业务逻辑都是由servlet做的,而JavaBean只起到一个模型的作用,但是到后来,听老师讲课才知道是我理解错了,也是老师之前给举的例子误导了我,到现在学习了strut

成长的足迹 5761

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Struts1.x原理

1,启动项目,初始化ActionServlet,读取struts-config.xml中action信息存入ActionMapping里面 2,http请求,访问前端控制器ActionServlet 3,根据path路径找到在配置文件struts-config.xml中找到action,如果有name,则去找actionForm 4,根据scope属性的request和sessio...

aa13171638545的博客 157

struts1总结

           今天又重新看了一下徐老师讲的struts1,对struts1做了一下总结,感觉今天收获不少,以前总是安着老师写的流程走的,但是不知道是为什么有那样的流向,今天重新听了视频,又看了底层的代码,总算清楚了struts1的流程.<br />            struts1:工作流程:JSP页面发出请求,ActionServlet进行处理,并找到struts-config.xml,并找到相应的Action映射(这个是通过path找到的,),通过Action映射找到actionFormbe

Life -->平安就好! 818

struts2系列(一):struts2入门(struts2的产生、struts2的工作流程、搭建struts2开发环境)...

一. struts2的产生 struts1的缺点:                         1. ActionForm过多,而且这个ActionForm在很大程度上又和VO(POJO)重复                         2. 为了解决ActionForm过多的问题,使用了验证框架,但是配置复杂,因为是后期的产物                         3. 与Sp...

weixin_34242509的博客 178

Struts1和Struts2核心控制器的执行原理

Struts11、初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web、xml中配置成自动启动的Servlet,在启动时总控制器会读取配置文件(struts-config、xml)的配置信息,为struts中不同的模块初始化相应的对象。2、发送请求:用户提交表单或通过URL向WEB服务器提交请求,请求的数据用HTTP协议传给web服务器。3、form填充:s

郗晓勇|利己者生,利人者恒 6969

struts1和struts2的流程区别

Struts1和struts2的工作流程   Struts1流程: 1、客户端浏览器发出HTTP请求。2、根据web.xml配置,该请求被ActionServlet接收。3、根据struts-config.xml配置, ActionServlet先将请求中的参数填充到ActionForm中,然后ActionServlet再将请求发送到Action 进行处理。4、是否验证,需要验证则调用

dreamoftch的专栏 928

Struts1.2入门知识

在这前的我们已经学习了Java WEB,我们已经知道Java WEB开发的两个模式Model1和Model2,其中Model2模式借鉴了一种MVC模式(模型、视图、控制),这个模式能够有效的将业务与视图分开,从而将开发人员与网页美工人员分离开,有利于分工合作,但Model2模式也有它致命的弱点,由于所有的用户请求都通过控制器来与后台业务交互,但每一个用户请求又不同,这样我们就...

ajh42238的博客 185

JavaWeb:Struts1工作原理

Struts1 ===================================================== 1.初始化:web.xml---总控制器ActionServlet<servlet>---struts-config.xml-----映射http请求UR...

chouyungong6078的博客 211
上一篇: Srusts-config.xml标签元素及意义
下一篇: HttpSession session = request.getSession(false);中的false是什么意思
afunti
博客等级 码龄17年 25粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值