1. 程式人生 > >Struts,Spring,Hibernate三大框架面試-筆試題

Struts,Spring,Hibernate三大框架面試-筆試題

1.Hibernate工作原理及為什麼要用?
原理: 
 1.讀取並解析配置檔案  
2.讀取並解析對映資訊,建立SessionFactory  
3.開啟Sesssion 
 4.建立事務Transation  
5.持久化操作 
 6.提交事務  
7.關閉Session 
 8.關閉SesstionFactory
為什麼要用:  
1. 對JDBC訪問資料庫的程式碼做了封裝,大大簡化了資料訪問層繁瑣的重複性程式碼。
2. Hibernate是一個基於JDBC的主流持久化框架,是一個優秀的ORM實現。他很大程度
的簡化DAO層的編碼工作
3. hibernate使用Java反射機制,而不是位元組碼增強程式來實現透明性。
4. hibernate的效能非常好,因為它是個輕量級框架。對映的靈活性很出色。它支援
各種關係資料庫,從一對一到多對多的各種複雜關係。
2.Hibernate是如何延遲載入? 
1. Hibernate2延遲載入實現:a)實體物件 b)集合(Collection)
2. Hibernate3 提供了屬性的延遲載入功能
當Hibernate在查詢資料的時候,資料並沒有存在與記憶體中,當程式真正對資料的操作
時,物件才存在與記憶體中,就實現了延遲載入,他節省了伺服器的記憶體開銷,從而提
高了伺服器的效能。
3.Hibernate中怎樣實現類之間的關係?(如:一對多、多對多的關係)
類與類之間的關係主要體現在表與表之間的關係進行操作,它們都市對物件進行操作
,我們程式中把所有的表與類都對映在一起,它們通過配置檔案中的many-to-one、
one-to-many、many-to-many
4.Struts1流程:
 1、客戶端瀏覽器發出HTTP請求。 
2、根據web.xml配置,該請求被ActionServlet接收。 
3、根據struts-config.xml配置, ActionServlet先將請求中的引數填充到
ActionForm中,然後ActionServlet再將請求傳送到Action 進行處理。 
4、是否驗證,需要驗證則呼叫ActionForm的validate方法,驗證失敗則跳轉到input
,成功則繼續。 
5、Action從ActionForm獲得資料,呼叫javabean 中的業務方法處理資料。
 6、Action返回ActionForward物件,跳轉到相應JSP頁面或Action。
 7、返回HTTP響應到客戶端瀏覽器。
MVC設計模式: 
modal:“模型” 也稱業務邏輯,是正真完成任務的程式碼,相當與JavaBean 
view:檢視,其實就是顯示介面,相當於JSP 
controller:控制器,他控制模型和檢視的互動過程,相當於servlet
struts1是基於MVC設計模式
hibernate是基於ORM物件關係對映
5.struts是什麼? 
struts1是基於JSP和servlet的一個開源的Web應用框架,使用的是MVC的設計模式 
struts2是基於webwork技術的框架,是sun和webwork公司聯手開發的一個功能非常齊
全的框架,
struts2和struts1沒有任何關係,是一個全新的框架
6.spring是什麼? 
spring是一個集成了許多第三方框架的大雜燴,其核心技術是IOC(控制反轉,也稱依
賴注入)和AOP(面向切面程式設計)
7.hibernate是什麼? 
hibernate是基於ORM物件關係對映(完成物件資料到關係資料對映的機制)實現的,做
資料持久化的工具
8.JSF是什麼? 
JavaServer Face是基於元件的web開發框架,跟sturts差不多的框架
9.資料庫裡面的索引和約束是什麼?
索引是為了提高資料的檢索速度,索引是建立在資料表上,根據一個或多個欄位建立
的約束是為了保持資料的完整性,約束有非空約束,主鍵約束,外來鍵約束等等。
10.spring是什麼這個問題,往往可以通過我們為什麼要使用spring這個問題來切入:
AOP 讓開發人員可以建立非行為性的關注點,稱為橫切關注點,並將它們插入到應用
程式程式碼中。使用 AOP 後,公共服務 (比 如日誌、永續性、事務等)就可以分解成
方面並應用到域物件上,同時不會增加域物件的物件模型的複雜性。  
IOC 允許建立一個可以構造物件的應用環境,然後向這些物件傳遞它們的協作物件。
正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務
定位器、單元素(singleton)和直接構造(straight construction),每一個物件
都是用其協作物件構造的。因此是由容器管理協作物件(collaborator)。  
Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助於您替換對
象。有了 Spring,只要用 JavaBean 屬性和配置檔案加入依賴性(協作物件)。然後
可以很容易地在需要時替換具有類似介面的協作物件。
11.用自己的話簡要闡述struts2的執行流程。
Struts 2框架本身大致可以分為3個部分:核心控制器FilterDispatcher、業務控制器
Action和使用者實現的企業業務邏輯元件。核心控制器FilterDispatcher是Struts 2框
架的基礎,包含了框架內部的控制流程和處理機制。業務控制器Action和業務邏輯組
件是需要使用者來自己實現的。使用者在開發Action和業務邏輯元件的同時,還需要編寫
相關的配置檔案,供核心控制器FilterDispatcher來使用。
Struts 2的工作流程相對於Struts 1要簡單,與WebWork框架基本相同,所以說Struts
2是WebWork的升級版本。
基本簡要流程如下:
1、客戶端瀏覽器發出HTTP請求。 
2、根據web.xml配置,該請求被FilterDispatcher接收。 
3、根據struts.xml配置,找到需要呼叫的Action類和方法, 並通過IoC方式,將值注
入給Aciton。
4、Action呼叫業務邏輯元件處理業務邏輯,這一步包含表單驗證。
5、Action執行完畢,根據struts.xml中的配置找到對應的返回結果result,並跳轉到
相應頁面。
6、返回HTTP響應到客戶端瀏覽器。