Java面試題集(四)
二. Java Web基礎部分
在js中如何創建一個對象?
var p1={name:”tom”,”age”:12}; function Person(name,age){ this.name=name; this.age=age; } var p2=new Person(“jack”,14); 在js中如何得到對象的屬性? Var age=p2.age; age=p1[“age”]; Alert(age);
$(document).ready()方法和window.onload()方法的區別?
1.window.onload()方法是在網頁中所有的元素完全加載到瀏覽器後才執行的。
2.$(document).ready()方法可以在dom載入就緒時就對其進行操作,並調用執行綁定的函數。
Xml有哪些解析方式?區別是什麽?項目中用到了xml技術的哪些方面?如何實現的?
1.DOM方式:一次性將整個文檔加載到內存中,生成一個對象樹,在處理大型文件時其性能下降的非常厲害。
2.SAX:基於事件驅動的方法回調機制。每讀取一小部分數據時就會回調事件處理器對象的方法,但解析一旦開始就不能停止。
實際運用:用到了數據存貯,信息配置兩方面。在做數據交換平臺時,將不能數據源的數據組裝成XML文件,然後將XML文件壓縮打包加密後通過網絡傳送給接收者,接收解密與解壓縮後再同XML文件中還原相關信息進行處理。在做軟件配置時,利用XML可以很方便的進行,軟件的各種配置參數都存貯在XML文件中。
Servlet的生命周期?
1.初始化階段調用init()方法。
2.響應客戶端請求階段調用service()方法即doGet()和doPost()方法
3.終止階段調用destory()方法。
http請求的轉發(forward)和重定向(redirect)的區別?
1.地址欄:轉發顯示的是請求的url而重定向顯示的不是請求的url,是指向新的url。
2.瀏覽器發送請求次數:轉發瀏覽器發送了一次請求,而重定向瀏覽器發生了2次請求。
3.是否可以進行request數據共享:轉發2個資源之間是同一個request對象,可以共享request中數據,而重定向2個資源之間不是同一個request對象,不可以共享。
補充:forward是服務器請求資源,服務器直接訪問目標地址的URL,把那個URL的響應內容讀取過來,然後把這些內容再發給瀏覽器,瀏覽器根本不知道服務器發送的內容是從哪兒來的,所以它的地址欄中還是原來的地址;
redirect就是服務端根據邏輯,發送一個狀態碼,告訴瀏覽器重新去請求那個地址,一般來說瀏覽器會用剛才請求的所有參數重新請求,所以session,request參數都可以獲取。
Http中請求的get和post方式的區別?
Get用於信息獲取,而post用於更新信息,
get請求用來從服務器上獲得資源,而post是用來向服務器提交數據;
數據查詢時用Get方式,而數據添加、修改或刪除時用Post方式;
1.攜帶請求參數的方式
Get:通過請求行攜帶參數,參數顯示在地址欄
Post:通過請求體攜帶參數,參數不會顯示在地址欄
2.服務器端處理請求的方法
Get:會調用servlet的doGet()來處理請求
Post:會調用servlet的doPost()來處理請求
3.數據大小和安全性
Get:大小有顯示,不安全
Post:大小沒顯示,安全
JSP有哪些內置對象?作用分別是什麽?
jsp一共有9個內置對象:
Request:用戶端請求,此請求會包含來自get/post請求的參數
Reponse:網頁傳回用戶端的回應
Session:與請求有關的會話期,Session可以存貯用戶的狀態信息
Application: 與當前應用對應的ServletContext對象,應用中只有一個
pageContext:網頁的屬性在這裏管理
Out:用來傳送回應的輸出{}<%=%>
Page:jsp對應的servlet對象
Exception:針對錯誤網頁,未捕捉的異常對象
Config:與jsp對象
jsp中動態include與靜態include的區別?
1.動態包含:用<jsp:include file=”optimal.jsp”>包含動作是在jsp對應的servlet處理請求時去執行,每請求一次執行一次。
2.靜態包含:<%@include file=”optimal.jsp”>包含動作在jsp被編譯成java文件時執行,只有第一次請求時執行。
註意:在日常開發中會出現這樣錯誤:
The code of method _jspService(HttpServletRequest, HttpServletResponse) is exceeding the 65535 bytes limit
則該錯誤是jsp文件過大編譯失敗。解決方法是動態引入jsp文件,拆分jsp文件
JSP和Servlet有哪些相同點和不同點,他們之間的聯系是什麽?
JSP是Servlet技術的擴展,本質上是Servlet的簡易方式,更強調應用的外表表達。JSP編譯後是"類servlet"。Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML裏分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。
我們在web應用開發過程中經常遇到輸出某種編碼的字符,如iso8859-1等,如何輸出一個某種編碼的字符串?
Public String translate (String str) { String tempStr = ""; try { tempStr = new String(str.getBytes("ISO-8859-1"), "GBK"); tempStr = tempStr.trim(); } catch (Exception e) { System.err.println(e.getMessage()); } return tempStr; }
Jquery使用好處?為什麽使用jquery?
1.輕量級:jquery是輕量級的JavaScript框架.
2:強大的選擇器:JQuery不僅支持CSS裏的所有選擇器,還有JQuery獨有的選擇器.
3:出色的DOM操作封裝:JQuery封裝了大量常用的DOM操作。
4.兼容性好:JQuery能夠在不同瀏覽器中兼容,同時還修復了一些瀏覽器之間的差異.
5.可靠的事件處理機制
6.完善的ajax封裝
7.鏈式操作方式,隱式叠代
8.支持豐富的插件
Ajax發送請求過程?優缺點?應用場景?
$.ajax({ url : "user/login.do", type : "post", data : { mobile : $("#mobile").val(), password : $("#password").val() }, dataType : "json", success : function (data) { $("#login").text(JSON.stringify(data));//這裏進行了將字符串封裝成json對象形式 }, error:function(data){ //返回數據失敗提示 } });
優點:
1.最大的一點是頁面無刷新,給用戶體驗非常好。
2.使用異步方式與服務器通信,不需要打斷用戶操作,具有更加迅速的響應能力
3.Ajax的原則是“按需取數據,最大程度的減少冗余請求,減少服務器的負荷”。
缺點:
1.破壞瀏覽器後退按鈕的正常行為,在動態更新頁面後,用戶無法回到前一個頁面的狀態。
2.使用JavaScript作ajax引擎,JavaScript的兼容性和debug本身讓人頭疼。
應用場景:
1.文本輸入提示的場景
2.對數據進行聯動過濾場景。
Java面試題集(四)