Struts2框架的工作原理:

1.服务器启动,会加载我们的xml配置文件中的内容。

2.服务器启动之后,过来一个servlet请求,如user类中的save方法。请求过来先过过滤器(strutsPrepareAndExecuteFilter)。

3.执行过滤器的时候要去加载很多配置文件,xml中由对应的关系,根据链接去加载struts.xml。根据struts中的配置去找相应的action,在从action中找相应的方法。

4.struts.xml文件由谁来管理?框架内部有一个配置的管理者Configuration Manager来管理struts.xml。

5.通过Configuration Manager能生成一个Action的代理对象Actionproxy。这个代理对象就相当于上下文,通过上下文能得到ActionInvocation对象。就相当于ActionContext与Action的关系一样,是明星与经纪人的关系。

6.ActionInvocation对象能管理所有的拦截器和action。

7.通过一些配置找到action,在访问action之前要经过很多的拦截器,执行完毕之后返回一个结果。结果又返回来经过拦截器。所以拦截器执行了两次。拦截器在处理action的时候是1,2,3的顺序,当执行结果经过过滤器的时候是3,2,1的顺序。

8.执行结果经过拦截器后,最后将结果返回给我们的页面进行显示。

9.需要记的第一个对象:Configuration Manager,用来管理配置文件。通过它可以得到Action代理对象。

10.需要记的第二个对象:ActionProxy,代理对象,相当于上下文。通过代理对象可以得到ActionInvocation对象

11.需要记的第二个对象:ActionInvocation对象,用来管理所有的拦截器

分为两个部分:

1.服务器启动的时候,做一些什么事情?

2.请求过来的时候,做什么事情。

struts工作原理(图解)的更多相关文章

  1. 菜鸟学Struts2——Struts工作原理

    在完成Struts2的HelloWorld后,对Struts2的工作原理进行学习.Struts2框架可以按照模块来划分为Servlet Filters,Struts核心模块,拦截器和用户实现部分,其中 ...

  2. [JavaEE,MVC] Struts工作原理

    基本概念 Struts是Apache 基金会Jakarta 项目组的一个Open Source 项目,它采用MVC模式,能够很好地帮助java 开发者利用J2EE开发Web应用.和其他的java架构一 ...

  3. Hibernate、Spring和Struts工作原理及使用理由

    1.读取并解析配置文件2.读取并解析映射信息,创建SessionFactory3.打开Sesssion4.创建事务Transation5.持久化操作6.提交事务7.关闭Session8.关闭Sesst ...

  4. struts工作原理

    在struts2的应用中,从用户请求到服务器返回相应响应给用户端的过程中,包含了许多组件如:Controller.ActionProxy.ActionMapping.Configuration Man ...

  5. struts工作原理不错的解释___

    Struts 使用 Model 2 架构.Struts 的ActionServlet 控制导航流.其他Struts 类,比如Action, 用来访问业务逻辑类.当 ActionServlet 从容器接 ...

  6. SpringMVC工作原理图解

    SpringMVC的工作原理图: SpringMVC流程 1.  用户发送请求至前端控制器DispatcherServlet. 2.  DispatcherServlet收到请求调用HandlerMa ...

  7. struts2中struts.xml和web.xml文件解析及工作原理

    web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app id="WebApp ...

  8. Struts自定义拦截器&拦截器工作原理

    0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...

  9. Hibernate工作原理及为什么要用?. Struts工作机制?为什么要使用Struts? spring工作机制及为什么要用?

    三大框架是用来开发web应用程序中使用的.Struts:基于MVC的充当了其中的试图层和控制器Hibernate:做持久化的,对JDBC轻量级的封装,使得我们能过面向对象的操作数据库Spring: 采 ...

随机推荐

  1. 现在的 Linux 内核和 Linux 2.6 的内核有多大区别?

    作者:larmbr宇链接:https://www.zhihu.com/question/35484429/answer/62964898来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转 ...

  2. uva-10194-排序

    题意: 如果一个队伍的得分比对方高,那么就赢得这场游戏,很明显,如果得分低那就是输了,如果俩个队伍的得分一样,那么就是平局,赢得比较获得3个点的得分,平手1个点的得分,输了0分.排序规则如下1:得分点 ...

  3. 《GPU高性能编程CUDA实战》第十章 流

    ▶ 本章介绍了页锁定内存和流的使用方法,给出了测试内存拷贝.(单 / 双)流控制下的内存拷贝的例子. ● 测试内存拷贝 #include <stdio.h> #include " ...

  4. 53. sql2005“备份集中的数据库备份与现有的xx数据库不同”解决方法

    RESTORE DATABASE LiveBOS_KeJiFROM DISK = 'D:\LiveBOS_KeJi_backup_201503090000.bak' --bak文件路径with rep ...

  5. JAVA 常用注解( JDK, Spring, AspectJ )

    JDK自带注解   @Override   表示当前方法覆盖了父类的方法   @Deprecation   表示方法已经过时,方法上有横线,使用时会有警告   @SuppviseWarnings    ...

  6. nginx 域名绑定

    单个域名 upstream web{ server ;//这里绑定你要访问的服务器地址 keepalive ; } server { listen ; server_name www.xxxx.con ...

  7. java web 读取文件,文件路劲不对的问题

    都知道,一般java项目,编译后的文件是在classes文件夹下面: 而java web项目,则是在WEB-INF/classes文件夹下面.new File(fileName)须先获取tomcat中 ...

  8. indy字符编码

    以前是TEncoding.Unicode 现在是IndyTextEncoding_Default

  9. state介绍

    state是salt最核心的功能,通过预先定制好的sls(salt state file)文件对被控主机进行状态管理,支持包括程序包(pkg).文件(file).网络配置(network).系统服务( ...

  10. 在eclipse中建立子级源码文件夹

    在eclipse中建立子级源码文件夹 右键点击项目 ---->new ---->source folder--->输入 src/main  --->勾选update exclu ...