更新時間:2019-08-23 16:56:03 來源:動力節(jié)點 瀏覽3053次
今天動力節(jié)點java學(xué)院小編為大家整理了“5道關(guān)于SSH框架的面試題及答案”,希望對各位正在找工作的java程序員有幫助。下面和小編一起看看吧。
1、寫出你熟悉的開源框架以及各自的作用(項目中為什么使用SSH)
框架:hibernate,spring,struts1/struts2.
Hibernate主要用于數(shù)據(jù)持久化;封裝了JDBC操作;還提供了一個易用的、高效率的對象關(guān)系映射框架;
Spring的控制反轉(zhuǎn)能起到解耦合的作用;
Struts主要用于請求處理的流程控制;struts是基于MVC模式的,很好的將應(yīng)用程序進行了分層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實現(xiàn);struts有著豐富的taglib,如能靈活運用,則能大大提高開發(fā)效率。
Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)
2、簡述STRUTS架構(gòu)(說下Struts的工作流程、struts的工作原理)
簡述:
Struts是采用JavaServlet/JavaServerPages技術(shù),開發(fā)Web應(yīng)用程序的開放源碼的framework。采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計模式的應(yīng)用構(gòu)架。Struts有如下的主要功能:一.包含一個controllerservlet,能將用戶的請求發(fā)送到相應(yīng)的Action對象。二.JSP自由tag庫,并且在controllerservlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。三.提供了一系列實用對象:XML處理、通過JavareflectionAPIs自動處理JavaBeans屬性、國際化的提示和消息。
流程:
在web應(yīng)用啟動時就會加載初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象當(dāng)ActionServlet接收到一個客戶請求時,將執(zhí)行如下流程.
(1)檢索和用戶請求匹配的ActionMapping實例,如果不存在,就返回請求路徑無效信息;
(2)如果ActionForm實例不存在,就創(chuàng)建一個ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中;
(3)根據(jù)配置信息決定是否需要表單驗證.如果需要驗證,就調(diào)用ActionForm的validate()方法;
(4)如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象,就表示表單驗證成功;
(5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的Action實例不存在,就先創(chuàng)建這個實例,然后調(diào)用Action的execute()方法;
(5)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指向的JSP組件;
(6)ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶;
3、緩存
session緩存:被稱為Hibernate的第一級緩存.它存放被單前工作單元加載的對象。
sessionFactory緩存:被稱為Hibernate的第二級緩存.一個實例對應(yīng)一個數(shù)據(jù)存儲源.它是線程安全的,是重量級的。
它需要一個很大的緩存,用來存放預(yù)定義的SQL語句以及映射元數(shù)據(jù)等。
4、對象的3個狀態(tài)
瞬時:一個實體通過new操作符創(chuàng)建后,沒有和Hibernate的Session建立關(guān)系,
也沒有手動賦值過該實體的持久化標(biāo)識(持久化標(biāo)識可以認(rèn)為映射表的主鍵)。
此時該實體中的任何屬性的更新都不會反映到數(shù)據(jù)庫表中。
持久化:當(dāng)一個實體和Hibernate的Session創(chuàng)建了關(guān)系,
并獲取了持久化標(biāo)識,而且在Hibernate的Session生命周期內(nèi)存在。
此時針對該實體任何屬性的更改都會直接影響到數(shù)據(jù)庫表中一條記錄對應(yīng)字段的更新,
也即與對應(yīng)數(shù)據(jù)庫表保持同步。
脫管:當(dāng)一個實體和Hibernate的Session創(chuàng)建了關(guān)系,并獲取了持久化標(biāo)識,
而此時Hibernate的Session的生命周期結(jié)束,實體的持久化標(biāo)識沒有被改動過。
針對該實體的任何屬性的修改都不會及時反映到數(shù)據(jù)庫表中。
5、Spring里面applicationContext.xml文件能不能改成其他文件名?
ContextLoaderListener是一個ServletContextListener,它在你的web應(yīng)用啟動的時候初始化。缺省情況下,它會在WEB-INF/applicationContext.xml文件找Spring的配置。你可以通過定義一個元素名字為”contextConfigLocation”來改變Spring配置文件的位置。示例如下:
org.springframework.web.context.ContextLoaderListenercontextConfigLocation/WEB-INF/xyz.xml
以上就是動力節(jié)點java學(xué)院小編整理的“5道關(guān)于SSH框架的面試題及答案”的內(nèi)容,希望對大家有幫助,更多精彩內(nèi)容請關(guān)注動力節(jié)點java學(xué)院官網(wǎng)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)
初級 202925
初級 203221
初級 202629
初級 203743