5道關(guān)于SSH框架的面試題及答案

5道關(guān)于SSH框架的面試題及答案

深圳達(dá)內(nèi)教育      2022-04-20 13:21:01     17

5道關(guān)于SSH框架的面試題及答案,今天深圳達(dá)內(nèi)教育java學(xué)院小編為大家整理了5道關(guān)于SSH框架的面試題及答案,希望對(duì)各位正在找工作的java程序員有幫助。下面和小編

課程價(jià)格 請(qǐng)咨詢

上課時(shí)段: 授課校區(qū):

詳細(xì)介紹

今天深圳達(dá)內(nèi)教育java學(xué)院小編為大家整理了“5道關(guān)于SSH框架的面試題及答案”,希望對(duì)各位正在找工作的java程序員有幫助。下面和小編一起看看吧。

1、寫出你熟悉的開源框架以及各自的作用(項(xiàng)目中為什么使用SSH)

框架:hibernate,spring,struts1/struts2.

  Hibernate主要用于數(shù)據(jù)持久化;封裝了JDBC操作;還提供了一個(gè)易用的、高效率的對(duì)象關(guān)系映射框架;

  Spring的控制反轉(zhuǎn)能起到解耦合的作用;

  Struts主要用于請(qǐng)求處理的流程控制;struts是基于MVC模式的,很好的將應(yīng)用程序進(jìn)行了分層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn);struts有著豐富的taglib,如能靈活運(yùn)用,則能大大提高開發(fā)效率。

  Struts(表示層)+Spring(業(yè)務(wù)層)+Hibernate(持久層)

  2、簡(jiǎn)述STRUTS架構(gòu)(說下Struts的工作流程、struts的工作原理)

  簡(jiǎn)述:

  Struts是采用JavaServlet/JavaServerPages技術(shù),開發(fā)Web應(yīng)用程序的開放源碼的framework。采用Struts能開發(fā)出基于MVC(Model-View-Controller)設(shè)計(jì)模式的應(yīng)用構(gòu)架。Struts有如下的主要功能:一.包含一個(gè)controllerservlet,能將用戶的請(qǐng)求發(fā)送到相應(yīng)的Action對(duì)象。二.JSP自由tag庫(kù),并且在controllerservlet中提供關(guān)聯(lián)支持,幫助開發(fā)員創(chuàng)建交互式表單應(yīng)用。三.提供了一系列實(shí)用對(duì)象:XML處理、通過JavareflectionAPIs自動(dòng)處理JavaBeans屬性、國(guó)際化的提示和消息。

  流程:

  在web應(yīng)用啟動(dòng)時(shí)就會(huì)加載初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對(duì)象當(dāng)ActionServlet接收到一個(gè)客戶請(qǐng)求時(shí),將執(zhí)行如下流程.

 ?。?)檢索和用戶請(qǐng)求匹配的ActionMapping實(shí)例,如果不存在,就返回請(qǐng)求路徑無(wú)效信息;

  (2)如果ActionForm實(shí)例不存在,就創(chuàng)建一個(gè)ActionForm對(duì)象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對(duì)象中;

 ?。?)根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用ActionForm的validate()方法;

 ?。?)如果ActionForm的validate()方法返回null或返回一個(gè)不包含ActionMessage的ActuibErrors對(duì)象,就表示表單驗(yàn)證成功;

  (5)ActionServlet根據(jù)ActionMapping所包含的映射信息決定將請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action,如果相應(yīng)的Action實(shí)例不存在,就先創(chuàng)建這個(gè)實(shí)例,然后調(diào)用Action的execute()方法;

 ?。?)Action的execute()方法返回一個(gè)ActionForward對(duì)象,ActionServlet在把客戶請(qǐng)求轉(zhuǎn)發(fā)給ActionForward對(duì)象指向的JSP組件;

  (6)ActionForward對(duì)象指向JSP組件生成動(dòng)態(tài)網(wǎng)頁(yè),返回給客戶;

  3、緩存

  session緩存:被稱為Hibernate的第一級(jí)緩存.它存放被單前工作單元加載的對(duì)象。

  sessionFactory緩存:被稱為Hibernate的第二級(jí)緩存.一個(gè)實(shí)例對(duì)應(yīng)一個(gè)數(shù)據(jù)存儲(chǔ)源.它是線程安全的,是重量級(jí)的。

  它需要一個(gè)很大的緩存,用來存放預(yù)定義的SQL語(yǔ)句以及映射元數(shù)據(jù)等。

  4、對(duì)象的3個(gè)狀態(tài)

  瞬時(shí):一個(gè)實(shí)體通過new操作符創(chuàng)建后,沒有和Hibernate的Session建立關(guān)系,

  也沒有手動(dòng)賦值過該實(shí)體的持久化標(biāo)識(shí)(持久化標(biāo)識(shí)可以認(rèn)為映射表的主鍵)。

  此時(shí)該實(shí)體中的任何屬性的更新都不會(huì)反映到數(shù)據(jù)庫(kù)表中。

  持久化:當(dāng)一個(gè)實(shí)體和Hibernate的Session創(chuàng)建了關(guān)系,

  并獲取了持久化標(biāo)識(shí),而且在Hibernate的Session生命周期內(nèi)存在。

  此時(shí)針對(duì)該實(shí)體任何屬性的更改都會(huì)直接影響到數(shù)據(jù)庫(kù)表中一條記錄對(duì)應(yīng)字段的更新,

  也即與對(duì)應(yīng)數(shù)據(jù)庫(kù)表保持同步。

  脫管:當(dāng)一個(gè)實(shí)體和Hibernate的Session創(chuàng)建了關(guān)系,并獲取了持久化標(biāo)識(shí),

  而此時(shí)Hibernate的Session的生命周期結(jié)束,實(shí)體的持久化標(biāo)識(shí)沒有被改動(dòng)過。

  針對(duì)該實(shí)體的任何屬性的修改都不會(huì)及時(shí)反映到數(shù)據(jù)庫(kù)表中。

  5、Spring里面applicationContext.xml文件能不能改成其他文件名?

  ContextLoaderListener是一個(gè)ServletContextListener,它在你的web應(yīng)用啟動(dòng)的時(shí)候初始化。缺省情況下,它會(huì)在WEB-INF/applicationContext.xml文件找Spring的配置。你可以通過定義一個(gè)元素名字為”contextConfigLocation”來改變Spring配置文件的位置。示例如下:

  org.springframework.web.context.ContextLoaderListenercontextConfigLocation/WEB-INF/xyz.xml

以上就是深圳達(dá)內(nèi)教育java學(xué)院小編整理的“5道關(guān)于SSH框架的面試題及答案”的內(nèi)容,希望對(duì)大家有幫助,更多精彩內(nèi)容請(qǐng)關(guān)注深圳達(dá)內(nèi)教育java學(xué)院官網(wǎng)。

Java面試題及答案

培訓(xùn)啦提醒您:交易時(shí)請(qǐng)核實(shí)對(duì)方資質(zhì),對(duì)于過大宣傳或承諾需謹(jǐn)慎!任何要求預(yù)付定金、匯款等方式均存在風(fēng)險(xiǎn),謹(jǐn)防上當(dāng)。