1. 程式人生 > >JAVA企業面試題精選 Struts 1-10

JAVA企業面試題精選 Struts 1-10

3.Struts

3.1.為什麼要用Struts2?

參考答案:

  主流的開發技術,大多數公司在使用,Struts是基於MVC模式開發的,MVC結構是一個優秀的設計思想,可以提高程式結構的靈活性,便於日後的維護和擴充套件.

3.2.簡述Struts的發展歷史

參考答案:

  最早出現的Struts1是一個非常著名的框架,它實現了MVC模式.Struts1簡單小巧,其中最成熟的版本是Struts1.2.
  之後出現了WebWork框架,其實現技術比Struts1先進,但影響力不如Struts1.
  在框架技術不斷髮展過程中,有人在WebWork核心XWork的基礎上包裝了Struts1(算是兩種框架的整合),由此,結合了Struts1的影響力和WebWork的先進技術,Struts2誕生了.
  所以說,Struts2不是Struts1的升級,它更像是WebWork的升級版本.

3.3.請簡述Struts2與Struts1的區別和聯絡

參考答案:

  Struts2與Struts1差別巨大,不能理解為Struts1的升級版;Struts2以Xwork為核心,可以理解為WebWork的升級版.

3.4.Struts2如何實現MVC,與Spring MVC有什麼不同?

參考答案:

  Struts2採用filter充當前端控制器處理請求,filter會根據struts.xml的配置,將請求分發給不同的業務控制器Action,再由Action處理具體的業務邏輯.Action處理完業務之後,filter會根據其返回的字串,從struts.xml中找到對應的result,最終由result將請求轉發給頁面.
  這個實現的思路與Spring MVC基本一致.其差異如下:
  1)Spring採用Servlet充當前端控制器,分發請求.
  2)Spring採用RequestMapping配置請求與業務控制器的關係.
  3)Spring採用Controller充當業務控制器.
  4)Spring採用ViewResolver將請求轉發給頁面.

3.5.在Struts2中頁面如何向Action傳參?

參考答案:

  Struts2中常用的傳參方式有2中,分別是基本屬性注入和域模型注入.
  其中,基本屬性注入是將表單中的資料,分別傳給Action中宣告的基本屬性,要求這些屬性有set方法,並且名稱與表單中框體的name值一致.
  域模型注入是將表單中的資料,傳給Action中的一個實體物件,要求這個物件具有set方法,並且表單中框體的name中的表示式要有如下格式”物件.屬性”.

3.6.什麼是OGNL?

參考答案:

  Object Graphics Navigation Language,物件圖導航語言,屬於表示式語言的一種,與EL表示式類似;Ognl技術是Struts2中的核心知識,它封裝於ognl.jar中;Ognl.jar工具包提供一個引擎,該引擎可以按照提供的ognl表示式訪問物件資料和方法.

3.7.OGNL工具的構成

參考答案:

  OGNL工具由三部分構成:
  1.OGNL引擎,負責解析執行OGNL表示式
  2.Root儲存區,負責儲存一個Object型別的物件,該儲存區資料訪問時,OGNL表示式格式為”屬性”
  3.Context儲存區,負責儲存一個Map型別的物件,該儲存區資料訪問時,OGNL表示式格式為”#key”

3.8.OGNL表示式有哪些用法,你熟悉其中哪幾種?

參考答案:

  OGNL有8種用法,其中常用的有2種,不太常用的有6中.
  我熟悉這2種常用的用法,其作用是:
  1)可以給基本屬性注入值
  2)可以給實體物件注入值
  另外6種用法也有所料及,作用是:
  1)可以訪問陣列或集合
  2)可以訪問Map
  3)可以在訪問時進行一些基本的運算
  4)可以在訪問時呼叫返回物件的方法
  5)可以直接建立一個臨時的集合
  6)可以直接建立一個臨時的Map

3.9.請簡述Struts2的Action的工作原理

參考答案:

  Struts2的Action工作原理如下:
  1.當客戶端發出請求,請求到達控制器;
  2.當控制器根據請求建立一個ValueStack物件,每個請求建立一個Action物件,Action物件存入到ValueStack物件的root棧頂.將ValueStack物件存入到request中.儲存的key為”struts.valueStack”;
  3.控制器呼叫Action物件接受請求引數,執行業務方法處理;
  4.控制器根據Action返回值呼叫result檢視元件處理;
  5.請求處理完成後,將ValueStack物件和Action物件銷燬.

3.10.請列出常用的至少五種Struts2的Result元件,並說明它們的作用

參考答案:

  1.dispatcher(預設) 以請求轉發方式呼叫一個JSP,生成響應檢視;
  2.redirect 以重定向方式呼叫一個Action;
  3.redirectAction 以重定向方式呼叫一個Action;
  4.chain 以請求轉發方式呼叫一個Action
  5.stream 以位元組流方式響應,將Action中指定的一個InputStream型別屬性輸出,將Action中的InputStream屬性以位元組流方式輸出;
  6.json 以json字串方式響應,將Action中指定的屬性,拼成一個json字串輸出.

3.Struts

3.1.為什麼要用Struts2?

參考答案:

  主流的開發技術,大多數公司在使用,Struts是基於MVC模式開發的,MVC結構是一個優秀的設計思想,可以提高程式結構的靈活性,便於日後的維護和擴充套件.

3.2.簡述Struts的發展歷史

參考答案:

  最早出現的Struts1是一個非常著名的框架,它實現了MVC模式.Struts1簡單小巧,其中最成熟的版本是Struts1.2.
  之後出現了WebWork框架,其實現技術比Struts1先進,但影響力不如Struts1.
  在框架技術不斷髮展過程中,有人在WebWork核心XWork的基礎上包裝了Struts1(算是兩種框架的整合),由此,結合了Struts1的影響力和WebWork的先進技術,Struts2誕生了.
  所以說,Struts2不是Struts1的升級,它更像是WebWork的升級版本.

3.3.請簡述Struts2與Struts1的區別和聯絡

參考答案:

  Struts2與Struts1差別巨大,不能理解為Struts1的升級版;Struts2以Xwork為核心,可以理解為WebWork的升級版.

3.4.Struts2如何實現MVC,與Spring MVC有什麼不同?

參考答案:

  Struts2採用filter充當前端控制器處理請求,filter會根據struts.xml的配置,將請求分發給不同的業務控制器Action,再由Action處理具體的業務邏輯.Action處理完業務之後,filter會根據其返回的字串,從struts.xml中找到對應的result,最終由result將請求轉發給頁面.
  這個實現的思路與Spring MVC基本一致.其差異如下:
  1)Spring採用Servlet充當前端控制器,分發請求.
  2)Spring採用RequestMapping配置請求與業務控制器的關係.
  3)Spring採用Controller充當業務控制器.
  4)Spring採用ViewResolver將請求轉發給頁面.

3.5.在Struts2中頁面如何向Action傳參?

參考答案:

  Struts2中常用的傳參方式有2中,分別是基本屬性注入和域模型注入.
  其中,基本屬性注入是將表單中的資料,分別傳給Action中宣告的基本屬性,要求這些屬性有set方法,並且名稱與表單中框體的name值一致.
  域模型注入是將表單中的資料,傳給Action中的一個實體物件,要求這個物件具有set方法,並且表單中框體的name中的表示式要有如下格式”物件.屬性”.

3.6.什麼是OGNL?

參考答案:

  Object Graphics Navigation Language,物件圖導航語言,屬於表示式語言的一種,與EL表示式類似;Ognl技術是Struts2中的核心知識,它封裝於ognl.jar中;Ognl.jar工具包提供一個引擎,該引擎可以按照提供的ognl表示式訪問物件資料和方法.

3.7.OGNL工具的構成

參考答案:

  OGNL工具由三部分構成:
  1.OGNL引擎,負責解析執行OGNL表示式
  2.Root儲存區,負責儲存一個Object型別的物件,該儲存區資料訪問時,OGNL表示式格式為”屬性”
  3.Context儲存區,負責儲存一個Map型別的物件,該儲存區資料訪問時,OGNL表示式格式為”#key”

3.8.OGNL表示式有哪些用法,你熟悉其中哪幾種?

參考答案:

  OGNL有8種用法,其中常用的有2種,不太常用的有6中.
  我熟悉這2種常用的用法,其作用是:
  1)可以給基本屬性注入值
  2)可以給實體物件注入值
  另外6種用法也有所料及,作用是:
  1)可以訪問陣列或集合
  2)可以訪問Map
  3)可以在訪問時進行一些基本的運算
  4)可以在訪問時呼叫返回物件的方法
  5)可以直接建立一個臨時的集合
  6)可以直接建立一個臨時的Map

3.9.請簡述Struts2的Action的工作原理

參考答案:

  Struts2的Action工作原理如下:
  1.當客戶端發出請求,請求到達控制器;
  2.當控制器根據請求建立一個ValueStack物件,每個請求建立一個Action物件,Action物件存入到ValueStack物件的root棧頂.將ValueStack物件存入到request中.儲存的key為”struts.valueStack”;
  3.控制器呼叫Action物件接受請求引數,執行業務方法處理;
  4.控制器根據Action返回值呼叫result檢視元件處理;
  5.請求處理完成後,將ValueStack物件和Action物件銷燬.

3.10.請列出常用的至少五種Struts2的Result元件,並說明它們的作用

參考答案:

  1.dispatcher(預設) 以請求轉發方式呼叫一個JSP,生成響應檢視;
  2.redirect 以重定向方式呼叫一個Action;
  3.redirectAction 以重定向方式呼叫一個Action;
  4.chain 以請求轉發方式呼叫一個Action
  5.stream 以位元組流方式響應,將Action中指定的一個InputStream型別屬性輸出,將Action中的InputStream屬性以位元組流方式輸出;
  6.json 以json字串方式響應,將Action中指定的屬性,拼成一個json字串輸出.