1. 談談你mvc的理解
MVC是Model—View—Controler的簡稱。即模型—視圖—控制器。MVC是一種設計模式,它強制性的把應用程序的輸入、處理和輸出分開。
MVC的處理過程:首先控制器接受用戶的請求,調用相應的模型來進行業務處理,並返回數據給控制器。控制器調用相應的視圖來顯示處理的結果。並經過視圖呈現給用戶。
Struts
1. struts1.2和struts2.0的區別?如何控制兩種框架中的單例模式?
struts1.2和struts2.0的對比
a、Action類:
struts1.2要求Action類繼承一個基類。struts2.0 Action要求繼承ActionSupport基類
b、線程模式
struts1.2 Action是單例模式的而且必須是線程安全的,由於僅有一個Action的實例來處理全部的請求。
單例策略限制了Struts1.2 Action能作的事情,而且開發時特別當心。Action資源必須是線程安全的或同步的。
struts2.0 Action爲每個請求產生一個實例,所以沒有線程安全問題。
c、Servlet依賴
struts1.2 Action依賴於Servlet API,由於當一個Action被調用時HttpServletRequest和HttpServletResponse被傳遞給execut方法。
struts2.0 Action不依賴於容器,容許Action脫離容器單獨測試。若是須要,Struts2 Action仍然能夠訪問初始的Request和Response。
可是,其餘的元素減小或者消除了直接訪問HttpServletRequest和HttpServletResponse的必要性。
d、可測性
測試struts1.2 Action的一個主要問題是execute方法暴露了Servlet API(這使得測試要依賴於容器)。一個第三方擴展:struts TestCase
提供了一套struts1.2的模擬對象來進行測試。
Struts2.0 Action能夠經過初始化、設置屬性、調用方法來測試,「依賴注入」也使得測試更容易。
2. 項目中爲何使用SSH
1. 使用Struts是由於struts是基於MVC模式的,很好的將應用程序進行了分層,使開發者更關注於業務邏輯的實現;第二,struts有着豐富的taglib,如能靈活運用,則能大大提升開發效率。
2. 使用Hibernate:由於hibernate爲Java應用提供了一個易用的、高效率的對象關係映射框架。hibernate是個輕量級的持久性框架,功能豐富。
3. 使用Spring:由於spring基於IoC(Inversion of Control,反向控制)和AOP構架多層j2ee系統的框架,但它不強迫你必須在每一層中必須使用Spring,由於它模塊化的很好,容許你根據本身的須要選擇使用它的某一個模塊;採用IoC使得能夠很容易的實現bean的裝配,提供了簡潔的AOP並據此實現事務管理(Transcation Managment),等等
3. struts與spring是如何繼承的
不懂題目之意:是不是說的struts的action都繼承自org.apache.struts.action.Action而Spring中的繼承就不清楚了。
4. struts如何實現國際化
如下以兩國語言(中文,英文)爲例:
1. 在工程中加入Struts支持
2. 編輯ApplicationResource.properties文件,在其中加入要使用國際化的信息, 例如:
lable.welcome.china=Welcome!!!
3. 建立英文資源文件ApplicationResource_en.properites
4. 建立臨時中文資源文件ApplicationResource_temp.properites 例如:lable.welcom.china=中國歡迎您!
5. 對臨時中文資源文件進行編碼轉換。可使用myeclipse的插件,也能夠在dos下執行:
native2ascii -encoding gb2312 ApplicationResource_temp.properties ApplicationResource_zh_CN.properties
6. 在jsp中加入struts的bean標記庫 <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
顯示信息:
能夠在struts-config.xml文件中定義多個資源包,而每一個資源包可以使用key屬性指定包的名稱。
5. struts2.0的經常使用標籤
1. 往action裏傳值:
2. 顯示標籤 property 用於輸出指定值:
3. 用於從頁面往action中(user)的對象內傳值:
4. 判斷 用於在頁面中判斷指定數據 …. ….
5. 迭代用於將List、Map、ArrayList等集合進行循環遍歷
6. URL地址標籤,用於生成一個URL地址,能夠經過URL標籤指定的子元素向URL地址發送請求參數
7. 超連接 通常和標籤一塊兒使用,用於帶多個參數。「>超連接
8. set標籤,用於將某個值放入指定的範圍內。例如application,session等。
6. struts中怎麼配置form-bean、action、tiles
此處配置的是struts1.2的
form-bean配置:(在配置文件struts-config.xml中):
name: 指定form的名字; type指定form的類型:包名+類名;
action配置:(在配置文件struts-config.xml中)
attribute=""
input=""
name=""
parameter=""
scope="request"
type=""
>
path:請求Action的名字; attribute:form的名字,與form-bean中的name對應; input:輸入頁的路徑;
name:若是配置了attribute,name不起做用,與attribute同樣; parameter:使用分發Action時,指定調用分發
Action中的方法名;
scope:Action的範圍; type:Action的類型:包名+類名;
7.什麼是IOC(DI),有什麼好處(java project 的spring IOC模擬)
IOC(Inversion Of Control,控制反轉):一個類的某個屬性須要使用時,須要有本類本身初始化。而在spring類的某些屬性不用本身初始化而交給了spring來管理。這樣的轉換就是IOC思想。Spring的IOC思想是,spring的IOC容器在初始化的時候就根據配置對相應的對象進行初始化,並放在容器中。同時根據配置對相應類的屬性進行初始化。也就是DI(Dependency Injection依賴注入),至此類的初始化不須要類自己負責初始化而交給了spring容器。
IOC的好處是:下降耦合性:某個類的一個屬性,之前是該類本身控制,而引人Spring後,這個類的屬性由Spring控制。
Spring IOC的模擬所作的事情是:在xml文件配置好相應的bean,設置注入關係。在解析xml時候對bean進行初始化同時對相應屬性進行注入。