1.簡述struct2基本流程
引入問題:
struts核心過濾器攔截的是*.action請求
webroot
|-- login.jsp
.. 用到struts標籤
直接訪問:login.jsp, 會不會有問題?
會有問題; 如果用struts的功能,必須經過核心過濾器!
過濾器: init()/dofilter()/destroy()
在tomcat啟動時候例項化,且呼叫init()方法
訪問時候呼叫dofilter方法
struts流程:
一、 tomcat伺服器啟動
2. 建立過濾器物件
建立struts核心過濾器例項
3. 初始化
執行過濾器init()方法
---> 載入預設properties配置檔案
---> 載入xml
struts-default.xml, 【所有需要建立的bean、預設的包(結果型別、所有***、預設的***棧)】
struts-plugin.xml, 【外掛程式配置】
struts.xml 【自定義配置】
二、 使用者訪問
使用者每次訪問,執行dofilter()方法:
1. 每次訪問struts,都會建立actioncontext物件 【 prepare.createactioncontext(request, response);】
1.1 然後,建立valustack值棧物件
valuestack 結構
|-- root 根元素資料
|-- context 非根元素(map)
1.2 給valuststack封裝資料, 所有的map資料都放入值棧
1.3 把值棧的map資料,拷貝乙份給actioncontext!
所以,我們可以通過actioncontext獲取struts執行的資料!
判斷:---> 如果請求靜態資源(jsp), 就放行
---> 如果請求的是action,才執行action(的過程)
(action建立、***的呼叫)
4. configurationmanager 配置管理器類,管理各配置檔案
5. 根據配置管理器物件, 建立action的** , 通過action的**,建立action例項!
6. 再依次預設的18個***
2.說一下struct2的interceptor有什麼用?
struts的每乙個功能,都是通過乙個個***實現!
(其餘自由擴充套件....)
***怎麼實現? 與過濾器區別?
總共? 預設? 不夠?
3. 為什麼要用hibernate? 簡述工作原理!
hibernate簡化繁瑣的jdbc操作!大大提公升開發效率!
hibernate實現了物件關係對映,即orm,
通過hibernate把物件直接通過對映,儲存到資料庫!
從資料庫取出來的就是封裝好的物件!
# 建立配置管理物件,configuration
# 載入主配置檔案:hibernate.cfg.xml
同時載入所有的對映資訊!
# 載入完主配置檔案後,就可以建立sessionfactroy
# 建立運算元據庫的session物件
# 運算元據庫
# 最後提交事務、關閉session!
4. hibernate是如何延遲載入? 並簡述hibernate快取機制?
lazy
true
false
extra
通過設定lazy屬性,實現延遲載入!
load/集合屬性/物件關聯的屬性,預設都是延遲載入!
基於session的快取,以及基於sessionfactroy快取!
區別:session快取,一級快取,不能共享快取資料!
sessionfactroy快取,二級快取,基於應用程式的快取,快取資料可以給不同的session共享!
5. 為什麼要用spring?
6. 簡述spring工作原理?
可以簡述spring六大模組!
spring的核心ioc與aop!
ioc, 提供了可以把物件建立交給外部容器! 解耦!
aop, 面向切面程式設計,典型應用: spring宣告式事務管理就用到了aop程式設計!
ioc容器建立物件原理:
反射技術!
spring建立bean:
2. 容器中的bean會被建立
lazy-init=true (只對單例有效)
在第一次從容器中獲取物件時候,建立bean
lazy-init=預設
在建立容器物件時候,會建立所有的單例的bean
3. 多例的bean,在每次從容器獲取物件的時候才建立!
aop程式設計原理:
jdk動態**、cglib子類**!
aop執行過程:
1. 先配置切入點表示式,指定攔截哪些方法
即給哪些類生產**物件!
2. 當物件符合切入點表示式規則,
如果物件有實現介面,用jdk動態**! (從ioc從其中獲取物件時候,必須用介面接收!)
如果物件沒有實現介面,用cglib子類**! (目標物件不能為final)
7. spring如何管理事務?
宣告式事務管理,管理事務!
管理事務過程:
1. 配置事務管理器類
jdbc: datasourcetransactionmanager
hibernate: hibernatetransactionmanager
2. 配置事務通知
3. 切面配置
配置切入點表示式,應用通知!
8. 簡述ssh整合
簡述:ssh, 指spring與struts整合;
spring與hibernate整合;
spring建立struts的action
spring建立hibernate的sessionfactory
ssh,事務管理,交給spring宣告式事務管理!
dao操作,
1. 注入sessionfactory到dao 【hibernate】
2. 注入hibernatetemplate到dao 【spring api】
3. dao繼承hibernatedaosupport工具類 【spring api】
常見C 知識點
1 非c 內建型別 a 和 b,在哪幾種情況下b能隱式轉化為a?a.class b public a b公有繼承自a,可以是間接繼承的 b.class b b實現了隱式轉化為a的轉化 c.class a a實現了non explicit的引數為b 可以有其他帶預設值的引數 建構函式 d.a oper...
IOS常見知識點
xcode 4.4 陣列和物件的訪問都可以簡寫了,例如賦值 array string 1 dic 取值 array 1 dic 1 早期的xcode編譯環境對方法順序要求很高,前面的函式體找不到後面的例項方法,發出警告,要麼只能在類別中宣告,多寫 要麼打亂函式順序,導致維護麻煩,新的llvm改變了以...
dojo常見知識點
dijit form validationtextbox 常用屬性 required true 不能為空 trim true 前後的空格自動刪除,如果沒有新增內容的同時,使用該屬性將會出現異常 pattern 驗證正規表示式,但屬性為字串 但預設,會將替換到 故類似 1 9 d d 0 d 這樣的表...