版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、39/39目 錄1Struts框架22Spring框架83AJAX技術(shù)144Hibernate框架175框架綜合運用246J2EE初級題目277J2SE初級題目331 Struts框架1. Struts框架的整體運行流程在web應(yīng)用啟動時就會加載初始化ActionServlet,ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對象,例如:Action的映射信息存放在ActionMapping對象中. 當(dāng)ActionServlet接收到一個客戶請求時,將執(zhí)行如下流程.A. 檢索和用戶請求匹配的ActionMapping實例,如果不
2、存在,就返回請求路徑無效信息;B. 如果ActionForm實例不存在,就創(chuàng)建一個ActionForm對象,把客戶提交的表單數(shù)據(jù)保存到ActionForm對象中;C. 根據(jù)配置信息決定是否需要表單驗證.如果需要驗證,就調(diào)用ActionForm 的validate()方法;D. 如果ActionForm的validate()方法返回null或返回一個不包含ActionMessage的ActuibErrors對象,就表示表單驗證成功;E. ActionServlet根據(jù)ActionMapping所包含的映射信息決定
3、將請求轉(zhuǎn)發(fā)給哪個Action,如果相應(yīng)的Action實例不存在,就先創(chuàng)建這個實例,然后調(diào)用Action的execute()方法;F. Action的execute()方法返回一個ActionForward對象,ActionServlet再把客戶請求轉(zhuǎn)發(fā)給ActionForward對象指向的JSP組件;G. ActionForward對象指向JSP組件生成動態(tài)網(wǎng)頁,返回給客戶2. ActionServlet在Struts框架中的總體作用功能是什么A. 在web應(yīng)用啟動時ActionServlet從struts-config.xml文件中讀取配置信息,把它們存放到各種配置對
4、象,例如:Action的映射信息存放在ActionMapping對象中。B. ActionServlet是整個struts 框架的骨干,也是主要的控制部件,它能夠處理客戶request 并且決定由哪個Action 處理客戶request。它象一個Action工廠,創(chuàng)建基于客戶request請求的Action類的對象3. Struts框架的后綴名一般為.do,后綴后能不能更改,如果能更改的話,如何進(jìn)行更改后綴名可以更改,在web.xml中把<servlet-mapping> <servlet-name>action</servlet-name> <url
5、-pattern>*.do</url-pattern> </servlet-mapping>中的url-pattern值改成你想要的后綴名就可以了。4. 如何在Struts-config.xml中配置數(shù)據(jù)源以及獲取數(shù)據(jù)源<data-sources><data-source key="SQL" type="mons.dbcp.BasicDataSource"><set-property property="driverClassName" value="相應(yīng)的驅(qū)動名&
6、quot; /> <set-property property="url" value="相應(yīng)數(shù)據(jù)庫的url" /> <set-property property="username" value="用戶名" /> <set-property property="password" value="密碼" /></data-source></data-sources>Key綁定在ServletContext上的D
7、ataSource實例的索引鍵,若不設(shè)定則缺省為Action.DATA_SOURCE_KEY,如果在應(yīng)用程序中有多于一個的DataSource,則必須設(shè)置Key的值。DriverClassName 所用的JDBC驅(qū)動類(必須的)如:com.microsoft.jdbc.sqlserver.SQLServerDriverurl 所用的JDBC的URL(必須的)如:jdbc:microsoft:sqlserver:/xg088:1433MaxCount 同時打開的最大連結(jié)數(shù)
8、,缺省值為2(可選的)MinCount 同時打開的最小連結(jié)數(shù),缺省值為1(可選的)User 連結(jié)到數(shù)據(jù)庫的用戶名(必須的)Password 連結(jié)到數(shù)據(jù)庫的密碼(必須的)Description 關(guān)于DataSource的描述信息(可選的)ReadOnly 如果設(shè)為true,則表示該連結(jié)是只讀的,缺省為false。(可選的)LoginTimeout
9、 創(chuàng)建連結(jié)的最大允許時間,以秒為單位。(可選的)AutoCommit 如果為true,則每次execute之后會強制回滾。缺省為true。(可選的)在action中只要繼承了org.apache.struts.actions.Action及子類,即可通過getDataSource方法獲得數(shù)據(jù)源,代碼如下:/多個數(shù)據(jù)源DataSource datasource = this.getDataSource(httpServletRequest, "key值");/單個數(shù)據(jù)源DataSource datasourc
10、e = this.getDataSource(httpServletRequest);5. Struts-config.xml文件action配置中的attribute屬性和name屬性有什么區(qū)別name:用來表示Actionform的名稱,attribute:表示ActionFrom的實例放到作用域中的名稱.6. Struts中的Action是不是線程安全的?如果不是有什么方式可以保證Action的線程安全?如果是,說明原因不是線程安全的。在Struts的生命周期中,只會為每個Action類創(chuàng)建一個實例,所有的客戶請求共享這個實例。因此,必須保證在多線程環(huán)境中,Action也能正常工作。因此
11、在Action類中要謹(jǐn)慎使用實例變量。 如果在Action類中定義了實例變量,那么在Action實例的整個生命周期中,這個實例變量被所有請求的線程共享。因此不能在Action類,特別是execute方法中定義代表特定客戶狀態(tài)的實例變量。如果要采用實例變量,需要采用Java的線程同步機制。7. Action的Execute方法有幾個參數(shù),這幾個參數(shù)的具體作用是什么一共有4個參數(shù)ActionMapping mapping 獲取映射ActionForm form 獲取表單HttpServletRequest request 獲得請求 HttpServletResponse response 獲得響應(yīng)
12、8. Action的Execute方法的返回值是什么類型,有幾種方式可以返回此類型Action的Execute方法的返回值的類型是ActionForward,返回此類型的方法有三種:1、new ActionForward(path)2、mapping.findForward(key),action中配置3、mapping.getInputForward(),根據(jù)action配置中的input屬性來查找。4、return new ActionRedirect(path);9. ActionFrom中對于錯誤消息的存取是如何存取的,頁面上面是如何顯示ActionFrom中存放的出錯消息通過Acti
13、onForm中的validate方法來進(jìn)行驗證的,并通過ActionErrors存取錯誤的消息。validate()方法返回ActionErrors對象。具體實現(xiàn)為:ActionErrors errors = new ActionErrors();errors.add(key,new ActionMessage(“消息”,false);false下顯示消息中的信息,默認(rèn)為true,在true情況下,他會根據(jù)消息的內(nèi)容到資源文件中找相應(yīng)的值顯示出來。如果errors不為空的情況下, ActionServlet就不會繼續(xù)進(jìn)行接下來的工作,而是返回structs-config.xml所設(shè)定的位置,并
14、跳轉(zhuǎn)到input屬性所設(shè)定的位置。在頁面上通過<html:errors property=”key” />顯示10. 普通的Action對于消息的存取是如何實現(xiàn)的,頁面上面是如何顯示Action中存放的消息通過ActionMessages存取消息的。具體的實現(xiàn)為:ActionMessages messages=new ActionMessages();messages.add(key,new ActionMessage(“消息”,false);this.saveMessages(request,messages);、false下顯示消息中的信息,默認(rèn)為true,在true情況下,他
15、會根據(jù)消息的內(nèi)容到資源文件中找相應(yīng)的值顯示出來。再頁面上先通過<html:messages id=”var” property=”key” message="true"> </html:messages>定義一個變量var一種是通過:<bean:write name=”var” ignore=”true” />顯示一種可以通過EL顯示: $varAction對于消息的存取是通過ActionMessages來實現(xiàn)的,ActionMessages以一個HashMap存儲ActionMessage.Map中的key是一個標(biāo)識,其對應(yīng)的value
16、是一個List對象,所有的ActionMessage存儲在List中.也就是說key標(biāo)識了一組ActionMessage.頁面上是通過struts的<html:messages/>的標(biāo)簽來顯示的。11. 普通的ActionForm和動態(tài)的ActionForm有什么區(qū)別,在動態(tài)的ActionForm中如何設(shè)定一個日期類型的屬性1. 動態(tài)的ActionForm,由actionform繼承而來,之所以有這個東西是因為,它特點是不需要FormBean,而是在struts-config.xml中通過form-property來設(shè)置form的表單字段屬性.優(yōu)勢是減少在大型開發(fā)過程中formbe
17、an的增加而顯得程序臃腫,給維護(hù)和升級帶來極大的不便.2.需要注意的是: 在JSP或Action中訪問動態(tài)ActionForm時與標(biāo)準(zhǔn)的ActionFrom有所不同,標(biāo)準(zhǔn)ActionForm為每個屬性均提供了一對getXXX()/setXXX()方法,通過調(diào)用getxxx()/setxxx()方法即可讀取或設(shè)置ActionForm某個屬性.而DynaActionForm則把所有的屬性保存在一個Map類對象中,只能通過get()和put()來存取其屬性值.如,從動態(tài)表單實例中讀取會員的注冊信息:String username=form.get("username").toSt
18、ring();String password=form.get("password').toString();String phone=form.get("phone").toString();在動態(tài)的ActionForm中,要設(shè)置一個日期類型的屬性,有兩種方式:1.直接將數(shù)據(jù)類型設(shè)置為java.sql.Date,但是在頁面上必須輸入yyyy-mm-dd格式的日期才能行。2.將類型設(shè)置為java.lang.String,不過后臺需要轉(zhuǎn)換。12. 動態(tài)ActionForm是以什么方式存取表單控件的值的。要使用動態(tài)ActionForm取得一個控件的值是如何取得
19、動態(tài)ActionForm是通過在配置文件中設(shè)置相應(yīng)的表單控件的名稱的屬性來實現(xiàn)表單控件值的存取。取得動態(tài)ActionForm的控件的值的方法有兩種,一是通過request.getParameter()的方法來獲得,二是使用動態(tài)的ActionForm來獲取值,只要調(diào)用相應(yīng)的動態(tài)ActionForm的get()方法,如:testDynamicActionForm.get("控件名稱")。13. 普通的Action與DispatchAction的區(qū)別是什么普通Action通常只能完成一種業(yè)務(wù)操作.DispatchAction可以處理多個業(yè)務(wù)請求, 只不過再配置Action的時候需
20、要設(shè)置parameter="your_method"請求時這樣寫http:/localhost:8080/test.do?your_method=add&id=1其中add是繼承DispatchAction的Action類的一個業(yè)務(wù)操作。繼承DispatchAction 設(shè)置parameter 改變execute方法 方法名以task一致14. Struts框架中常用的有HTML/Bean/Logic標(biāo)簽,這些標(biāo)簽的主要功能是什么1) HTML Tags:該標(biāo)簽庫包含的標(biāo)簽可以用來創(chuàng)建Struts輸入表單。 2) Bean Tags:該標(biāo)簽庫包含的標(biāo)簽可以用來創(chuàng)建b
21、ean、訪問bean和訪問bean的屬性。同時提供了依據(jù)cookies、headers和parameters的值創(chuàng)建相關(guān)bean的能力。 3) Logic Tags:該標(biāo)簽庫包含的標(biāo)簽可以用來進(jìn)行邏輯判斷、集合迭代和流程控制。15. HTML標(biāo)簽中的name屬性代表什么功能,為什么可以省略不寫當(dāng)標(biāo)簽與JavaBean合作的時候,Name代表作用域中Bean的名稱;當(dāng)標(biāo)簽沒有跟JavaBean合作,Name表示作用域中對象的名稱。因為在配置文件中已經(jīng)通過name這個屬性將action和actionForm關(guān)聯(lián)在一起了,所以可以不用寫。16. Struts標(biāo)簽中name和property兩個屬性的
22、作用和區(qū)別當(dāng)標(biāo)簽與JavaBean合作的時候,Name代表作用域中Bean的名稱; PropertyBean中屬性的值。17. 請簡述J2EE平臺體系中標(biāo)簽的體系結(jié)構(gòu)在標(biāo)簽體系中,最高的是JspTag,它是一個接口,內(nèi)部沒有任何的東西;接著是Tag和SimpleTag,他們都是接口,SimpleTag是簡單的標(biāo)簽類,只能實現(xiàn)無body的標(biāo)簽,它的實現(xiàn)類是SimpleTagSupport。Tag下面的接口是IterationTag;它的子接口是BodyTag;IterationTag的實現(xiàn)類有TagSupport,主要用來做無body的標(biāo)簽,BodyTagSupport繼承自TagSupport
23、并實現(xiàn)了BodyTag接口,主要實現(xiàn)有body標(biāo)簽。18. 請簡述自定義標(biāo)簽的步驟創(chuàng)建實現(xiàn)了 Tag 接口的標(biāo)簽處理程序類,繼承TagSupport 創(chuàng)建一個 TLD 文件在標(biāo)簽處理程序 Java 類中創(chuàng)建屬性 在 TLD 文件中定義與標(biāo)簽處理程序 Java 類中定義的屬性對應(yīng)的屬性 實現(xiàn) doStartTag() 方法在jsp頁面導(dǎo)入標(biāo)簽庫19. 如何在自定義標(biāo)簽中獲取ServletContext,HttpSession,HttpServletRequest這些JSP頁面常見的對象1、獲取ServletContext對象:this.pageContext.getServletContext(
24、);2、獲取HttpSession對象:this.pageContext.getSession()3、獲取HttpServletRequest對象:ServletRequest servletRequest = this.pageContext.getRequest();HttpServletRequest request = (HttpServletRequest) servletRequest;20. Servlet2.4版本中新增加了一個標(biāo)簽為簡單標(biāo)簽,要實現(xiàn)簡單標(biāo)簽的話,必須實現(xiàn)標(biāo)簽中的哪一個方法,該方法有沒有返回值創(chuàng)建實現(xiàn)了 Tag 接口的標(biāo)簽處理程序類,繼承SimpleTagSup
25、port創(chuàng)建一個 TLD 文件在標(biāo)簽處理程序 Java 類中創(chuàng)建屬性在 TLD 文件中定義與標(biāo)簽處理程序 Java 類中定義的屬性對應(yīng)的屬性 實現(xiàn) doTag() 方法在jsp頁面中導(dǎo)入標(biāo)簽庫沒有返回值。21. Struts框架如何實現(xiàn)國際化的步驟資源文件的編寫Jsp頁面必須使用UTF-8編碼機制使用<bean:message key=“xxx”/>來輸出資源文件中定義的資源顯示信息。本地頁面語言的指定。<html:html locale=“true”>將語言環(huán)境設(shè)進(jìn)session (request.getSession().setAttribute(Globals.L
26、OCALE_KEY, locale));22. 如何實現(xiàn)頁面中HTML標(biāo)簽的初始值設(shè)置在對應(yīng)的ActionForm中的reset方法設(shè)置相應(yīng)屬性的初始值,或者調(diào)用ActionForm中的相應(yīng)屬性的set方法來為其設(shè)置初始值。23. Struts框架的綜合運用開發(fā)過程中,一般會使用ActionForm和JavaBean,這兩個Bean能不能通用?如果不能的話請簡述原因 無法通用,1. ActionForm是表示表單對象,負(fù)責(zé)action和表單的數(shù)據(jù)傳遞,javabean是表示和數(shù)據(jù)庫交互的對象。2.從軟件分層角度看,bean分開的話,一旦框架發(fā)生變化,無需進(jìn)行大量代碼重構(gòu)。24. 如何操作Ora
27、cle表中CLOB和BLOB字段1、將事務(wù)提交設(shè)置為手動提交 (conn.setAutoCommit(false))2、插入一個空的CLOB或BLOB (empty_clob()3、鎖定當(dāng)前記錄 (for update)4、文件操作 (reader、writer)5、關(guān)閉資源,提交事務(wù)。(conn.close 、mit()2 Spring框架1. Spring框架分為哪七大模塊,各模塊的主要功能作用是什么七大模塊,如下:1. Spring Core: 核心包。Core封裝包是框架的最基礎(chǔ)部分,提供IOC和依賴注入特性。這里的基礎(chǔ)概念是BeanFactory,它提供對Factory模式的經(jīng)典實現(xiàn)
28、來消除對程序性單例模式的需要,并真正地允許你從程序邏輯中分離出依賴關(guān)系和配置。2.Spring Context:上下文(容器)。構(gòu)建于Core封裝包基礎(chǔ)上的 Context封裝包,提供了一種框架式的對象訪問方法,有些象JNDI注冊器。Context封裝包的特性得自于Beans封裝包,并添加了對國際化(I18N)的支持(例如資源綁定),事件傳播,資源裝載的方式和Context的透明創(chuàng)建,比如說通過Servlet容器。3Spring DAO: DAO (Data Access Object)提供了JDBC的抽象層,它可消除冗長的JDBC編碼和解析數(shù)據(jù)庫廠商特有的錯誤代碼。 并且,JDBC封裝包還提
29、供了一種比編程性更好的聲明性事務(wù)管理方法,不僅僅是實現(xiàn)了特定接口,而且對所有的POJOs(plain old Java objects)都適用。4.Spring ORM:封裝一個持久層框架。ORM 封裝包提供了常用的“對象/關(guān)系”映射APIs的集成層。 其中包括JPA、JDO、Hibernate 和 iBatis 。利用ORM封裝包,可以混合使用所有Spring提供的特性進(jìn)行“對象/關(guān)系”映射,如前邊提到的簡單聲明性事務(wù)管理。5.Spring AOP:面向切面編程。Spring的 AOP 封裝包提供了符合AOP Alliance規(guī)范的面向方面的編程實現(xiàn),讓你可以定義,例如方法攔截器(metho
30、d-interceptors)和切點(pointcuts),從邏輯上講,從而減弱代碼的功能耦合,清晰的被分離開。而且,利用source-level的元數(shù)據(jù)功能,還可以將各種行為信息合并到你的代碼中。6.Spring Web:封裝一個web框架。Spring中的 Web 包提供了基礎(chǔ)的針對Web開發(fā)的集成特性,例如多方文件上傳,利用Servlet listeners進(jìn)行IOC容器初始化和針對Web的ApplicationContext。當(dāng)與WebWork或Struts一起使用Spring時,這個包使Spring可與其他框架結(jié)合。7.Spring Web MVC:Spring中的MVC封裝包提供了
31、Web應(yīng)用的Model-View-Controller(MVC)實現(xiàn)。Spring的MVC框架并不是僅僅提供一種傳統(tǒng)的實現(xiàn),它提供了一種清晰的分離模型,在領(lǐng)域模型代碼和Web Form之間。并且,還可以借助Spring框架的其他特性。2. Spring框架中的三大核心思想是什么DI(依賴注入),IOC(控制反轉(zhuǎn)),AOP(面向切面編程)3. IOC的概念以及在Spring容器中如何進(jìn)行IOC的操作。IOC:Inversion of Control,控制反轉(zhuǎn)。在Java開發(fā)中,IOC意味著將你設(shè)計好的類交給系統(tǒng)去控制,而不是在你的類內(nèi)部控制,這稱為控制反轉(zhuǎn),就是被調(diào)用類的實例由原先的調(diào)用類控制創(chuàng)
32、建、銷毀現(xiàn)在轉(zhuǎn)變成由Spring的容器管理。BeanFactory 延遲加載applicationContextXML:更高級、支持國際化、資源文件、文字解析4. Spring容器是如何管理Bean的生命周期的(如Bean的初始化方法,Bean的銷毀方法)創(chuàng)建:<bean name="" class="" 額外屬性>初始化:配置init-method/實現(xiàn)接口InitializingBean調(diào)用:context.getBean(),進(jìn)行方法的調(diào)用銷毀:配置destroy-method/實現(xiàn)DisposableBean接口5. DI的概念以及在
33、Spring框架注入有幾種方式。使用構(gòu)造注入對象,必須要注意什么問題,當(dāng)設(shè)值注入與構(gòu)造注入同時存在時,執(zhí)行的先后流程順序注入方式:接口注入設(shè)置注入屬性的SET/GET構(gòu)造注入構(gòu)造方法注入使用構(gòu)造函數(shù)依賴注入時,Spring保證所有一個對象所有依賴的對象先實例化后,才實例化這個對象。使用set方法依賴注入時,Spring首先實例化對象,然后才實例化所有依賴的對象。當(dāng)設(shè)值注入與構(gòu)造注入同時存在時,先執(zhí)行構(gòu)造注入,在執(zhí)行設(shè)置注入。6. 使用DI注入時,Property代表什么意思,如果property引用的是其他Bean的話,如何注入,如果引用是字符串的話,如何設(shè)置。使用DI注入時,Property
34、代表注入類的屬性,如果應(yīng)用其他的bean用ref屬性來表明被引用bean的名稱,如果是引用字符串的話,用value屬性。如:<property name="userDao" ref="被引用bean的名稱" /><property name="username" value = "字符串"/>7. 在Spring框架中獲取連接池有幾種方式。當(dāng)JNDI與DBCP同時存在時,會不會出現(xiàn)問題,如果不能同時存在的話,請說明原因四種方式,如下:1:DBCP數(shù)據(jù)源DBCP類包位于 <SPRING_
35、HOME>/lib/jakarta-commons/commons-dbcp.jar,DBCP是一個依賴Jakarta commons-pool對象池機制的數(shù)據(jù)庫連接池,所以在類路徑下還必須包括<SPRING_HOME>/lib/jakarta-commons/commons-pool.jar。下面是使用DBCP配置oracle數(shù)據(jù)源的配置片斷:<bean id="dataSource"class="mons.dbcp.BasicDataSource" destroy-method="close"><
36、;property name="driverClassName" value=" oracle.jdbc.driver.OracleDriver " /><property name="url" value="jdbc:oracle:thin:localhost:1521:orcl " /><property name="username" value="root" /><property name="password"
37、 value="1234" /></bean>2:C3P0數(shù)據(jù)源C3P0是一個開放源代碼的JDBC數(shù)據(jù)源實現(xiàn)項目,它在lib目錄中與Hibernate一起發(fā)布,實現(xiàn)了JDBC3和JDBC2擴展規(guī)范說明的Connection 和Statement 池。C3P0類包位于<SPRING_HOME>/lib/c3p0/c3p0-.jar。下面是使用C3P0配置一個Oracle數(shù)據(jù)源: <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooled
38、DataSource" destroy-method="close"><property name="driverClassName" value=" oracle.jdbc.driver.OracleDriver " /><property name="url" value="jdbc:oracle:thin:localhost:1521:orcl " /><property name="username" value=&quo
39、t;root" /><property name="password" value="1234" /></bean>3. Spring的數(shù)據(jù)源實現(xiàn)類(DriverManagerDataSource)Spring本身也提供了一個簡單的數(shù)據(jù)源實現(xiàn)類DriverManagerDataSource ,它位于org.springframework.jdbc.datasource包中。這個類實現(xiàn)了javax.sql.DataSource接口,但它并沒有提供池化連接的機制,每次調(diào)用getConnection()獲取新連接時,只是
40、簡單地創(chuàng)建一個新的連接。因此,這個數(shù)據(jù)源類比較適合在單元測試或簡單的獨立應(yīng)用中使用,因為它不需要額外的依賴類。<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="close"><property name="driverClassName" value=" oracle.jdbc.driver.OracleDriver "
41、; /><property name="url" value="jdbc:oracle:thin:localhost:1521:orcl " /><property name="username" value="root" /><property name="password" value="1234" /></bean>4.獲取JNDI數(shù)據(jù)源如果應(yīng)用配置在高性能的應(yīng)用服務(wù)器(如WebLogic或Websphere等)上,
42、我們可能更希望使用應(yīng)用服務(wù)器本身提供的數(shù)據(jù)源。應(yīng)用服務(wù)器的數(shù)據(jù)源使用JNDI開放調(diào)用者使用,Spring為此專門提供引用JNDI資源的JndiObjectFactoryBean類。下面是一個簡單的配置: <bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"><property name="jndiName" value="java:comp/env/jdbc/oracle"/></bea
43、n>通過jndiName指定引用的JNDI數(shù)據(jù)源名稱。8. 在使用Spring的JDBCTemplate操作數(shù)據(jù)時,必須要往模板中注入哪些對象,同時模板要不要手動關(guān)閉數(shù)據(jù)庫連接注入DataSource數(shù)據(jù)源對象不要手動關(guān)閉數(shù)據(jù)庫連接,JdbcTemplate會幫我們關(guān)閉數(shù)據(jù)庫連接9. JdbcTemplate的QueryForList方法得到List集合,請問List集合中每一個對象為什么數(shù)據(jù)類型,在JSP頁面使用EL表達(dá)式如何取值。每一個對象為java.util.Map類型的數(shù)據(jù),EL表達(dá)式里用<c:foreach> $map.key取值10. AOP的概念以及使用AOP機
44、制有什么好處。Java編程中實現(xiàn)AOP有幾種方式AOP的概念是Aspected Oriented Programming 面向方面編程。好處:AOP將程序分解成各個方面或者說關(guān)注點。這使得可以模塊化,相當(dāng)橫向上分切了。它可以解決OOP和過程化方法不能夠很好解決的橫切(crosscut)問題,如:事務(wù)、安全、日志等橫切關(guān)注實現(xiàn)AOP有幾種方式:1.Spring 1.2版本中通過ProxyFactoryBean來實現(xiàn)aop,即通過動態(tài)代理來實現(xiàn)的,Aspect必須繼承MethodBeforeAdvice,MethodAfterAdvice等2.Spring 2.0 AOP需要改的是FBI 這個類,
45、而且它也不需要再實現(xiàn)某些接口3.三使用標(biāo)注(AspectJ)實現(xiàn)AOP 11. Spring框架中的事務(wù)處理有幾種。請分別闡述兩者的區(qū)別spring提供的事務(wù)管理可以分為兩類:編程式的和聲明式的。編程式的,比較靈活,但是代碼量大,存在重復(fù)的代碼比較多;聲明式的比編程式的更靈活.12. 編程式事務(wù)的總接口是什么?使用編程式事務(wù)需要用到哪幾個Spring事務(wù)的核心類對象 總接口接口,核心類: TransactionDefinition /事務(wù)屬性定義 TranscationStatus /代表了當(dāng)前的事務(wù),可以提交,回滾。 PlatformTransactionManager核心接口的子類13.
46、Spring的聲明式事務(wù)能不能為普通的類產(chǎn)生代理接口,能不能在代碼中使用Try/Catch能捕獲異常,如果不可以,請說明原因不能。Spring的聲明式事務(wù)為實現(xiàn)類產(chǎn)生代理。不能在代碼中使用Try/Catch,因為代碼中捕獲了異常,Spring容器捕獲不了異常。14. 使用TransactionProxyFactoryBean為Bean產(chǎn)生事務(wù)物理時,需要哪幾個屬性值的設(shè)置:<bean name="baseTransactionProxy"class="erceptor.Transactio
47、nProxyFactoryBean"><!- 為事務(wù)代理bean注入事務(wù)管理器-><property name="transactionManager" ref="transactionManager"></property><!- 設(shè)置事務(wù)屬性-><property name="transactionAttributes"><props><!- 所有方法采用required的事務(wù)策略 -><prop key="*&qu
48、ot;>PROPAGATION_REQUIRED</prop></props></property><!- 為事務(wù)代理bean設(shè)置目標(biāo)bean -><property name="target" ref="userDao"> </property> </bean><!- 目標(biāo)bean -><bean name="userDao" class="com.dao.userDao"><property
49、name="dataSource" ref="dataSource" /></property></bean>3 AJAX技術(shù)1. 什么是AJAX技術(shù),為什么要使用AJAXAJAX(Asynchronous JavaScript and XML)其實是多種技術(shù)的綜合,包括 Javascript, XHTML和 CSS DOM XML 和 XSTL XMLHttpRequest。其使用 XHTML和 CSS標(biāo)準(zhǔn)化呈現(xiàn),使用 DOM 實現(xiàn)動態(tài)顯示和交互,使用 XML和 XSTL進(jìn)行數(shù)據(jù)交換與處理,使用 XMLHttpReques
50、t 對象進(jìn)行異步數(shù)據(jù)讀 Javascript 綁定和處理所有數(shù)據(jù) 。AJAX 在用戶與服務(wù)器之間引入一個中間媒介,從而消除了網(wǎng)絡(luò)交互過程中的處理等待處理等待缺點. 用戶的瀏覽器在執(zhí)行任務(wù)時即裝載了AJAX 引擎. AJAX 引擎用 JavaScript 語言編寫,通常藏在一個隱藏的框架中.它負(fù)責(zé)編譯用戶界面及與服務(wù) AJAX 引擎允許用戶與應(yīng)用軟件之間交互.獨立于用戶與網(wǎng)絡(luò)服務(wù)器間的交流.2. 什么是XMLHttpRequest對象,以及如何在不同的瀏覽器創(chuàng)建XMLHttpRequest對象XMLHttpRequest對象是XMLHttp組件的對象,它是一個抽象對象,允許腳本從服務(wù)器獲取返回的
51、XML數(shù)據(jù)或?qū)?shù)據(jù)發(fā)送到服務(wù)器端。由于不同的瀏覽器對XMLHttpRequest的實現(xiàn)方式不同,因此在創(chuàng)建XMLHttpRequest對象時,需要根據(jù)不同的瀏覽器,開發(fā)各自合適的實現(xiàn)方法。在JavaScript中創(chuàng)建通用XMLHttpRequest對象的方法如下:<script language="javascript">var xmlHttp;function createHttpRequest()if (window.ActiveXObject)xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"
52、);else if (window.XMLHttpRequest)xmlHttp = new XMLHttpRequest();3. AJAX在客戶端時。如何發(fā)送文本的GET和POST請求,以及如何接收服務(wù)端傳送回來的文本數(shù)據(jù)文本的GET方式客戶端發(fā)送var url="上下文路徑/textServlet?sendValue=中文的傳遞&date="+new Date();xmlHttp.open("GET",url);xmlHttp.onreadystatechange = CallBackText;xmlHttp.send(); 客戶端接收va
53、r text = xmlHttp.responseText;文本的POST方式 客戶端發(fā)送var url = "上下文路徑/textServlet?date="+new Date();xmlHttp.open("POST",url);var postContent = createPostContent();postContent = encodeURI(postContent);postContent = encodeURI(postContent);xmlHttp.onreadystatechange = CallBackPOST;/POST必須加上
54、這句話,表示數(shù)據(jù)是以POST方式發(fā)送,并對數(shù)據(jù)內(nèi)容進(jìn)行加密。xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send(postContent); 客戶端接收 var text = xmlHttp.responseText; 4. AJAX在客戶端時如何發(fā)送XML數(shù)據(jù),服務(wù)端如何接收XML數(shù)據(jù)以及解析。服務(wù)端如何發(fā)送XML數(shù)據(jù)到客戶端,客戶端如何進(jìn)行解析。 客戶端發(fā)送var url="上下文路徑/xmlServlet?date
55、="+new Date();xmlHttp.open("POST",url);var xmlContent = GetXMLContent();xmlContent = encodeURI(xmlContent);xmlHttp.onreadystatechange = CallBackXml;xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xmlHttp.send(xmlContent);服務(wù)端解析request.se
56、tCharacterEncoding("GBK");BufferedReader bufferedReader = request.getReader();使用DOM4J,Java.dom解析temp = .URLDecoder.decode(temp, "UTF-8");Document doc = saxReader.read(new StringReader(temp);服務(wù)端發(fā)送response.setCharacterEncoding("GBK");response.setContentType("text/xml
57、");result.append("<?xml version="1.0" encoding="GBK"?>");客戶端接收var xml = xmlHttp.responseXML;5. 在AJAX中,如何解決文本與XML的發(fā)送與接收的編碼與解碼文本的GET方式在tomcat里面的service.xml中配置URIEncoding=”GBK” request.setCharacterEncoding("GBK"); response.setCharacterEncoding("GB
58、K");文本的POST方式 客戶端發(fā)送 postContent = encodeURI(postContent);postContent = encodeURI(postContent);兩次編碼轉(zhuǎn)成utf-8 服務(wù)端解析 request.setCharacterEncoding("GBK");String username = AjaxPostDecode(request.getParameter("username"); private String AjaxPostDecode(String str) if (str = null) st
59、r = "" else try str = .URLDecoder.decode(str, "UTF-8"); catch (Exception e) e.printStackTrace();return str;服務(wù)端發(fā)送response.setCharacterEncoding("GBK");XML的POST發(fā)送 客戶端發(fā)送xmlContent = encodeURI(xmlContent); 服務(wù)端解析temp = .URLDecoder.decode(temp, "UTF-8");服務(wù)端發(fā)送response
60、.setCharacterEncoding("GBK");4 Hibernate框架1. Hibernate框架的工作流程a. 讀取并解析配置文件b.讀取并解析映射信息,創(chuàng)建SessionFactoryc.打開Sesssion d.創(chuàng)建事務(wù)Transatione.持久化操作f.提交事務(wù)g.關(guān)閉Sessionh.關(guān)閉SesstionFactory2. Hibernate框架中的核心接口有哪些,這些接口的具體功能是什么核心接口有:session,sessionFactory,transaction,query,configuration.a) Session接口:Session
61、接口負(fù)責(zé)執(zhí)行被持久化對象的CRUD操作(CRUD的任務(wù)是完成與數(shù)據(jù)庫的交流,包含了很多常見的SQL語句。)。b) SessionFactory接口:SessionFactroy接口負(fù)責(zé)初始化Hibernate。它充當(dāng)數(shù)據(jù)存儲源的代理,并負(fù)責(zé)創(chuàng)建Session對象。c) Configuration接口:Configuration接口負(fù)責(zé)配置并啟動Hibernate,創(chuàng)建SessionFactory對象。d) Transaction接口:Transaction接口負(fù)責(zé)事務(wù)相關(guān)的操作。e) Query和Criteria接口:Query和Criteria接口負(fù)責(zé)執(zhí)行各種數(shù)據(jù)庫查詢。它可以使用HQL語言或SQL語句兩種表達(dá)方式。3. Hibernate中的Session對象表示什么?它與Web程序中的Session是一樣的機制嗎Hiberna
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人衣物洗滌與保養(yǎng)制度
- 企業(yè)食堂安全管理制度
- 會議代表權(quán)益保障制度
- 2026年中考化學(xué)實驗操作技能測試題
- 2026年旅游景點營銷與策劃實務(wù)試題
- 2026年機械工程基礎(chǔ)理論與應(yīng)用題集
- 2026年物業(yè)垃圾清運外包協(xié)議(環(huán)?!ず弦?guī)版)
- 檢驗科化學(xué)試劑爆炸的應(yīng)急處置制度及流程
- 古代日本高分突破課件
- 2024年甘孜縣招教考試備考題庫附答案解析(必刷)
- 對外話語體系構(gòu)建的敘事話語建構(gòu)課題申報書
- 馬年猜猜樂(馬的成語)打印版
- 精神障礙防治責(zé)任承諾書(3篇)
- 2025年擔(dān)保公司考試題庫(含答案)
- 2025年金融控股公司行業(yè)分析報告及未來發(fā)展趨勢預(yù)測
- 物業(yè)節(jié)前安全教育培訓(xùn)
- 介入病人安全管理
- 人教版PEP五年級英語下冊單詞表與單詞字帖 手寫體可打印
- 戶口未婚改已婚委托書
- 國內(nèi)外影視基地調(diào)研報告-副本
- 家具制造廠家授權(quán)委托書
評論
0/150
提交評論