大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 程序員必會的10道struts2面試題

程序員必會的10道struts2面試題

更新時間:2020-10-14 17:14:11 來源:動力節點 瀏覽1475次

Struts2用于接受頁面信息然后通過內部處理,將結果返回,是一個基于MVC設計模式的Web應用框架,它本質上相當于一個servlet。在java程序員的面試中,會有很大的概率出現,因此struts2面試題是大家在參加java面試前需要學習的內容,這篇文章盤點了常考的基礎struts2面試題,一起來學習吧!

image.png

1、Struts2與Struts1的聯系與區別,為什么要用Struts2?

答:二者之間的聯系:struts1與struts2都是mvc框架的經典實現模式。

Struts2不是從Struts1升級而來,而是有WebWork改名而來,而WebWork只是Xwork加了很多WEB攔截器而已。

區別:(1)核心控制器改成了過濾器(過濾器比Servlet的級別要高,因為程序運行時是先進入過濾器再進入Servlet);(2)struts1要求業務類必須繼承Action或dispatchAction,struts2不強制這么做,只需要提供一個pojo類;(3)管理Action時struts1是單例模式,struts2是每個請求產生一個實例;(4)在表達式的支持上struts2不僅有jstl,還有功能更加強大的ognl表達式;(5)struts2支持多種視圖類型,如:jsp,freemaker,velocity,源代碼等。


2、Struts2的核心是什么?體現了什么思想?

答:Struts2的核心是攔截器,基本上核心功能都是由攔截器完成,攔截器的實現體現了AOP(面向切面編程)思想。


3、Struts2是怎樣進行值封裝的?

答:struts2的值封裝實際上是采用了ognl表達式。struts2的攔截器經過模型驅動時會先判斷action是否實現了ModelDriven,如果是則拿到模型的實例放在了棧的頂部,到屬性驅動的時候會從棧里面把棧頂的實例給取出來,從頁面傳進來的值放在一個map集合當中,通過map集合進行迭代會通過ognl技術把值封裝到實例中。


4、談談Struts2 的國際化?

答:在struts2中是使用了攔截器來實現國際化。struts2的國際化分為三部分:(1)Action范圍,這種范圍是用Action的實現類的類名來作為前綴__語言名稱_國家地區名(大寫).properties;(2)包范圍,包范圍是用package作為前綴__語言名稱_國家地區名(大寫).properties;(3)全局范圍,全局范圍的前綴默認的是application,可以通過xml配置文件配置常量(使用constant標簽注冊i18l攔截器)來指定前綴,前綴__語言名稱_國家地區名(大寫).properties。

國際化實現的原理:通過i18n攔截器獲得請求參數request——locale的值(zh或者是en)并把當前的值轉化為locale對象,把locale對象存在ww_trans_i18n_locale的session作用域中,根據struts2的請求處理流程,攔截器只會在進入action的時候才會調用,所有我們一般把對jsp的訪問轉化為對action的訪問。


5、Strust2如何訪問Servlet API?

答:(1)通過ActionContext可以獲得request,application,session三個作用域(struts2實際上是通過適配器來把servlet的api轉換為一個map,

并把這些map放在ActionContext里面);(2)通過ActionContext的子類ServletActionContext去獲取原滋原味的API;(3)可以通過實現ServletRequestAware接口,重寫里面的setServletRequest方法可以獲得request,實際上是通過set的依賴注入。


6、什么是Struts2中的攔截器?

答:攔截器是Struts2 Framework的支柱。Struts2攔截器負責框架完成的大部分處理,例如將請求參數傳遞給動作類,使Servlet API請求,響應,會話可用于Action類,驗證,i18n支持等。

ActionInvocation負責封裝Action類和攔截器并按順序觸發它們。在ActionInvocation中使用的最重要的方法是invoke()方法,它跟蹤攔截器鏈并調用下一個攔截器或動作。這是Java EE框架中責任鏈模式的最佳示例之一。


7、列舉Struts2中引入的一些有用的注釋?

答:Struts2中引入的一些重要注釋是:

@Action創建動作類

@Actions為多個動作配置單個類

@Namespace和@Namespaces用于創建不同的模塊

@Result用于結果頁面

@ResultPath用于配置結果頁面位置


8、怎樣能在動作類中獲得Servlet API請求,響應,HttpSession等對象?

答:Struts2操作類不提供對Servlet API組件的直接訪問,例如Request,Response和Session。但是,有時我們需要在操作類中進行這些訪問,例如檢查HTTP方法或設置響應中的cookie。

這就是為什么Struts2 API提供了一堆* Aware接口,我們可以實現這些接口來訪問這些對象。Struts2 API使用依賴注入在操作類中注入Servlet API組件。一些重要的Aware接口是SessionAware,ApplicationAware,ServletRequestAware和ServletResponseAware。


9、Struts2中令牌攔截器的用途是什么?

答:Web應用程序的主要問題之一是雙表單提交。如果不注意,雙重表單提交可能會導致向客戶收取雙倍金額或兩次更新數據庫值。我們可以使用令牌攔截器來解決雙表格提交問題。這個攔截器是在struts-default包中定義的,但它不是任何攔截器堆棧的一部分,所以我們需要在我們的動作類中手動包含它。


10、開發Struts2應用程序時要遵循哪些最佳實踐?

答:開發Struts2應用程序時的一些最佳實踐是:

(1)在創建程序包時始終嘗試擴展struts-default程序包,以避免在配置攔截器時出現代碼冗余;

(2)對于整個應用程序中的常見任務,例如記錄請求參數,請嘗試使用攔截器;

(3)始終將動作類java bean屬性保存在單獨的bean中以便重用代碼并實現ModelDriven接口;

(4)嘗試使用基于功能區域的命名空間配置在不同模塊中劃分應用程序;

(5)嘗試在結果頁面中使用Struts2標記進行代碼說明,如果需要,可以創建自己的類型轉換器;

(6)使用開發模式可以加快開發速度,但請確保生產代碼不以dev模式運行;

(7)Struts2提供了許多可以擁有資源包的地方,但是嘗試保留一個全局資源包,一個用于動作類以避免混淆;

(8)Struts2提供了許多可以擁有資源包的地方,但是嘗試保留一個全局資源包,一個用于動作類以避免混淆。


上面就是對struts2面試題的整理,并相應的附上了總結好的答案。Struts2是一種重量級的框架,是位于MVC架構中的controller,是java程序員需要掌握的技能。希望大家可以通過這10道struts2面試題來對自己進行一下檢驗,更多的面試題請到java面試題欄目查看,遇到不會或者模糊的知識點及時的通過看java視頻教程或者專業書的方式來查漏補缺。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 精品久久久久久综合日本 | 精品久久综合一区二区 | 亚洲日本中文字幕在线 | 国产男女爽爽爽免费视频 | 2019年国产不卡在线刷新 | 伊人久久青草青青综合 | 久久日本精品99久久久久 | 国产成人精品日本亚洲语音1 | 天天干夜夜看 | a一级特黄日本大片 s色 | 亚洲精品国产第一区二区三区 | 日韩精品大片 | 国产亚洲精品一区二区在线观看 | 久久艹伊人 | 免费国产成人高清在线观看麻豆 | 成人激情视频在线 | 色网址在线 | 欧美成人免费全网站大片 | 国产福利第一页 | 视频免费1区二区三区 | 免费亚洲视频在线观看 | 久久免费在线观看 | 夜夜爽毛片 | 二区不卡 | 99热这里只有精品久久免费 | 四虎永久免费地址在线网站 | 欧美在线色视频 | 黄色在线观看视频免费 | 四虎亚洲国产成人久久精品 | 久久综合干 | 色综合久久综合网欧美综合网 | 天天视频国产免费入口 | 国内精品视频一区二区三区八戒 | 一区二区三区在线播放视频 | 91探花在线 | 韩国色三级伦不卡高清在线观看 | 乱人伦99久久 | 五月四房婷婷 | 久久影院在线观看 | 亚洲精品国产第一区第二区国 | 亚洲精品在线观看视频 |