1 Struts2與Struts1的聯繫與區別 爲什麼要用Struts2
Struts2不是從Struts1升級而來,而是有WebWork改名而來,
區別:
Struts2核心控制器是過濾器,面向切面編程,Struts1核心控制器是Servlet
具體區別可以看圖形,點擊這裏
2.Struts2的核心是什麼,體現了什麼思想
Struts2的核心是攔截器,基本上核心功能都是由攔截器完成,攔截器的實現體現了AOP(面向切面編程)思想
3 爲何繼承ActionSupport
4 Struts2 如何定位action中的方法
1 感嘆號定位方法(動態方法)。
2 在xml配置文件中通過配置多個action,使用action的method指定方法。
3 使用通配符(*)匹配方法。
5 模型驅動與屬性驅動是什麼 模型驅動使用時注意什麼問題
答:模型驅動與屬性驅動都是用來封裝數據的。
1.模型驅動:在實現類中實現ModelDriven<T>接口使用泛型把屬性類封裝起來,重寫getModel()方法,
2.屬性驅動:在實現類裏定義屬性,生成get與set方法,通過屬性來拿值。
3.Struts2是怎樣進行值封裝的?
6 Struts2如何進行校驗
編程校驗
1 繼承ActionSupport,重寫validate方法(針對所有方法)(服務器端編程,不推薦)。
2 校驗框架
每個Action類有一個校驗文件,命名 Action類名-validation.xml,且與Action類同目錄,這是對action裏面所有的方法進行校驗。
7 談談Struts2 的國際化
在struts2中是使用了攔截器來實現國際化。一般用全局範圍
struts2的國際化分爲三部分:
1.Action範圍,
2.包範圍,
3.全局範圍,一般屬性文件的名字是 前綴__語言名稱_國家地區名(大寫).properties。
8 OGNL是什麼? 你在項目中如何使用它
OGNL是:對象圖形導航語言。
Struts2中默認的表達式語言就是OGNL,任何取值默認都是OGNL中以壓棧方式取值
9 Strust2如何訪問Servlet API
1:通過ActionContext可以獲得request,application,session三個作用域
2:ServletActionContext去獲取原生的API。
10 什麼是攔截器 說說Struts2用攔截器來幹什麼 說出3個攔截器來,
如:國際化,權限,效驗等與源代碼無關的操作。
國際化,表單重複提交,處理類型轉換錯誤,日誌攔截器,等等..
11. 如何實現自定義攔截器?
答:可以繼承MethodFilterInterceptor重寫doIntercept方法指定某個方法進行攔截,或者繼承AbstractInterceptor,重寫intercept方法,
14.爲什麼要繼承默認的包?
15 .常見的有那些有十幾種結果集類型,
常見的結果集類型有dispatcher,redirect,redirectAction,stream等
默認的是dispatcher,是轉發
redirect指重定向,
16 開發項目時struts2在頁面怎樣拿值?
17.怎麼樣用Struts2進行文件的上傳或者下載
Struts2裏面已經提供了默認的攔截器來處理上傳,只要在jsp用了s:file標籤,然後在Action和Form中做些配置對應即可
下載是用了result爲stream的類型,然後在action定義默認值是是InputStream,從硬盤上面讀取文件到這個流賦值即可.
18.簡單講下struts裏面的標籤,說不少於5個
19.默認struts2裏面的標籤取值都是從那裏取值的
21.ValueStack分爲那兩部分,組成部分是什麼,分別怎麼訪問
22.標籤<s:property>和el表達式有什麼區別,