真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java高頻率基礎(chǔ)面試題——(四)

一、說一說Servlet的生命周期?

成都創(chuàng)新互聯(lián)公司長期為近千家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為鞏留企業(yè)提供專業(yè)的網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作,鞏留網(wǎng)站改版等技術(shù)服務(wù)。擁有10多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

(更多相關(guān)面試題推薦:java面試題及答案)

Servlet有良好的生存期的定義,包括加載和實(shí)例化、初始化、處理請求以及服務(wù)結(jié)束。這個生存期由javax.servlet.Servlet接口的init(),service()和destroy方法表達(dá)。

Servlet被服務(wù)器實(shí)例化后,容器運(yùn)行其init方法,請求到達(dá)時運(yùn)行其service方法,service方法自動派遣運(yùn)行與請求對應(yīng)的doXXX方法(doGet,doPost)等,當(dāng)服務(wù)器決定將實(shí)例銷毀的時候調(diào)用其destroy方法。

web容器加載servlet,生命周期開始。通過調(diào)用servlet的init()方法進(jìn)行servlet的初始化。通過調(diào)用service()方法實(shí)現(xiàn),根據(jù)請求的不同調(diào)用不同的do***()方法。結(jié)束服務(wù),web容器調(diào)用servlet的destroy()方法。

二、Servlet API中forward()與redirect()的區(qū)別?

1、從地址欄顯示來說

forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址。

redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是新的URL.所以redirect等于客戶端向服務(wù)器端發(fā)出兩次request,同時也接受兩次response。

2、從數(shù)據(jù)共享來說

forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù)

redirect:不能共享數(shù)據(jù)

redirect不僅可以重定向到當(dāng)前應(yīng)用程序的其他資源,還可以重定向到同一個站點(diǎn)上的其他應(yīng)用程序中的資源,甚至是使用絕對URL重定向到其他站點(diǎn)的資源

forward方法只能在同一個Web應(yīng)用程序內(nèi)的資源之間轉(zhuǎn)發(fā)請求.forward 是服務(wù)器內(nèi)部的一種操作

redirect 是服務(wù)器通知客戶端,讓客戶端重新發(fā)起請求

所以,你可以說 redirect 是一種間接的請求, 但是你不能說"一個請求是屬于forward還是redirect "

3、從運(yùn)用地方來說

forward:一般用于用戶登陸的時候,根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊.

redirect:一般用于用戶注銷登陸時返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等.

4、從效率來說

forward:高.

redirect:低.

三、request.getAttribute()和 request.getParameter()有何區(qū)別?

1、request.getParameter()取得是通過容器的實(shí)現(xiàn)來取得通過類似post,get等方式傳入的數(shù)據(jù)。

request.setAttribute()和getAttribute()只是在web容器內(nèi)部流轉(zhuǎn),僅僅是請求處理階段。

2、getAttribute是返回對象,getParameter返回字符串

3、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()設(shè)置之后,才能夠通過getAttribute()來獲得值,它們傳遞的是Object類型的數(shù)據(jù)。而且必須在同一個request對象中使用才有效。,而getParameter()是接收表單的get或者post提交過來的參數(shù)

(視頻教程推薦:java課程)

四、jsp靜態(tài)包含和動態(tài)包含的區(qū)別

1、<%@include file="xxx.jsp"%>為jsp中的編譯指令,其文件的包含是發(fā)生在jsp向servlet轉(zhuǎn)換的時期,而是jsp中的動作指令,其文件的包含是發(fā)生在編譯時期,也就是將java文件編譯為class文件的時期

2、使用靜態(tài)包含只會產(chǎn)生一個class文件,而使用動態(tài)包含會產(chǎn)生多個class文件

3、使用靜態(tài)包含,包含頁面和被包含頁面的request對象為同一對象,因?yàn)殪o態(tài)包含只是將被包含的頁面的內(nèi)容復(fù)制到包含的頁面中去;而動態(tài)包含包含頁面和被包含頁面不是同一個頁面,被包含的頁面的request對象可以取到的參數(shù)范圍要相對大些,不僅可以取到傳遞到包含頁面的參數(shù),同樣也能取得在包含頁面向下傳遞的參數(shù)

五、MVC的各個部分都有那些技術(shù)來實(shí)現(xiàn)?如何實(shí)現(xiàn)?

MVC是Model-View-Controller的簡寫。Model代表的是應(yīng)用的業(yè)務(wù)邏輯(通過JavaBean,EJB組件實(shí)現(xiàn)),View是應(yīng)用的表示面(由JSP頁面產(chǎn)生),Controller是提供應(yīng)用的處理過程控制(一般是一個Servlet),通過這種設(shè)計(jì)模型把應(yīng)用邏輯,處理過程和顯示邏輯分成不同的組件實(shí)現(xiàn)。這些組件可以進(jìn)行交互和重用。

六、jsp有哪些內(nèi)置對象?作用分別是什么?

JSP共有以下9個內(nèi)置的對象:

1、request 用戶端請求,此請求會包含來自GET/POST請求的參數(shù)

2、response 網(wǎng)頁傳回用戶端的回應(yīng)

3、pageContext 網(wǎng)頁的屬性是在這里管理

4、session 與請求有關(guān)的會話期

5、application servlet 正在執(zhí)行的內(nèi)容

6、out 用來傳送回應(yīng)的輸出

7、config servlet的構(gòu)架部件

8、page JSP網(wǎng)頁本身

9、exception 針對錯誤網(wǎng)頁,未捕捉的例外

七、Http中,get和post方法的區(qū)別

1、Get是向服務(wù)器發(fā)索取數(shù)據(jù)的一種請求,而Post是向服務(wù)器提交數(shù)據(jù)的一種請求

2、Get是獲取信息,而不是修改信息,類似數(shù)據(jù)庫查詢功能一樣,數(shù)據(jù)不會被修改

3、Get請求的參數(shù)會跟在url后進(jìn)行傳遞,請求的數(shù)據(jù)會附在URL之后,以?分割URL和傳輸數(shù)據(jù),參數(shù)之間以&相連,%XX中的XX為該符號以16進(jìn)制表示的ASCII,如果數(shù)據(jù)是英文字母/數(shù)字,原樣發(fā)送,如果是空格,轉(zhuǎn)換為+,如果是中文/其他字符,則直接把字符串用BASE64加密。

4、Get傳輸?shù)臄?shù)據(jù)有大小限制,因?yàn)镚ET是通過URL提交數(shù)據(jù),那么GET可提交的數(shù)據(jù)量就跟URL的長度有直接關(guān)系了,不同的瀏覽器對URL的長度的限制是不同的。

5、GET請求的數(shù)據(jù)會被瀏覽器緩存起來,用戶名和密碼將明文出現(xiàn)在URL上,其他人可以查到歷史瀏覽記錄,數(shù)據(jù)不太安全。

在服務(wù)器端,用Request.QueryString來獲取Get方式提交來的數(shù)據(jù)。

Post請求則作為http消息的實(shí)際內(nèi)容發(fā)送給web服務(wù)器,數(shù)據(jù)放置在HTML Header內(nèi)提交,Post沒有限制提交的數(shù)據(jù)。Post比Get安全,當(dāng)數(shù)據(jù)是中文或者不敏感的數(shù)據(jù),則用get,因?yàn)槭褂胓et,參數(shù)會顯示在地址,對于敏感數(shù)據(jù)和不是中文字符的數(shù)據(jù),則用post。

6、POST表示可能修改變服務(wù)器上的資源的請求,在服務(wù)器端,用Post方式提交的數(shù)據(jù)只能用Request.Form來獲取。

八、什么是cookie?Session和cookie有什么區(qū)別?

Cookie是會話技術(shù),將用戶的信息保存到瀏覽器的對象.

(相關(guān)推薦:java入門)

區(qū)別:

1、cookie數(shù)據(jù)存放在客戶的瀏覽器上,session數(shù)據(jù)放在服務(wù)器上

2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進(jìn)行COOKIE欺騙,如果主要考慮到安全應(yīng)當(dāng)使用session

3、session會在一定時間內(nèi)保存在服務(wù)器上。當(dāng)訪問增多,會比較占用你服務(wù)器的性能,如果主要考慮到減輕服務(wù)器性能方面,應(yīng)當(dāng)使用COOKIE

4、單個cookie在客戶端的限制是3K,就是說一個站點(diǎn)在客戶端存放的COOKIE不能3K。

結(jié)論:

將登陸信息等重要信息存放為SESSION;其他信息如果需要保留,可以放在COOKIE中。

九、jsp和servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍?

JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡易方式。JSP編譯后是“類servlet”。

Servlet和JSP最主要的不同點(diǎn)在于:Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴(kuò)展名為.jsp的文件。

JSP側(cè)重于視圖,Servlet主要用于控制邏輯。在struts框架中,JSP位于MVC設(shè)計(jì)模式的視圖層,而Servlet位于控制層.

十、tomcat容器是如何創(chuàng)建servlet類實(shí)例?用到了什么原理?

當(dāng)容器啟動時,會讀取在webapps目錄下所有的web應(yīng)用中的web.xml文件,然后對xml文件進(jìn)行解析,并讀取servlet注冊信息。然后,將每個應(yīng)用中注冊的servlet類都進(jìn)行加載,并通過反射的方式實(shí)例化。(有時候也是在第一次請求時實(shí)例化)

在servlet注冊時加上1如果為正數(shù),則在一開始就實(shí)例化,如果不寫或?yàn)樨?fù)數(shù),則第一次請求實(shí)例化。
網(wǎng)站題目:java高頻率基礎(chǔ)面試題——(四)
當(dāng)前鏈接:http://weahome.cn/article/cgpiso.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部