2023年web面試題一答案_第1頁
2023年web面試題一答案_第2頁
2023年web面試題一答案_第3頁
2023年web面試題一答案_第4頁
2023年web面試題一答案_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

JavaWeb部分面試題一說出Servlet的生命周期,并說出Servlet和CGI的區(qū)別?Web容器加載servlet并將其實例化后,servlet生命周期開始,容器運營其init方法進行servlet的初始化,請求到達(dá)時運營其service方法,service方法自動派遣運營于請求相應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實例銷毀的時候調(diào)用其destroy方法。與CGI的區(qū)別在與servlet處在服務(wù)器進程中,它通過多線程方式運營其service方法,一個實例可以服務(wù)于多個請求,并且其實例一般不會銷毀,而CGI對每個請求都產(chǎn)生新的進程,服務(wù)完畢后就銷毀,所以效率上低于servlet。forward和redirect的區(qū)別?forward是容器中控制權(quán)的轉(zhuǎn)向,是服務(wù)器請求資源,服務(wù)器直接訪問目的地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器,瀏覽器主線不知道服務(wù)器發(fā)送的內(nèi)容是從哪兒來的,所以它的地址欄中還是本來的地址。redirect就是服務(wù)器端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數(shù)重新請求,所以session,request參數(shù)都可以獲取,并且從瀏覽器的地址欄中可以看到跳轉(zhuǎn)后的鏈接地址。前者更加高效,在前者可以滿足需要時,盡量使用forward()方法,也有助于隱藏實際的鏈接;在有些情況下,比如需要跳轉(zhuǎn)到一個其它服務(wù)器上的資源,則必須使用sendRedirect()方法。JSP中動態(tài)include與靜態(tài)include的區(qū)別?動態(tài)include用jsp:include動作實現(xiàn)<jsp:includepage="included.jsp"flush="true"/>它總是會檢查所包含文獻中的變化,適合用于包含動態(tài)頁面,并且可以帶參數(shù);靜態(tài)include用include偽碼實現(xiàn),它不會檢查所含文獻的變化,合用于包含靜態(tài)頁面<%@includefile="included.htm"%>JSP的有哪些內(nèi)置對象,作用分別是什么?request:表達(dá)HttpServletRequest對象,它包含了有關(guān)瀏覽器請求的信息,并且提供了幾個用于獲取cookie,header和session數(shù)據(jù)的有用方法;response:表達(dá)HttpServletResponse對象,并提供了幾個用于設(shè)立送回瀏覽器的響應(yīng)的方法(如cookies,頭信息等。)pageContext:網(wǎng)頁的屬性在這里管理;session:表達(dá)一個請求的javax.servlet.http.HttpSession對象,session可以存儲用戶的狀態(tài)信息;application:表達(dá)一個javax.servlet.ServletContext對象,這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息;out:是javax.jsp.JspWriter的一個實例,并提供了幾個方法使你能用于向瀏覽器回送輸出結(jié)果;config:表達(dá)一個javax.servlet.ServletConfig對象,該對象用于存取servlet實例的初始化參數(shù);page:表達(dá)從該頁面產(chǎn)生的一個servlet實例;exception:針對錯誤網(wǎng)頁,未捕獲的例外。JSP的常用指令?<%@pagelanguage="java"contentType="text/html"%><%@includefile="filename"%><%@taglibprefix="c"uri="http://...."%>JSP有哪些動作,作用分別是什么?JSP共有以下6種基本動作:jsp:include:在頁面被請求的時候引入一個文獻;jsp:useBean:尋找或者實例化一個JavaBean;jsp:setProperty:設(shè)立JavaBean的屬性;jsp:getProperty:輸出某個JavaBean的屬性;jsp:forward:把請求轉(zhuǎn)到一個新的頁面;jsp:plugin:根據(jù)瀏覽器類型為Java插件生成object標(biāo)記。GET和POST的區(qū)別?form中的get和post方法,在數(shù)據(jù)傳輸過程中分別相應(yīng)了HTTP協(xié)議中的GET和POST方法。兩者重要區(qū)別如下:Get是用來從服務(wù)器上獲得數(shù)據(jù),而Post是用來向服務(wù)器上傳遞數(shù)據(jù);Get將表單中數(shù)據(jù)按照variable=value的形式,添加到action所指向的URL后面,并且兩者使用“?”連接,而各個變量之間使用“&”連接;Post是將表單中的數(shù)據(jù)放在form的數(shù)據(jù)體中,按照變量和值相相應(yīng)的方式,傳遞到action所指向URL;Get是不安全的,由于在傳輸過程,數(shù)據(jù)被放在請求的URL中;Post的所有操作對用戶來說都是不可見的;Get傳輸?shù)臄?shù)據(jù)量小,這重要是由于受URL長度限制;而Post可以傳輸大量的數(shù)據(jù),所以在上傳文獻只能使用Post;Get限制form表單的數(shù)據(jù)集必須為ASCII字符,而Post支持整個ISO10646字符集;Get是from的默認(rèn)方法。常用的web容器和開發(fā)工具?最常用的容器包含:tomcat、weblogic、開發(fā)工具有:eclipse,jbuilder,JCreator畫出Servlet2.2以上WebApplication的基本目錄結(jié)構(gòu)?目錄結(jié)構(gòu)如下圖所示:JSP和Servlet有哪些相同點和不同點,它們之間的聯(lián)系是什么?Jsp是servlet技術(shù)的擴展,本質(zhì)上是servlet的簡易方式,更強調(diào)應(yīng)用的視圖表達(dá)。JSP編譯后是“servlet類”。Servlet和JSP最重要的不同點在于,servlet的應(yīng)用邏輯是在Java文獻中,并且完全從表達(dá)層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文獻。JSP側(cè)重于視圖,servlet重要用于控制邏輯。JSP的四種數(shù)據(jù)共享范圍?pageContext是代表與一個頁面相關(guān)的對象和屬性。一個頁面由一個編譯好的Javaservlet類(可以帶有任何的include指令,沒有include動作)表達(dá)。這既涉及servlet又涉及被編譯成servlet的JSP頁面。Request是代表與web客戶機發(fā)出的一個請求相關(guān)的對象和屬性。一個請求也許跨越多個頁面,涉及多個web組件(由于forward指令和include動作的關(guān)系)Session是代表與用于某個web客戶機的一個用戶體驗相關(guān)的對象和屬性。一個web會話可以也經(jīng)常會跨越多個客戶機請求。Application是代表與整個web應(yīng)用程序相關(guān)的對象和屬性。這實質(zhì)上是跨越整個web應(yīng)用程序,涉及多個頁面、請求和會話的一個全局作用域。Request對象的重要方法?getParameter(String)返回指定輸入?yún)?shù),假如不存在,返回nullgetParameterValues(String)返回指定輸入?yún)?shù)名的取值數(shù)組,假如取值不存在則返回null。它在參數(shù)具有多個取值的情況下十分有用。getParameterMap()返回請求參數(shù)的map()對象getRequestURI()返回URL中一部分,從“/”開始,涉及上下文,但不涉及任意查詢字符串getContextPath()返回指定servlet上下文(web應(yīng)用)的URL的前綴setAttribute(String,Object)在請求中設(shè)一個屬性getAttribute(String)得到設(shè)立的屬性的值getSession()返回當(dāng)前http會話getCookies();?返回與請求相關(guān)cookie的一個數(shù)組getRequestDispatcher(String)用于轉(zhuǎn)發(fā)轉(zhuǎn)發(fā)到新的地址setCharaterEncoding(String)設(shè)立解析的編碼具體描述MVC?;贘ava的web應(yīng)用系統(tǒng)采用MVC架構(gòu)模式,即model(模型)、view(視圖)、control(控制)分離設(shè)計;這是目前WEB應(yīng)用服務(wù)系統(tǒng)的主流設(shè)計方向。Medel:即解決業(yè)務(wù)邏輯的模塊,每一種解決一個模塊;View:負(fù)責(zé)頁面顯示,顯示model解決結(jié)果給用戶,重要實現(xiàn)數(shù)據(jù)到頁面轉(zhuǎn)換過程;Control:負(fù)責(zé)每個請求的分發(fā),把form數(shù)據(jù)傳遞給model解決,把解決結(jié)果的數(shù)據(jù)傳遞給view顯示。MVC的各個部分都有哪些技術(shù)來實現(xiàn)?MVC是Model-View-Controller的簡寫?!癕odel”代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實現(xiàn)),“View”是應(yīng)用的表達(dá)層(由JSP頁面產(chǎn)生),“Controller”是提供應(yīng)用的解決過程控制(一般是一個servlet),通過這種設(shè)計模型把應(yīng)用邏輯,解決過程和顯示提成不同的組件實現(xiàn)。這些組件可以進行交互和重用。有哪幾種會話跟蹤技術(shù)?Cookie、URL重寫、設(shè)立表單隱藏域。過濾器有哪些作用?可以驗證客戶是否來自可信的網(wǎng)絡(luò),可以對客戶提交的數(shù)據(jù)進行重新編碼,可以過濾掉客戶的某些不應(yīng)當(dāng)出現(xiàn)的詞匯,可以驗證用戶是否登錄,可以驗證客戶的瀏覽器是否支持當(dāng)前的應(yīng)用,可以記錄系統(tǒng)的日記等。Web.xml的作用?用于配置web應(yīng)用的信息,如listener、filter及servlet的配置信息等。寫出熟悉的JSTL標(biāo)簽。<c:if>、<c:choose>、<c:when>、<c:otherwise>、<c:forEach>、<c:set>。JSP標(biāo)簽的作用?如何定義?作用:分離J

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論