Version=2.0.13, StrutsPrepareAndExecuteFilter
1. [StrutsPrepareAndExecuteFilter]
[StrutsPrepareAndExecuteFilter]doFilter(ServletRequest request, ServletResponse response,FilterChain filterChain);
1.1 [StrutsPrepareAndExecuteFilter]
prepare.findActionMapping(request, response);
1.2 [StrutsPrepareAndExecuteFilter]
execute.executeAction(request, response, mapping);
{PrepareOperations prepare, ExecuteOperations execute}
2. [ExecuteOperations]
[ExecuteOperations] .executeAction(request, response, mapping);
[ExecuteOperations] dispatcher.serviceAction(request, response, context,mapping);
{Dispatcher dispatcher,ServletContext servletContext}
3. [Dispatcher]
[Dispatcher].serviceAction(request, response, servletContext, mapping);
3.1 [Dispatcher] extraContext.putAttribute(“valueStack”,Request.getAttribute(“struts.valueStack”));
3.2 [Dispatcher] proxy=ActionProxyFactory.createActionProxy(namespace,name,method,Context);
3.3 [Dispatcher]
proxy.execute();
{ActionProxy proxy,ConfigurationManager configrationManager}
4. [StrutsActionProxy]
[StrutsActionProxy].execute();
4.1 [StrutsActionProxy] ActionContext previous=ActionContext.getContext();
4.2 [StrutsActionProxy] ActionContext.setContext(invocation.getInvocationContext());
4.3 [StrutsActionProxy] invocation.invoke();
4.4 [StrutsActionProxy] cleanupContext; ActionContext.setContext(previous);
{ActionInvocation invocation,ActionContext actionContext,Boolean cleanupContext}
5 [DefaultActionInvocation]
[DefaultActionInvocation].invoke(); ps:Iterator interceptors
5.1 [DefaultActionInvocation] Interceptors.hasNext()=true;
interceptor.intercept(DefaultActionInvocation.this);
5.2 [DefaultActionInvocation] Interceptors.hasNext()=false;
resultCode = invokeActionOnly(); [system.exit(0)]
{Object action,ActionProxy proxy, Iterator interceptors}
6. [ExceptionMappingInterceptor]
[ExceptionMappingInterceptor].intercept(ActionInvocation invocation);
6.1 [ExceptionMappingInterceptor] do something about interceptor
6.2 [ExceptionMappingInterceptor] invocation.invoke();
{ActionInvocation invocation}
Procedure:
1.StrutsPrepareAndExecuteFilter.doFilter(ServletRequest,ServletResponse,FilterChain);
2.ExecuteOperations.executeAction(HttpServletRequest,HttpServletResponse,ActionMapping);
3.Dispatcher.serviceAction
(HttpServletRequest,HttpServletResponse,ServletContext,ActionMapping);
4.StrutsActionProxy.execute();
5.DefaultActionInvocation.invoke();
6.ExceptionMappingInterceptor.intercept(ActionInvocation);
7. DefaultActionInvocation.invoke();
8.AliasInterceptor.intercept(ActionInvocation);
9.DefaultActionInvocation.invoke(); ……. ……
n. DefaultActionInvocation.invokeActionOnly();
n+1. DefaultActionInvocation.invokeAction(Object,ActionConfig);
n+2.Method.invoke(Object,Object…); …………
n+m.SomeAction.execute();
分享到:
相关推荐
struts2 获取request session对象
struts2获取request的四种不同的方式
struts1中使用request、response都是方法自带的,而struts2中的request、response、session都被隐藏的了,该带代码文档会清晰的让你明白struts2中request、response在自定义方法中如何随意使用
struts2中获得request对象的几种方法
Struts2上传文件(直接用request)
struts2中request和session的获取
struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别struts1和struts2的区别...
struts2访问application、session以及request等web资源的示例代码
NULL 博文链接:https://yuhuiblog695685688425687986842568269.iteye.com/blog/2390161
struts2-core-2.0.1.jar, struts2-core-2.0.11.1.jar, struts2-core-2.0.11.2.jar, struts2-core-2.0.11.jar, struts2-core-2.0.12.jar, struts2-core-2.0.14.jar, struts2-core-2.0.5.jar, struts2-core-2.0.6.jar,...
Struts2中获得Request,Response的几种方法,有代码作为参考。
struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全struts2 总结工程大全...
Struts2是一套非常优秀的Java WEB应用框架,实现优雅、功能强大、使用简洁。目前已有大量的企业项目采用Struts2来作为Web框架进行开发,掌握Struts2是每个进行Web开发的Java程序员的一项必备技能。 本视频对Struts2...
struts2 资料struts2 资料struts2 资料struts2 资料
Struts2的Action中获得request response session几种方法
struts2环境搭建+struts2 新闻发布系统+struts2 留言板 struts2环境搭建:基础框架搭建,简单易上手,适合新手,比你看书强多了,实践源于理论而高于理论,贵在实践 朋友。 struts2 新闻发布系统:struts2+jsp 功能不...
struts2 chm 程序包 org.apache.struts2 接口概要 接口 说明 StrutsStatics Constants used by Struts. 类概要 类 说明 RequestUtils Request handling utility class. ServletActionContext Web-specific ...
-- 为修复struts2 s2-016、s2-017漏洞,重写DefaultActionMapper --> <bean type="org.apache.struts2.dispatcher.mapper.ActionMapper" name="myDefaultActionMapper" class=...
struts2源码 struts2案例 struts2使用包