標籤:struts 面試題 java面試題
好啦 好啦。過不了多久我要參加社招啦,每天在部落格更新五個java方面的面試題以及參考回答的答案。
最近先來架構部分。
首先是struts2;
開始!
1.Struts2工作機制?
答:
1、用戶端初始化一個指向Servlet容器(例如Tomcat)的請求;
2、這個請求經過一系列的過濾器(Filter)(這些過濾器中有一個叫做ActionContextCleanUp的可選過濾器,這個過濾器對於Struts2和其他架構的整合很有協助,例如:SiteMesh Plugin);
3、接著FilterDispatcher被調用,FilterDispatcher詢問ActionMapper來決定這個請求是否需要調用某個Action;
4、如果ActionMapper決定需要調用某個Action,FilterDispatcher把請求的處理交給ActionProxy;
5、ActionProxy通過Configuration Manager詢問架構的設定檔,找到需要調用的Action類;
6、ActionProxy建立一個ActionInvocation的執行個體。
7、ActionInvocation執行個體使用命名模式來調用,在調用Action的過程前後,涉及到相關攔截器(Intercepter)的調用。
8、一旦Action執行完畢,ActionInvocation負責根據struts.xml中的配置找到對應的返回結果。返回結果通常是(但不總是,也可能是另外的一個Action鏈)一個需要被表示的JSP或者FreeMarker的模版。在表示的過程中可以使用Struts2 架構中繼承的標籤。在這個過程中需要涉及到ActionMapper。
2.使用Struts的好處?為什麼要使用Struts?
答:
1.它是建立在MVC這種公認的好的模式上的,Struts在M、V和C上都有涉及,但它主要是提供一個好的控制器和一套定製的標籤庫上,也就是說它的著力點在C和V上,因此,它天生就有MVC所帶來的一系列優點,如:結構層次分明,高可重用性,增加了程式的健壯性和延展性,便於開發與設計分工,提供集中統一的許可權控制、校正、國際化、日誌等等;
2.其次,它是個開源項目得到了包括它的發明者Craig R.McClanahan在內的一些程式大師和高手持續而細心的呵護,並且經受了實戰的檢驗,使其功能越來越強大,體系也日臻完善;
3.是它對其他技術和架構顯示出很好的融合性。
基於Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件
3.Struts的validate架構是如何驗證的?
答:
在struts設定檔中配置具體的錯誤提示,再在FormBean中的validate()方法具體調用。
具體校正以及詳解:http://perfectplan.iteye.com/blog/1561805
4.說下Struts的設計模式
答:
MVC模式(Model-View-Controller 模型-視圖-控制器)
Struts主要擔當了控制器的作用
5.Action 的實現通整合常用那種方法?
答:
一種是直接實現自己的Action;另一種是實現Action的介面繼承ActionSupport
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
每天五個java相關面試題(1)--struts2部分