ssh常見知識點

2021-08-17 11:52:59 字數 3219 閱讀 5147

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 這樣的表...