java 原理图_Java中比较重要的原理图(三大框架、、、、)
一、Struts2的工作原
上圖來源于Struts2官方站點,是Struts 2 的整體結構。
一個請求在Struts2框架中的處理大概分為以下幾個步驟
1 客戶端初始化一個指向Servlet容器(例如Tomcat)的請求
2 這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對于Struts2和其他框架的集成很有幫助,例如:SiteMesh Plugin)
3 接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請是否需要調用某個Action
4 如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy
5 ActionProxy通過Configuration Manager詢問框架的配置文件,找到需要調用的Action類
6 ActionProxy創建一個ActionInvocation的實例。
7 ActionInvocation實例使用命名模式來調用,在調用Action的過程前后,涉及到相關攔截器(Intercepter)的調用。
8 一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可 能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 框架中繼承的標簽。在這個過程中需要涉及到ActionMapper
在上述過程中所有的對象(Action,Results,Interceptors,等)都是通過ObjectFactory來創建的。
二、
Core(The IoC container)和AOP 只是Spring 框架中的一部分。
Spring 對JDBC 的整合,屬于DAO。
如上所示,Spring 的功能共6 大模塊。(請查看Spring幫助手冊)
1) Core 封裝包是Spring 框架的最基礎部分,提供Ioc 和(DI)依賴注入。
2) DAO 提供了JDBC 的抽象層。還有注解聲明類型的事務管理方法。
3) ORM 該封裝包提供了常用的“對象/關系”APIs。我們頻繁使用的是Hibernate,除此之外還可以整合JPA、JDO、iBatis 等。
4) AOP 提供了符合AOP 規范的面向切面的編程實現
5) Web 該封裝包提供了基礎的針對web 開發的集成特性。此外Spring 也提供了一種MVC 實現。spring-mvc\struts\jsp\jsf
6) J2EE 一般使用較少。提供了EJB、JMS、Email 等集成。Spring 可以將發送郵件等功能整合。
三、
Servlet過濾器和生命周期
servlet的生命周期 ***
所謂生命周期,指的是servlet容器如何創建servlet實例、分配其資源、調用其方法、并銷毀其實例的整個過程。
階段一: 實例化(就是創建servlet對象,調用構造器) 在如下兩種情況下會迚行對象實例化。
第一種情況:當請求到達容器時,容器查找該servlet對象是否存在,如果丌存在,才會創建實例。
第二種情況: 容器在啟 勱時,戒者新部署了某個應用時,會檢查web.xml當中,servlet是否有 load-on-starup配置。如果有,則會創建該servlet實例。
load-on-starup參數值越小,優先級越高(最小值為0,優先級最高)。
階段二: 初始化 為servlet分配資源,調用init(ServletConfig config);方法 config對象可以用來訪問servlet的初始化參數。 初始化參數是使用init-param配置的參數。 init可以override。
階段三: 就緒/調用 有請求到達容器,容器調用servlet對象的service()方法。 HttpServlet的service()方法,會依據請求方式來調用doGet()戒者doPost()方法。 但是,這兩個do方法默認情況下,會拋出異常,需要子類去override。
階段四: 銷毀 容器依據自身的算法,將丌再需要的servlet對象刪除掉。 在刪除乊前,會調用servlet對象的destroy()方法。 destroy()方法用于釋放資源。 在servlet的整個生命周期當中,init,destroy只會執行一次,而service方法會執行多次。
過濾器原理
1) ?瀏覽器發送請求給服務器? 2) ?服務器的Servlet引擎創建Request對象&&Response 對象? 3) ?Servlet引擎先調用過濾器的doFilter 方法,該方法有兩個參數request和 response, ? ?(在過濾器中可以訪問到Request對象&&Response 對象)? 4) ?過濾器對攔截的內容迚行處理? 5) ?之后調用SomeServlet的 service 方法? 6) ?service 方法執行? 7) ?service 方法執行結束后,將結果返回到過濾器? 8) ?過濾器將service 方法返回的結果再次迚行過濾? 9) ?最后,Servlet引擎將結果返回給瀏覽器
總結
以上是生活随笔為你收集整理的java 原理图_Java中比较重要的原理图(三大框架、、、、)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java怎么注销cookie_java
- 下一篇: java构造器调用构造器_java中构造