JAVA技術(shù)綜合面試題目_第1頁
JAVA技術(shù)綜合面試題目_第2頁
JAVA技術(shù)綜合面試題目_第3頁
JAVA技術(shù)綜合面試題目_第4頁
JAVA技術(shù)綜合面試題目_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、JAVA技術(shù)綜合面試題目(含參考答案)問題:JAVA技術(shù)綜合面試題目(含參考答案)-Struts回答:Struts框架的整體運(yùn)行流程在 web 應(yīng)用啟動(dòng)時(shí)就會(huì)加載初始化ActionServlet,ActionServlet從 struts-config.xml 文件中讀取配置信息,把它們存放到各種配置對(duì)象,例如:Action的映射信息存放在 ActionMapping 對(duì)象中.當(dāng)ActionServlet接收到一個(gè)客戶請(qǐng)求時(shí),將執(zhí)行如下流程.檢索和用戶請(qǐng)求匹配的 ActionMapping實(shí)例,如果不存在,就返回請(qǐng)求路徑無效信息;如果ActionForm 實(shí)例不存在,就創(chuàng)建一個(gè)ActionFo

2、rm 對(duì)象把 客戶提交的表單數(shù)據(jù)保存到 Actio nForm 對(duì)象中;根據(jù)配置信息決定是否需要表單驗(yàn)證.如果需要驗(yàn)證,就調(diào)用Action Form的 validate() 方法;如果ActionForm 的validate。方法返回null或返回一個(gè)不包含ActionMessage的ActuibErrors對(duì)象,就表示表單驗(yàn)證成功;ActionServlet 根據(jù)ActionMapping 所包含的映射信息決定將 請(qǐng)求轉(zhuǎn)發(fā)給哪個(gè)Action,如果相應(yīng)的Action實(shí)例不存在,就先創(chuàng)建這 個(gè)實(shí)例,然后調(diào)用Action的execute()方法;Action 的 execute()方法返回一個(gè) A

3、ctionForward對(duì)象,Actio nServlet 再把客戶請(qǐng)求轉(zhuǎn)發(fā)給 Actio nForward對(duì)象指向的JSP組件;ActionForward對(duì)象指向JSP組件生成動(dòng)態(tài)網(wǎng)頁,返回給客戶ActionServlet在Struts框架中的總體作用功能是什么在 web 應(yīng)用啟動(dòng)時(shí) ActionServlet 從 struts-config.xml 文件中 讀取配置信息,把它們存放到各種配置對(duì)象,例如:Action的映射信息 存放在ActionMapping 對(duì)象中。ActionServlet是整個(gè)struts框架的骨干,也是主要的控制部件,它能夠處理客戶 request并且決定由哪個(gè) A

4、ction 處理客戶 request。它象一個(gè) Action 工廠,創(chuàng)建基于客戶request 請(qǐng)求的Action類的對(duì)象Struts框架的后綴名一般為.do,后綴后能不能更改,如果能更 改的話,如何進(jìn)行更改后綴名可以更改,在web.xml中把a(bǔ)ctio n*.do中的url-pattern 值改成你想要的后綴名就可以了。如何在Struts-config.xml中配置數(shù)據(jù)源以及獲取數(shù)據(jù)源Key綁定在ServletContext 上的DataSource 實(shí)例的索引鍵,若不 設(shè)定則缺省為Action.DATA_SOURCE_KEY ,如果在應(yīng)用程序中有多 于一個(gè)的DataSource,則必須設(shè)置

5、Key的值。DriverClassName所用的 JDBC 驅(qū)動(dòng)類(必須的)如:com.microsoft.jdbc.sqlserver.SQLServerDriverurl所用的 JDBC 的 URL(必須的)如: jdbc:microsoft:sqlserver:/xg088:1433MaxCou nt同時(shí)打開的最大連結(jié)數(shù),缺省值為2(可選的)Min Cou nt同時(shí)打開的最小連結(jié)數(shù),缺省值為1(可選的)User連結(jié)到數(shù)據(jù)庫的用戶名(必須的)Password連結(jié)到數(shù)據(jù)庫的密碼(必須的)Descriptio n關(guān)于DataSource的描述信息(可選的)Read On ly如果設(shè)為true,

6、則表示該連結(jié)是只讀的,缺省為false。(可選的)Log in Timeout創(chuàng)建連結(jié)的最大允許時(shí)間,以秒為單位。(可選的)AutoCommit如果為true,則每次execute之后會(huì)強(qiáng)制回滾。缺省為true。(可選的)在 action 中只要繼承了 org.apache.struts.actions.Action及子類,即可通過getDataSource 方法獲得數(shù)據(jù)源,代碼如下:/多個(gè)數(shù)據(jù)源DataSourcedatasource=this.getDataSource(httpServletRequest, key 值);/單個(gè)數(shù)據(jù)源DataSourcedatasource=this.g

7、etDataSource(httpServletRequest);Struts-config.xml文件 action 配置中的 attribute 屬性和 name屬性有什么區(qū)別name :用來表示 Actionform 的名稱,attribute :表示ActionFrom的實(shí)例放到作用域中的名稱.Struts中的Action是不是線程安全的如果不是有什么方式可 以保證Action的線程安全如果是,說明原因不是線程安全的。在Struts的生命周期中,只會(huì)為每個(gè) Action類創(chuàng)建一個(gè)實(shí)例, 所有的客戶請(qǐng)求共享這個(gè)實(shí)例。因此,必須保證在多線程環(huán)境中, Action也能正常工作。因此在 Act

8、ion類中要謹(jǐn)慎使用實(shí)例變量。如果在Action類中定義了實(shí)例變量,那么在 Action實(shí)例的整 個(gè)生命周期中,這個(gè)實(shí)例變量被所有請(qǐng)求的線程共享。因此不能在 Action類,特別是execute方法中定義代表特定客戶狀態(tài)的實(shí)例變量。如果要采用實(shí)例變量,需要采用 Java的線程同步機(jī)制Action的Execute方法有幾個(gè)參數(shù),這幾個(gè)參數(shù)的具體作用是 什么一共有4個(gè)參數(shù)Acti onM app ing mapp ing獲取映射Action Form form獲取表單HttpServletRequest request 獲得請(qǐng)求HttpServletResp onse response獲得響應(yīng)Ac

9、tion的Execute方法的返回值是什么類型,有幾種方式可以 返回此類型Action 的Execute方法的返回值的類型是 ActionForward ,返 回此類型的方法有三種:1、通過new 個(gè)ActionForward ,傳入 它要去的頁面的路徑;2、 通過 mapping.findForward()的方法,通過 action 配置中 的forward屬性來找到相應(yīng)跳轉(zhuǎn)的頁面;3、 通過 mapping.getInputForward()的方法,根據(jù) action 配 置中的in put屬性來查找。Acti on From 中對(duì)于錯(cuò)誤消息的存取是如何存取的,頁面上面是如何顯示Actio

10、nFrom 中存放的出錯(cuò)消息ActionForm中的錯(cuò)誤消息是通過 ActionForm中的validate方法來進(jìn)行驗(yàn)證的,validate。方法會(huì)傳回 ActionErrors 對(duì)象,ActionErrors 可以儲(chǔ)存 ActionError 的訊息,這時(shí) ActionServlet 就不會(huì)繼續(xù)進(jìn)行接下來的工作,而是導(dǎo)回structs-config.xml所設(shè)定的位置,并forward至in put屬性所設(shè)定的位置。頁面上是通過struts提供的標(biāo)簽來顯示出錯(cuò)消息的。普通的Action對(duì)于消息的存取是如何實(shí)現(xiàn)的,頁面上面是如何 顯示Action中存放的消息Action 對(duì)于消息的存取是通過

11、Actio nM essages來實(shí)現(xiàn)的,ActionMessages以一個(gè) HashMap 存儲(chǔ) ActionMessage.Map 中的key是一個(gè)標(biāo)識(shí),其對(duì)應(yīng)的value是一個(gè)List對(duì)象,所有的ActionMessage存儲(chǔ)在 List中.也就是說 key 標(biāo)識(shí)了一組Actio nM essage.頁面上是通過struts的的標(biāo)簽來顯示的。普通的ActionForm 和動(dòng)態(tài)的ActionForm 有什么區(qū)別,在動(dòng)態(tài) 的ActionForm 中如何設(shè)定一個(gè)日期類型的屬性1. 動(dòng)態(tài)的ActionForm,由actionform繼承而來,之所以有這個(gè)東西是因?yàn)?,它特點(diǎn)是不需要 FormBea

12、n,而是在struts-config.xml 中通過form-property 來設(shè)置form的表單字段屬性.優(yōu)勢(shì)是減少在 大型開發(fā)過程中formbean的增加而顯得程序臃腫,給維護(hù)和升級(jí)帶 來極大的不便.2. 需要注意的是:在JSP或Action中訪問動(dòng)態(tài) ActionForm 時(shí) 與標(biāo)準(zhǔn)的ActionFrom 有所不同,標(biāo)準(zhǔn)ActionForm 為每個(gè)屬性均提 供了一對(duì) getXXX()/setXXX()方法,通過調(diào)用 getxxx()/setxxx()方法 即可讀取或設(shè)置ActionForm 某個(gè)屬性.而DynaActionForm 則把所 有的屬性保存在一個(gè)Map類對(duì)象中,只能通過ge

13、t()和put()來存取其 屬性值.如,從動(dòng)態(tài)表單實(shí)例中讀取會(huì)員的注冊(cè)信息:Stri ng user name二form.get( user name ).toStri ng();String password二form.get( password ).toStri ng();String pho ne二form.get( phone ).toStri ng();在動(dòng)態(tài)的ActionForm 中,要設(shè)置一個(gè)日期類型的屬性,有兩種 方式:1. 直接將數(shù)據(jù)類型設(shè)置為java.sql.Date ,但是在頁面上必須輸入yyyy-mm-dd格式的日期才能行。2. 將類型設(shè)置為java.lang.Stri

14、ng ,不過后臺(tái)需要轉(zhuǎn)換。動(dòng)態(tài)Acti on Form是以什么方式存取表單控件的值的。要使用動(dòng) 態(tài)ActionForm 取得一個(gè)控件的值是如何取得動(dòng)態(tài)ActionForm是通過在配置文件中設(shè)置相應(yīng)的表單控件的名稱的屬性來實(shí)現(xiàn)表單控件值的存取。取得動(dòng)態(tài)Acti on Form的控件的值的方法有兩種,一是通過request.getParameter() 的 方法來獲得,二是使用 動(dòng)態(tài)的 ActionForm 來獲取值,只要調(diào)用相應(yīng)的動(dòng)態(tài) ActionForm 的get() 方法,如:testDynamicActionForm.get(控件名稱)。普通的Action與DispatchAction的區(qū)

15、別是什么普通Action通常只能完成一種業(yè)務(wù)操作.DispatchAction可以處理多個(gè)業(yè)務(wù)請(qǐng)求,只不過再配置Action的時(shí)候需要設(shè)置 parameter二your_method請(qǐng) 求 時(shí) 這樣寫 http:/localhost:8080/test.do your_method=add id=1其中add是繼承DispatchAction 的Action類的一個(gè)業(yè)務(wù)操作。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)

16、建 bean、訪問 bean和訪問bean的屬性。同時(shí)提供了依據(jù) cookies、headers和 parameters 的值倉U建相關(guān) bean的能力。3) Logic Tags:該標(biāo)簽庫包含的標(biāo)簽可以用來進(jìn)行邏輯判斷、集 合迭代和流程控制。HTML標(biāo)簽中的name屬性代表什么功能,為什么可以省略不 寫當(dāng)標(biāo)簽與JavaBean合作的時(shí)候,Name代表作用域中Bean的 名稱;當(dāng)標(biāo)簽沒有跟JavaBean合作,Name表示作用域中對(duì)象的名 稱。因?yàn)樵谂渲梦募幸呀?jīng)通過name 這個(gè)屬性將 action 和actio nForm關(guān)聯(lián)在一起了,所以可以不用寫。Struts標(biāo)簽中name和prope

17、rty 兩個(gè)屬性的作用和區(qū)別當(dāng)標(biāo)簽與JavaBean合作的時(shí)候,Name代表作用域中Bean的 名稱;PropertyBean中屬性的值。請(qǐng)簡(jiǎn)述J2EE平臺(tái)體系中標(biāo)簽的體系結(jié)構(gòu)在標(biāo)簽體系中,最高的是 JspTag,它是一個(gè)接口,內(nèi)部沒有任 何的東西;接著是 Tag和SimpleTag,他們都是接口,SimpleTag 是簡(jiǎn)單的標(biāo)簽類,只能實(shí)現(xiàn)無body的標(biāo)簽,它的實(shí)現(xiàn)類是 SimpleTagSupport 。Tag下面的接口是IterationTag ;它的子接口是BodyTag ;IterationTag的實(shí)現(xiàn)類有TagSupport,主要用來做無body的標(biāo)簽, BodyTagSuppor

18、t 繼承自 TagSupport 并實(shí)現(xiàn)了 BodyTag 接口,主 要實(shí)現(xiàn)有body標(biāo)簽。請(qǐng)簡(jiǎn)述自定義標(biāo)簽的步驟1、創(chuàng)建實(shí)現(xiàn)了 Tag接口的標(biāo)簽處理程序類,創(chuàng)建相應(yīng)的屬性。2、 創(chuàng)建一個(gè)TLD描述文件來描述這個(gè)標(biāo)簽,在 TLD文件中定 義與標(biāo)簽處理程序Java類中定義的屬性對(duì)應(yīng)的屬性。3、在jsp頁面中導(dǎo)入標(biāo)簽。4、在jsp頁面使用自定義標(biāo)簽。如 何 在 自 定 義 標(biāo) 簽 中 獲 取 ServletContext,HttpSession,HttpServletRequest 這些 JSP頁面常 見的對(duì)象1、獲取 ServletContext 對(duì)象:this.pageC on text.getServletC on text();2、獲取 HttpSession 對(duì)象:this.pageC on text.getSessi on()3、獲取 HttpServletRequest 對(duì)象:ServletRequestservletRequest=this.pageC on text.ge

溫馨提示

  • 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)論