Struts框架原理走向分析

本文详细介绍了Struts框架的工作原理及请求处理流程。从浏览器发起HTTP请求开始,到服务器如何解析请求、调用拦截器、处理Action,直至最终响应返回给客户端的过程。

1.首先浏览器向服务器Tomcat发送一个Http://localhost:8080/Struts/index.jsp请求。

2.服务器(Tomcat)解析这个请求。处理过程大致分为以下几个步骤:

        第一步:在服务器的webapp找到这个项目。

 

        第二步:找个这个项目的web.xml(项目的映射文件)。

 

        第三步:找到web.xml中的filter(拦截器),里面具体的执行步骤是从下往上执行,先过滤所有请求(Url)地址,再调用拦截器(调用Filter-class节点里面的StrutsPrepareAndExecuteFilter), 接着Struts核心控制器会通过   ActionMapper获取Action信息,接下来Struts核心控制器调用一个Struts代理ActionProxy,这个代理进行读取struts.xml信息(主要是读取actionInterceptor栈的信息),接着Action代理会把请求传递给Action实例,这个实例会去调用action,匹配有没有符合条件的 action(dept_*)

<action name="dept_*"class="org.svse.action.DeptAction" method="{1}">

                 <result name="show">/dept/all.jsp</result>

                 <result name="getOne">/dept/update.jsp</result>

</action>,如果存在匹配的action,判断action中是否有class类属性,接着会继续判断ActionMapper中的映 射信息对应的ActionForm是否存在,如果不存在,则创建一个ActionForm,并保存提交的表单信息进行下一步处理,根据ActionMapper对象判断查找用户请求转发的控制器如果对应的Action对象不存在,则创建这个对象并执行Execute方法,执行完成后会返回一个ActionForword对象),再次经过过滤器

        第四步,AcitonServlet会把这个处理结果转发给ActionForm对象指定的jsp页面。同样会返回一个String类型的字符串.如果没有,返回请求的信息(404/500/400,将结果 Result信息返回给ActionInvocation产生一个HttpServletResponse响应产生的响应行为发送给客服端。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值