JavaEE常見面試題_第1頁
JavaEE常見面試題_第2頁
JavaEE常見面試題_第3頁
JavaEE常見面試題_第4頁
JavaEE常見面試題_第5頁
已閱讀5頁,還剩58頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、MVC1. 談?wù)勀鉳vc的理解 MVC是ModelViewControler的簡(jiǎn)稱。即模型視圖控制器。MVC是一種設(shè)計(jì)模式,它強(qiáng)制性的把應(yīng)用程序的輸入、處理和輸出分開。 MVC中的模型、視圖、控制器它們分別擔(dān)負(fù)著不同的任務(wù)。 視圖: 視圖是用戶看到并與之交互的界面。視圖向用戶顯示相關(guān)的數(shù)據(jù),并接受用戶的輸入。視圖不進(jìn)行任何業(yè)務(wù)邏輯處理。 模型: 模型表示業(yè)務(wù)數(shù)據(jù)和業(yè)務(wù)處理。相當(dāng)于JavaBean。一個(gè)模型能為多個(gè)視圖提供數(shù)據(jù)。這提高了應(yīng)用程序的重用性 控制器: 當(dāng)用戶單擊Web頁面中的提交按鈕時(shí),控制器接受請(qǐng)求并調(diào)用相應(yīng)的模型去處理請(qǐng)求。 然后根據(jù)處理的結(jié)果調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。 M

2、VC的處理過程:首先控制器接受用戶的請(qǐng)求,調(diào)用相應(yīng)的模型來進(jìn)行業(yè)務(wù)處理,并返回?cái)?shù)據(jù)給控制器。控制器調(diào)用相應(yīng)的視圖來顯示處理的結(jié)果。并通過視圖呈現(xiàn)給用戶。Struts1. struts1.2和struts2.0的區(qū)別?如何控制兩種框架中的單例模式? struts1.2和struts2.0的對(duì)比 a、Action類: struts1.2要求Action類繼承一個(gè)基類。struts2.0 Action要求繼承ActionSupport基類 b、線程模式 struts1.2 Action是單例模式的并且必須是線程安全的,因?yàn)閮H有一個(gè)Action的實(shí)例來處理所有的請(qǐng)求。 單例策略限制了Struts1.2

3、 Action能做的事情,并且開發(fā)時(shí)特別小心。Action資源必須是線程安全的或同步的。 struts2.0 Action為每一個(gè)請(qǐng)求產(chǎn)生一個(gè)實(shí)例,因此每有線程安全問題。 c、Servlet依賴 struts1.2 Action依賴于Servlet API,因?yàn)楫?dāng)一個(gè)Action被調(diào)用時(shí)HttpServletRequest和HttpServletResponse被傳遞給execut方法。 struts2.0 Action不依賴于容器,允許Action脫離容器單獨(dú)測(cè)試。如果需要,Struts2Action仍然可以訪問初始的Request和Response。 但是,其他的元素減少或者消除了直接訪問

4、HttpServletRequest和HttpServletResponse的必要性。 d、可測(cè)性 測(cè)試struts1.2 Action的一個(gè)主要問題是execute方法暴露了Servlet API(這使得測(cè)試要依賴于容器)。一個(gè)第三方擴(kuò)展:strutsTestCase 提供了一套struts1.2的模擬對(duì)象來進(jìn)行測(cè)試。 Struts2.0 Action可以通過初始化、設(shè)置屬性、調(diào)用方法來測(cè)試,“依賴注入”也使得測(cè)試更容易。2. 項(xiàng)目中為什么使用SSH 1. 使用Struts是因?yàn)閟truts是基于MVC模式的,很好的將應(yīng)非用程序進(jìn)行了分層,使開發(fā)者更關(guān)注于業(yè)務(wù)邏輯的實(shí)現(xiàn);第二,struts有

5、著 豐富的taglib,如能靈活運(yùn)用,則能大大提高開發(fā)效率。 2. 使用Hibernate:因?yàn)閔ibernate為Java應(yīng)用提供了一個(gè)易用的、高效率的對(duì)象關(guān)系映射框架。hibernate是個(gè)輕量級(jí)的持久性框架,功能豐富。 3. 使用Spring:因?yàn)閟pring基于IoC(Inversion of Control,反向控制)和AOP構(gòu)架多層j2ee系統(tǒng)的框架,但它不強(qiáng)迫你必須在每一層 中必須使用Spring,因?yàn)樗K化的很好,允許你根據(jù)自己的需要選擇使用它的某一個(gè)模塊; 采用IoC使得可以很容易的實(shí)現(xiàn)bean的裝配,提供了簡(jiǎn)潔的AOP并據(jù)此實(shí)現(xiàn)事務(wù)管理(Transcation Manag

6、ment),等等3. struts與spring是如何繼承的 不懂題目之意:是否是說的struts的action都繼承自org.apache.struts.action.Action 而Spring中的繼承就不清楚了。4. struts如何實(shí)現(xiàn)國際化 以下以兩國語言(中文,英文)為例: 1. 在工程中加入Struts支持 2. 編輯ApplicationRperties文件,在其中加入要使用國際化的信息, 例如:lable.welcome.china=Welcome! 3. 創(chuàng)建英文資源文件ApplicationResource_perites 4. 創(chuàng)建臨時(shí)

7、中文資源文件ApplicationResource_perites 例如:lable.welcom.china=中國歡迎您! 5. 對(duì)臨時(shí)中文資源文件進(jìn)行編碼轉(zhuǎn)換。可以使用myeclipse的插件,也可以在dos下執(zhí)行: native2ascii -encoding gb2312ApplicationResource_perties ApplicationResource_zh_CN.properties 6. 在jsp中加入struts的bean標(biāo)記庫 <% tagliburi="/WEB-INF/struts-bean.tld" p

8、refix="bean"%> 顯示信息: <bean:messagekey="label.welcome.china">可以在struts-config.xml文件中定義多個(gè)資源包,而每個(gè)資源包可使用key屬性指定包的名稱。5. struts2.0的常用標(biāo)簽 1. 往action里傳值:<input name="userName"type="text" class="input6" size="15"> 2. 顯示標(biāo)簽 property 用于輸出

9、指定值:<s:propertyvalue="userName "/>3. 用于從頁面往action中(user)的對(duì)象內(nèi)傳值:<s:text name="user.userName "id="username"/> 4. 判斷<s:if> </s:if> 用于在頁面中判斷指定數(shù)據(jù) <s:iftest="userName = admin">. </s:if> <s:else>. </s:else> 5. 迭代<s:i

10、terator>用于將List、Map、ArrayList等集合進(jìn)行循環(huán)遍歷 <s:iterator value="userList"id="user" status="u"> <s:propertyvalue="userName"/></a> </s:iterator> 6. URL地址標(biāo)簽,<s:url>用于生成一個(gè)URL地址,可以通過URL標(biāo)簽指定的<s:param>子元素向URL地址發(fā)送請(qǐng)求參數(shù) <s:url action=

11、" "> <s:param name=" "value=""></s:param> </s:url> 7. 超鏈接 <a href >一般和<s:url>標(biāo)簽一起使用,用于帶多個(gè)參數(shù)。 <a href=" <s:url action=" "> <s:param name=" "value=""></s:param> <s:param name="

12、; "value=""></s:param> <s:param name=" "value=""></s:param> </s:url> ">超鏈接</a> 8. set標(biāo)簽,用于將某個(gè)值放入指定的范圍內(nèi)。例如application,session等。 <s:set name="user"value="userName" scope=”request”/>6. struts中怎么配置form-

13、bean、action、tiles 此處配置的是struts1.2的 form-bean配置:(在配置文件struts-config.xml中): <form-beans > <form-beanname="" type=""></form-bean> </form-beans> name: 指定form的名字; type指定form的類型:包名+類名; action配置:(在配置文件struts-config.xml中) <action-mappings > <actionpath=&q

14、uot;" attribute="" input="" name="" parameter="" scope="request" type="" ></action> </action-mappings> path:請(qǐng)求Action的名字; attribute:form的名字,與form-bean中的name對(duì)應(yīng); input:輸入頁的路徑; name:如果配置了attribute,name不起作用,與attribute一樣; para

15、meter:使用分發(fā)Action時(shí),指定調(diào)用分發(fā)Action中的方法名; scope:Action的范圍; type:Action的類型:包名+類名; tites配置: 1. 新建一個(gè) tiles-defs.xml文件,并在其中做如下配置: <?xml version="1.0"encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC"-/Apache Software Foundation/DTD Tiles Configuration 1.1/EN""h

16、ttp://struts/dtds/tiles-config_1_1.dtd"> <tiles-definitions> <definitionname="member-definition" path="/Jsp/layout.jsp"> <put name="top"value="/mTop.do"/> <put name="left"value="/mLeft.do"/>

17、 <put name="main"value="/defaultMmain.do"/> </definition> </tiles-definitions> 2. 在web.xml和struts-config.xml和web.xml中做相應(yīng)配置: 在struts-config.xml中配置如下: * <plug-inclassName="org.apache.struts.tiles.TilesPlugin"> <set-propertyproperty="definit

18、ions-config"value="/WEB-INF/tiles-defs.xml"/> <set-propertyproperty="definitions-parser-validate" value="true"/> </plug-in> * 在web.xml中配置如下: * <init-param> <param-name>definitions-config</param-name> <param-value>/WEB-INF/tile

19、s-defs.xml</param-value> </init-param> * 3. 調(diào)用Tiles組件 Tiles組件是通過Struts Action來調(diào)用的,在struts-config.xml中做如下action配置: * <action path="/member" parameter="member-definition" type="org.apache.struts.actions.ForwardAction"/> *7. logic標(biāo)簽有哪幾個(gè)? 此標(biāo)簽庫可以分為三種類型:條件、循

20、環(huán)、轉(zhuǎn)發(fā)/重定向。 1. 條件類型 (沒標(biāo)注的都比較簡(jiǎn)單) logic:empty, logic:notEmpty; logic:equal, logic:notEqual,logic:lessThan, logic:greaterThan,logic:lessEqual, logic:greaterEqual; logic:present, logic:notPresent; logic:match, logic:notMatch; 比較兩字符串是否相等,可以比較字符串的開始的、結(jié)尾的或其中的某個(gè)部分。location屬性:指定從某個(gè)位置開始進(jìn)行比較。 2. 循環(huán)類型 logic:itera

21、te 3. 轉(zhuǎn)發(fā)/重定向類型 logic:forward和logic:redirect logic:forward標(biāo)簽和jsp:forward標(biāo)簽相似,但它可以使用globalforward中的一個(gè)ActionForward 例如:<logic:forward name="login"/> - 與上面相關(guān)的global forward中的代碼: <global-forwards> <forward name="login"path="/loginForm.jsp"/> </global-for

22、wards> logic:redirect標(biāo)簽和上面的標(biāo)簽類似,但它默認(rèn)調(diào)用的方法是response.sendRedirect(), 取代了上面的requestDispatcher.forward()。最大的不同是它支持所有html:link標(biāo)簽的屬性,所以你能夠指定request參數(shù): <logic:redirectname="login" paramId="employeeId"paramName="employee" property="id" /> 在MVC框架下,不推薦使用這兩個(gè)標(biāo)簽,你

23、應(yīng)該是從controller中選擇下一個(gè)view,而不是從view中選擇.在Jsp頁面中不要過多的使用logic標(biāo)簽。8. action是單實(shí)例還是多實(shí)例,為什么? action是單實(shí)例的。當(dāng)多個(gè)用戶訪問一個(gè)請(qǐng)求的時(shí)候,服務(wù)器內(nèi)存中只有一個(gè)與之對(duì)應(yīng)的action類對(duì)象。 因?yàn)楫?dāng)服務(wù)器第一次加載struts的配置文件的時(shí)候,創(chuàng)建了一個(gè)Action后,每發(fā)送一個(gè)請(qǐng)求,服務(wù)器都會(huì)先去檢索相應(yīng)的范圍內(nèi)(request,session)是否存在 這樣一個(gè)action實(shí)例,如果存在,則使用這個(gè)實(shí)例,如果不存在,則創(chuàng)建一個(gè)action實(shí)例。9. dispatchAction是用什么技術(shù)實(shí)現(xiàn)的? Dispat

24、chAction是Aciton的一個(gè)子類,主要解決了一個(gè)請(qǐng)求處理多個(gè)功能的問題 普通的Action你只能寫execute方法來處理業(yè)務(wù),而想用這一個(gè)Action處理多個(gè)任務(wù),你必須要請(qǐng)求參數(shù)進(jìn)行解析,用if語句塊來處理 舉一個(gè)小例子: 有如下一個(gè)url: http:/localhost:8080/myApp/addUserAction.do 如果你處理這個(gè)url的是一個(gè)普通的Action,那么就只能在execute里面執(zhí)行插入的相關(guān)操作,如果換成一下url: http:/localhost:8080/myApp/UserAction.do?method=add 你就應(yīng)該根據(jù)method對(duì)象的值

25、來執(zhí)行相應(yīng)的操作,如再有一個(gè)路徑http:/localhost:8080/myApp/UserAction.do?method=delete 這個(gè)還可以使用那個(gè)Action來處理的,只是多判斷一下而已.如果你用DispatchAction,就簡(jiǎn)單多了,所以dispatchAction還是用的Action的這么一個(gè)技術(shù)。10. struts2.0的mvc模式?與struts1.0的區(qū)別? struts2的mvc模式:當(dāng)用戶在頁面提交用戶請(qǐng)求時(shí),該請(qǐng)求需要提交給struts2的控制器處理。struts2的控制器根據(jù)處理結(jié)果, 決定將哪個(gè)頁面呈現(xiàn)給客戶端。 與struts1最大的不同是:struts

26、2的控制器。struts2的控制器不再像struts1的控制器,需要繼承一個(gè)Action父類,甚至可以無需實(shí)現(xiàn) 任何接口,struts2的Action就是一個(gè)普通的POJO。實(shí)際上,Struts2 的Action就是一個(gè)包含execute方法的普通Java類 該類里包含的多個(gè)屬性用于封裝用戶的請(qǐng)求參數(shù)。11. STRUTS的配置文件是什么? struts-config.xml12. 請(qǐng)寫出Struts的工作原理。13. struts的處理流程。一、ActionServlet的初始化ActionServlet作為Struts組件的前端控制器,由于web.xml的相應(yīng)配置:<load-on-

27、startup>0</load-on-startup>在應(yīng)用一加載時(shí)即會(huì)被實(shí)例化并調(diào)用其init方法,init方法所做的主要工作有二:1. 加載struts配置文件,并創(chuàng)建用于封裝配置信息的ModuleConfig對(duì)象2. 加載資源文件,并創(chuàng)建用于封裝資源文件的MessageResources對(duì)象需要注意兩點(diǎn):如果web.xml有多模塊配置,將創(chuàng)建多個(gè)ModuleConfig對(duì)象和MessageResources對(duì)象分別用于封裝各個(gè)模塊的struts配置文件和資源文件。針對(duì)各個(gè)模塊所創(chuàng)建的ModuleConfig對(duì)象和MessageResources對(duì)象將存儲(chǔ)在Servlet

28、Context中,對(duì)應(yīng)的屬性名中有該模塊名稱的相應(yīng)標(biāo)識(shí)。另外,如果有相應(yīng)配置的話,init方法還將初始化數(shù)據(jù)源和PlugIn二、ActionServlet的process所有形如*.do的請(qǐng)求(根據(jù)web.xml中的相關(guān)配置)將提交給ActionServlet,最終將調(diào)用其process方法。process方法的主要工作有三:1. 根據(jù)請(qǐng)求信息獲知所請(qǐng)求的模塊名稱,從ServletContext中獲得與請(qǐng)求模塊對(duì)應(yīng)的的ModuleConfig對(duì)象,并存儲(chǔ)到request中。2. 根據(jù)模塊信息獲得相應(yīng)的RequestProcessor對(duì)象,一個(gè)模塊對(duì)應(yīng)一個(gè)RequestProcessor對(duì)象,R

29、equestProcessor對(duì)象將關(guān)聯(lián)與所屬模塊對(duì)應(yīng)的ModuleConfig對(duì)象。3. 調(diào)用RequestProcessor對(duì)象的process方法,將request和response作為參數(shù)傳遞給它。三、RequestProcessor的processRequestProcessor對(duì)象的process方法的主要工作有五步:1. 調(diào)用自己的 processPreprocess(request, response)方法,該方法不進(jìn)行任何操作,用于子類重寫擴(kuò)展其功能。2. 獲得與請(qǐng)求地址所匹配的ActionMapping對(duì)象,AcionMapping對(duì)象用于封裝一個(gè)特定acion的配置信息。

30、3. 根據(jù)ActionMapping中的配置信息獲得ActionForm對(duì)象(該對(duì)象將緩存到request或session中),并將表單數(shù)據(jù)填充到ActionForm中,然后根據(jù)ActionMapping的配置決定是否驗(yàn)證ActionForm,如果驗(yàn)證,將調(diào)用ActionForm的 validate方法,若其返回的ActionErros對(duì)象中包含ActionMessage對(duì)象則表示驗(yàn)證失敗,將轉(zhuǎn)向action配置信息 input屬性所指示的地址。4. 如果ActionForm無需驗(yàn)證或驗(yàn)證通過將創(chuàng)建并緩存與請(qǐng)求地址匹配的Action對(duì)象,將ActionMapping對(duì)象、ActionForm對(duì)

31、象、request和response作為參數(shù)調(diào)用其execute方法。5. 根據(jù)Action對(duì)象的execute方法返回的ActionForward對(duì)象,將請(qǐng)求轉(zhuǎn)發(fā)或重定向到該ActionForward所封裝的地址。14. 用struts +hibernate做一個(gè)增刪查改(機(jī)試)15. Struts2.0與Struts1.x有何區(qū)別。Feature特征Struts 1 Struts的一Struts 2 Struts的2Action classes行動(dòng)班Struts 1 requires Action classes to extend an abstract base class. Stru

32、ts的一要求采取行動(dòng)班,以延長(zhǎng)一個(gè)抽象的基類。 A common problem in Struts 1 is programming to abstract classes instead of interfaces.一個(gè)共同的問題在Struts的一,是編程抽象類而不是接口。An Struts 2 Action may implement an Action interface, along with other interfaces to enable optional and custom services. 1 2 Struts的行動(dòng),可能實(shí)施一項(xiàng)行動(dòng)的界面,隨著其他接口,使可選和定制

33、服務(wù)。 Struts 2 provides a base ActionSupport class to implement commonly used interfaces. Struts的2提供了相應(yīng)的actionsupport一流的執(zhí)行常用的接口。 Albeit, the Action interface is not required.雖然,這項(xiàng)行動(dòng)的界面是不是必需的。 Any POJO object with a execute signature can be used as an Struts 2 Action object.任何波霍對(duì)象與執(zhí)行的簽名可以被用來作為一個(gè)Struts的

34、二行動(dòng)的對(duì)象。Threading Model線程模型Struts 1 Actions are singletons and must be thread-safe since there will only be one instance of a class to handle all requests for that Action. Struts的一行動(dòng)是單身,必須線程安全的,因?yàn)閷⒅挥幸粋€(gè)實(shí)例一類來處理所有的請(qǐng)求采取行動(dòng)。 The singleton strategy places restrictions on what can be done with Struts 1 Actio

35、ns and requires extra care to develop.單身人士策略地方的限制,可以做些什么與Struts的一行動(dòng),并要求加倍小心發(fā)展。 Action resources must be thread-safe or synchronized.行動(dòng)的資源,必須線程安全的或同步。Struts 2 Action objects are instantiated for each request, so there are no thread-safety issues. 2 Struts的行動(dòng)對(duì)象是實(shí)例對(duì)于每個(gè)請(qǐng)求,因此沒有線程安全問題。 (In practice, servl

36、et containers generate many throw-away objects per request, and one more object does not impose a performance penalty or impact garbage collection.) (在實(shí)踐中, Servlet的容器,產(chǎn)生許多扔離家出走的對(duì)象,每次請(qǐng)求,并多一個(gè)對(duì)象不施加表現(xiàn)罰款,或影響垃圾收集)。Servlet Dependency Servlet的依賴Struts 1 Actions have dependencies on the servlet API since the

37、 HttpServletRequest and HttpServletResponse is passed to the execute method when an Action is invoked. Struts的一行動(dòng),依賴于該Servlet的空氣污染指數(shù)以來, httpservletrequest和httpservletresponse傳遞給Execute方法,當(dāng)一個(gè)行動(dòng)是引用。Struts 2 Actions are not coupled to a container. Struts的行動(dòng),二是不耦合的一個(gè)貨柜。 Most often the servlet contexts a

38、re represented as simple Maps, allowing Actions to be tested in isolation.最經(jīng)常的Servlet的背景是派代表作為簡(jiǎn)單的地圖,讓行動(dòng),以測(cè)試陷入孤立的境地。 Struts 2 Actions can still access the original request and response, if required. 2 Struts的行動(dòng)仍然可以使用原來的請(qǐng)求和響應(yīng),如果需要。 However, other architectural elements reduce or eliminate the need to

39、access the HttpServetRequest or HttpServletResponse directly.不過,其他建筑元素,減少或消除需要訪問httpservetrequest或httpservletresponse直接。Testability測(cè)試A major hurdle to testing Struts 1 Actions is that the execute method exposes the Servlet API.一個(gè)主要障礙,以測(cè)試Struts的一行動(dòng)是Execute方法暴露了Servlet的空氣污染指數(shù)。 A third-party extension,

40、 Struts TestCase, offers a set of mock object for Struts 1.第三黨的擴(kuò)展, Struts的testcase ,提供了一套模擬對(duì)象的Struts 1 。Struts 2 Actions can be tested by instantiating the Action, setting properties, and invoking methods. 2 Struts的行動(dòng)可以測(cè)試實(shí)例化的行動(dòng),設(shè)置屬性,引用的方法。 Dependency Injection support also makes testing simpler.依賴注入

41、的支持也使測(cè)試更簡(jiǎn)單。Harvesting Input收獲的投入Struts 1 uses an ActionForm object to capture input. Struts的一使用actionform對(duì)象捕獲輸入。 Like Actions, all ActionForms must extend a base class.一樣的行動(dòng),所有actionforms必須擴(kuò)大基地,一流的。 Since other JavaBeans cannot be used as ActionForms, developers often create redundant classes to cap

42、ture input.由于其他的JavaBeans不能被用來作為actionforms ,開發(fā)商常常造成多余的班,以捕捉的投入。 DynaBeans can used as an alternative to creating conventional ActionForm classes, but, here too, developers may be redescribing existing JavaBeans. dynabeans可以用來作為一種替代創(chuàng)造常規(guī)actionform班,但這里太,發(fā)展商可能會(huì)redescribing現(xiàn)有的JavaBeans 。Struts 2 uses A

43、ction properties as input properties, eliminating the need for a second input object. Struts的2使用性能的行動(dòng)作為輸入屬性,不再需要第二個(gè)輸入對(duì)象。 Input properties may be rich object types which may have their own properties.輸入屬性可能是豐富的對(duì)象類型可能有自己的屬性。 The Action properties can be accessed from the web page via the taglibs.行動(dòng)性質(zhì)可

44、以從網(wǎng)頁上通過taglibs 。 Struts 2 also supports the ActionForm pattern, as well as POJO form objects and POJO Actions. Struts的2還支持actionform模式,以及波霍形式,對(duì)象和波霍行動(dòng)。 Rich object types, including business or domain objects, can be used as input/output objects.豐富的對(duì)象類型,其中包括商業(yè)利益或域?qū)ο螅梢员挥脕碜鳛檩斎?輸出對(duì)象。 The ModelDriven fea

45、ture simplifies taglb references to POJO input objects.該modeldriven功能簡(jiǎn)化taglb的提述,波霍投入對(duì)象。Expression Language語言表達(dá)Struts 1 integrates with JSTL, so it uses the JSTL EL. Struts的一整合與jstl ,所以它使用jstl下午。 The EL has basic object graph traversal, but relatively weak collection and indexed property support.的El已

46、基本對(duì)象圖遍歷,但相對(duì)薄弱的收集和索引財(cái)產(chǎn)的支持。Struts 2 can use JSTL, but the framework also supports a more powerful and flexible expression language called "Object Graph Notation Language" (OGNL). Struts的二可以使用jstl ,但框架也支持一個(gè)更強(qiáng)大和靈活的語言表達(dá)所謂的“對(duì)象圖形符號(hào)語言” ( ognl )。Binding values into views有約束力的價(jià)值觀納入意見Struts 1 uses th

47、e standard JSP mechanism for binding objects into the page context for access. Struts的一使用標(biāo)準(zhǔn)的JSP機(jī)制,有約束力的物體進(jìn)入該網(wǎng)頁的背景下訪問。Struts 2 uses a "ValueStack" technology so that the taglibs can access values without coupling your view to the object type it is rendering. Struts的2使用“ valuestack ”技術(shù),使該tag

48、libs可以訪問的價(jià)值觀沒有耦合您的看法,以對(duì)象類型,這是渲染。 The ValueStack strategy allows reuse of views across a range of types which may have the same property name but different property types.該valuestack策略允許重用的意見覆蓋的類型可能有相同的屬性名稱,但不同的屬性類型。Type Conversion類型轉(zhuǎn)換Struts 1 ActionForm properties are usually all Strings. Struts的一ac

49、tionform屬性通常是所有字符串。 Struts 1 uses Commons-Beanutils for type conversion. Struts的一用途的商品- beanutils為類型轉(zhuǎn)換。 Converters are per-class, and not configurable per instance.轉(zhuǎn)換器每級(jí)的,而不是配置的每個(gè)實(shí)例。Struts 2 uses OGNL for type conversion. Struts的2使用ognl為類型轉(zhuǎn)換。 The framework includes converters for basic and common ob

50、ject types and primitives.該框架包括轉(zhuǎn)換為基本和共同的對(duì)象類型和原始。Validation驗(yàn)證Struts 1 supports manual validation via a validate method on the ActionForm, or through an extension to the Commons Validator. Struts的一支持手冊(cè)審定通過驗(yàn)證方法對(duì)actionform ,或通過一個(gè)擴(kuò)展到商品校驗(yàn)。 Classes can have different validation contexts for the same class,

51、 but cannot chain to validations on sub-objects.班級(jí)可以有不同的驗(yàn)證背景為同一階層,但不能鏈,以驗(yàn)證就分對(duì)象。Struts 2 supports manual validation via the validate method and the XWork Validation framework. Struts的2支持手冊(cè)審定通過驗(yàn)證的方法和xwork的驗(yàn)證框架。 The Xwork Validation Framework supports chaining validation into sub-properties using the v

52、alidations defined for the properties class type and the validation context.該xwork的驗(yàn)證框架支持鏈接驗(yàn)證分為分性能的使用驗(yàn)證的定義為性能一流的類型和驗(yàn)證。Control Of Action Execution控制行動(dòng)的執(zhí)行Struts 1 supports separate Request Processors (lifecycles) for each module, but all the Actions in the module must share the same lifecycle. Struts的

53、一支持獨(dú)立的請(qǐng)求處理器(生命周期)為每個(gè)單元,但所有的行動(dòng),在該模塊必須共用相同的生命周期。Struts 2 supports creating different lifecycles on a per Action basis via Interceptor Stacks. 2 Struts的支持,創(chuàng)造不同的生命周期對(duì)每行動(dòng)的基礎(chǔ)上通過攔截堆疊。 Custom stacks can be created and used with different Actions, as needed.自定義棧,才能創(chuàng)造和使用不同的行動(dòng),視需要。16. Struts/webwork 的工作機(jī)制,它有哪些

54、標(biāo)簽Struts 2框架的大致處理流程如下:瀏覽器發(fā)送請(qǐng)求,例如請(qǐng)求/mypage.action、/reports/myreport.pdf等。核心控制器FilterDispatcher根據(jù)請(qǐng)求決定調(diào)用合適的Action。WebWork的攔截器鏈自動(dòng)對(duì)請(qǐng)求應(yīng)用通用功能,例如workflow、validation或文件上傳等功能。回調(diào)Action的execute方法,該execute方法先獲取用戶請(qǐng)求參數(shù),然后執(zhí)行某種數(shù)據(jù)庫操作,既可以是將數(shù)據(jù)保存到數(shù)據(jù)庫,也可以從數(shù)據(jù)庫中檢索信息。實(shí)際上,因?yàn)锳ction只是一個(gè)控制器,它會(huì)調(diào)用業(yè)務(wù)邏輯組件來處理用戶的請(qǐng)求。Action的execute方法處理

55、結(jié)果信息將被輸出到瀏覽器中,可以是HTML頁面、圖像,也可以是PDF文檔或者其他文檔。此時(shí)支持的視圖技術(shù)非常多,既支持JSP,也支持Velocity、FreeMarker等模板技術(shù)。Hibernate1. 什么是Hibernate的并發(fā)機(jī)制?怎么去處理并發(fā)問題? Hibernate并發(fā)機(jī)制: a、Hibernate的Session對(duì)象是非線程安全的,對(duì)于單個(gè)請(qǐng)求,單個(gè)會(huì)話,單個(gè)的工作單元(即單個(gè)事務(wù),單個(gè)線程),它通常只使用一次, 然后就丟棄。 如果一個(gè)Session 實(shí)例允許共享的話,那些支持并發(fā)運(yùn)行的,例如Http request,session beans將會(huì)導(dǎo)致出現(xiàn)資源爭(zhēng)用。 如果在Http Session中有hibernate的Session的話,就可能會(huì)出現(xiàn)同步訪問Http Session。只要用戶足夠快的點(diǎn)擊瀏覽器的“刷新”, 就會(huì)導(dǎo)致兩個(gè)并發(fā)運(yùn)行的線程使用同一個(gè)Session。 b、多個(gè)事務(wù)并發(fā)訪問同一塊資源,可能會(huì)引發(fā)第一類丟失更新,臟讀,幻讀,不可重復(fù)讀

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論