struts2的運行原理javascript
1)HTTP請求被FilterDispatcher攔截
2)建立ActionProxy代理對象
3)經過代理對象加載xml配置數據,建立配置管理器ConfigurationManager
4)先建立ActionInvocation調用對象
5)調用struts2攔截器,注入所須要的功能
6)調用目標的Action對象,以及目標的方法
7)根據Action對象方法的返回值String,建立Result視圖對象
8)調用目標的JSP頁面
9)接着回來Struts2的攔截器,原路返回
10)最終響應到客戶瀏覽器java
HttpRequest(用戶請求對象)->ActionContextCleanup(過濾器)->FilterDispatecher(過濾器)->ActionMapper(Action映射器)
->ActionProxy(Action代理類)->ConfigurationManager(配置器用來讀取struts.xml)-ActionInvocation(Action調用器,
負責知道調用哪一個攔截器或目標的action)->負責調用攔截器->Action(調用目標的action指定的方法)->Result(視圖界面JSP)
->攔截器原路返回->HttpResponse(響應給客戶端)mysql
當用戶發送請求,進入StrutsPrepareAndExecuteFilter(是struts2框架的核心控制器,它負責攔截由<url-pattern>/*</url-pattern>指定的全部用戶請求,當用戶請求到達時,該過濾器會過濾用戶的請求。),
接着進入:Interceptor(Struts2內置的一些攔截器或用戶自定義攔截器)
接着進入:Action(用戶編寫的action類,與struts1不一樣,struts2對用戶的每一次請求都會建立一個Action,因此線程是安全的。)
接着進入:Result(獲取轉發頁面)
接着進入:轉發的頁面
最後:解析響應給客戶端sql
J2EE服務器啓動時會創建必定數量的池鏈接,並一直維持很多於此數目的池鏈接。客戶端程序須要鏈接時,池驅動程序會返回一個未使用的池鏈接並將其標記爲忙。若是當前沒有空閒鏈接,池驅動程序就新建必定數量的鏈接,新建鏈接的數量有配置參數決定。當使用的池鏈接調用完成後,池驅動程序將此鏈接標記爲空閒,其餘調用就可使用這個鏈接。數據庫
實現方式,返回的Connection是原始Connection的代理,代理Connection的close方法不是真正關鏈接,而是把它代理的Connection對象還回到鏈接池中。編程
mysql和oracle的區別:瀏覽器
一.Oracle是大型數據庫而Mysql是中小型數據庫,Oracle市場佔有率更高,Mysql是開源的,Oracle價格很是高安全
二.Oracle支持大併發,大訪問量,是OLTP最好的工具(OLTP[聯機事務處理])(OLAP[數據倉庫處理 有了基礎大數據後 根據數據分析 市場定位])服務器
三.安裝後Oracle佔用較大的內存空間和其餘的機器性能併發
四.操做上的區別:
1.主鍵
Mysql通常使用自動增加類型,Oracle沒有自動增加類型,通常使用的是序列。
2.單引號的處理
Mysql裏能夠用雙引號包起字符串,Oracle只能夠用單引號包起字符串
3.翻頁的sql語句不一樣
mysql用limit開始位置,記錄個數;Oracle使用ROWNUM
4.空字符的處理
MYSQL的非空字段也有空的內容,Oracle裏定義了非空字段就不允許有空的內容
java和javascript的區別:
1.java是面向對象的,javascript是基於對象的腳本語言;
2.javascript是編輯性編程語言,在發送給客戶端以前不須要編譯,而java須要在發送給客戶端前須要編譯
3.變量不同,javascript是弱類型的,java是強類型的,前者不要求使用前聲明類型
4.javascript是動態聯編,java是靜態聯編;