内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

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

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

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

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

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

Servlet被服務器實例化后,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當服務器決定將實例銷毀的時候調用其destroy方法。

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

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

1、從地址欄顯示來說

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

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

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

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

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

redirect不僅可以重定向到當前應用程序的其他資源,還可以重定向到同一個站點上的其他應用程序中的資源,甚至是使用絕對URL重定向到其他站點的資源

forward方法只能在同一個Web應用程序內的資源之間轉發(fā)請求.forward 是服務器內部的一種操作

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

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

3、從運用地方來說

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

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

4、從效率來說

forward:高.

redirect:低.

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

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

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

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

3、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()設置之后,才能夠通過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轉換的時期,而<jsp:include page="xxx.jsp">是jsp中的動作指令,其文件的包含是發(fā)生在編譯時期,也就是將java文件編譯為class文件的時期

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

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

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

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

六、jsp有哪些內置對象?作用分別是什么?

JSP共有以下9個內置的對象:

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

2、response 網頁傳回用戶端的回應

3、pageContext 網頁的屬性是在這里管理

4、session 與請求有關的會話期

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

6、out 用來傳送回應的輸出

7、config servlet的構架部件

8、page JSP網頁本身

9、exception 針對錯誤網頁,未捕捉的例外

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

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

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

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

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

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

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

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

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

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

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

(相關推薦:java入門)

區(qū)別:

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

2、cookie不是很安全,別人可以分析存放在本地的COOKIE并進行COOKIE欺騙,如果主要考慮到安全應當使用session

3、session會在一定時間內保存在服務器上。當訪問增多,會比較占用你服務器的性能,如果主要考慮到減輕服務器性能方面,應當使用COOKIE

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

結論:

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

九、jsp和servlet的區(qū)別、共同點、各自應用的范圍?

JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯后是“類servlet”。

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

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

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

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

在servlet注冊時加上<load-on-startup>1</load-on-startup>如果為正數(shù),則在一開始就實例化,如果不寫或為負數(shù),則第一次請求實例化。

當前標題:java高頻率基礎面試題——(四)
分享鏈接:http://www.rwnh.cn/article30/cgpiso.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、網站內鏈、品牌網站建設網站營銷、外貿網站建設響應式網站

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網站建設
辉南县| 沧州市| 井冈山市| 门头沟区| 射阳县| 东阳市| 定陶县| 乌恰县| 资溪县| 汨罗市| 泗阳县| 武平县| 麻江县| 武夷山市| 铜陵市| 醴陵市| 怀柔区| 翼城县| 盐池县| 兖州市| 梧州市| 宜兰县| 徐闻县| 双峰县| 集贤县| 芜湖市| 白水县| 高要市| 滦南县| 长岛县| 肇东市| 时尚| 鄂伦春自治旗| 大竹县| 当涂县| 肃南| 乐山市| 迁安市| 木里| 工布江达县| 乌海市|