Struts2框架介紹
1、基于MVC模式的應(yīng)用層框架技術(shù)!
2蚓土、Struts2主要是通過Action動作類,處理請求赖淤! (與傳統(tǒng)的servlet開發(fā)相比蜀漆,只需要寫Action類即可!用Action取代之前的servlet開發(fā)咱旱!) (Struts是對servletApi進行的封裝确丢!)
3、 Struts2的發(fā)展 :Struts2=Struts1 + xwork
4吐限、Struts2功能的引入鲜侥,是通過核心過濾器完成的! 如果想用struts的任何功能,必須經(jīng)過核心過濾器诸典!(被過濾器攔截描函!) (struts提供的標(biāo)簽的訪問,要先經(jīng)過核心過濾器:StrutsPrepareAndExecuteFilter搂赋!)
5赘阀、struts2的配置文件,struts2默認訪問后綴是.action最為后綴 脑奠, 默認執(zhí)行的方法是execute!
struts的工作原理
1.客戶端發(fā)出一個指向servlet容器的請求基公;
2.請求會經(jīng)過StrutsPrepareAndExecuteFilter過濾器;
3.過濾器和請求將訪問struts2的底層框架結(jié)構(gòu)宋欺。在web容器啟動時轰豆,struts2框架會自動加載配置文件里相關(guān)參數(shù),并轉(zhuǎn)換成相應(yīng)的類齿诞。
如:ConfigurationManager酸休、ActionMapper和ObjectFactory。ConfigurationManager 存有配置文件的一些基本信息祷杈,ActionMapper存有action的配置信息斑司。在請求過程中所有的對象(Action,Results但汞,Interceptors宿刮,等)都是通過ObjectFactory來創(chuàng)建的。過濾器會通過詢問ActionMapper類來查找請求中需要用到的Action私蕾。
4.如果找到需要調(diào)用的Action僵缺,過濾器會把請求的處理交給ActionProxy。ActionProxy為Action的代理對象踩叭。ActionProxy通過ConfigurationManager詢問框架的配置文件磕潮,找到需要調(diào)用的Action類翠胰。
5.ActionProxy創(chuàng)建一個ActionInvocation的實例。ActionInvocation在ActionProxy層之下自脯,它表示了Action的執(zhí)行狀態(tài),或者說它控制的Action的執(zhí)行步驟之景。它持有Action實例和所有的Interceptor。
6.ActionInvocation實例使用命名模式來調(diào)用冤今,1. ActionInvocation初始化時闺兢,根據(jù)配置,加載Action相關(guān)的所有Interceptor戏罢。2. 通過ActionInvocation.invoke方法調(diào)用Action實現(xiàn)時屋谭,執(zhí)行Interceptor。在調(diào)用Action的過程前后龟糕,涉及到相關(guān)攔截器(intercepetor)的調(diào)用桐磁。
- 一旦Action執(zhí)行完畢,ActionInvocation負責(zé)根據(jù)struts.xml中的配置找到對應(yīng)的返回結(jié)果讲岁。
通俗的來講:
1我擂、發(fā)送http請求
2、Web服務(wù)器(tomcat/weblogic...)
3缓艳、執(zhí)行struts核心過濾器StrutsPrepareAndExecuteFilter
4校摩、加載struts配置文件中配置信息,找到對應(yīng)的Action類并實例化
5阶淘、執(zhí)行各類攔截器和Action中對應(yīng)方法
6衙吩、配置文件中找到返回結(jié)果
7、轉(zhuǎn)發(fā)到具體頁面或其它操作