1.jsp內置對象?作用?
request :客戶端請求,包含來自 GET/POST,提供了幾個用於獲取 cookie, 和 session 的方法
response :網頁傳回用戶端的回應
pageContext :網頁的屬性是在這里管理,獲取上下文對象
session :與請求有關的會話期,表示一個請求的HttpSession 對象。Session 可以存貯用戶的信息
application :servlet 正在執行的內容
out :用來傳送回應的輸出
config: servlet 的構架部件
page: JSP 網頁本身
exception: 針對錯誤網頁,未捕捉的例外
2.描述servlet的生命周期和基本框架
Servlet是Java編寫的程序,此程序是在服務器端運行的,處理客戶端的請求,並將處理結果以響應的方式返回給客戶端。
生命周期:加載和實例化、初始化、處理請求和服務結束。
Servlet被實例化后à容器運行init方法初始化à請求到達時,運行service方法à自動派遣與請求對應的doxxx方法à服務器調用destroy方法銷毀實例。
基本框架:
//繼承HttpServlet,重寫doGet和doPost方法 public class ServletTest extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { }
public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } |
3.使用過哪些javascript庫和前端框架?
庫:
Jquery:它封裝JavaScript常用的功能代碼,提供一種簡便的JavaScript設計模式,優化HTML文檔操作、事件處理、動畫設計和Ajax交互。
Lodash:提供了數百個功能性的JavaScript實用程序來補充原生字符串、數字、數組和其它原始對象方法。
React:用於構建用戶界面的JavaScript類庫,也是去年最受關注的類庫。它專注於Model-View-Controller(MVC)開發的“View”部分,使用它可以輕松創建保留狀態的UI組件。它是實現虛擬DOM的首選類庫之一, 它的內存結構能夠有效地計算差異,頁面更新也更加有效。小巧,高效,快捷靈活 簡單的組件模型
框架:
AngularJS :它使用雙向數據綁定擴展HTML,同時解耦了DOM操作和應用程序邏輯。
Vue.js:用於構建用戶界面的輕量級漸進框架。它提供了一個類似React的虛擬DOM驅動視圖層,可以與其它類庫集成,用於構建強大的單頁面應用。該框架是由之前在AngularJS工作過的Evan You創建的,他提取了AngularJS中自己喜歡的部分。Vue.js使用HTML模板語法將DOM綁定到實例數據。Model是在數據改變時更新view的純JavaScript對象。
Knockout.js:是最早的MVVM框架之一,它確保了UI與底層數據保持同步,具有模板和依賴關系跟蹤。
4.Label標簽的作用是什么?如何使用?
Label標簽來定義表單控制間的關系,當用戶選擇該標簽時,瀏覽器會自動將焦點轉到和標簽相關的表單控件上。
FOR屬性功能:表示Label標簽要綁定的HTML元素,你點擊這個標簽的時候,所綁定的元素將獲取焦點。
ACCESSKEY屬性功能:表示訪問Label標簽所綁定的元素的熱鍵,當您按下熱鍵,所綁定的元素將獲取焦點。
5.如何規避javascript多人開發函數重命名的問題,列出所有的解決辦法,舉例說明?
命名空間、封閉空間、js模塊化mvc(數據層、表現層、控制層)、變量轉換成對象的屬性、對象化。
6.編寫一個方法,實現對象的深度克隆?
function deepClone(obj) { var o = obj instanceof Array ? [] : {}; for(var k in obj) o[k] = typeof obj[k] === Object ? deepClone(obj[k]) : obj[k]; return o; } var a = [[1, 2, 3], [4, 5, 6, 7]]; var b = deepClone(a); alert(b);//輸出1、2、3、4、5、6、7 |
7.Http中get和post方式的區別?
get方法:
GET請求能夠被緩存
GET請求會保存在瀏覽器的瀏覽記錄中
GET請求的URL能夠保存為瀏覽器書簽
GET請求有長度限制
GET請求主要用以獲取數據
post方法:
POST請求不能被緩存下來
POST請求不會保存在瀏覽器瀏覽記錄中
POST請求的URL無法保存為瀏覽器書簽
POST請求沒有長度限制
8.XML文檔定義有幾種形式?它們之間有何本質區別?解析XML文檔有哪幾種方式及區別?
本題三個答題點:
a: 兩種形式 dtd,schema
b: 本質區別:schema本身是xml的,可以被XML解析器解析(這也是從DTD上發展schema的根本目的)
c: 兩種主要方式:dom,sax
區別:DOM:處理大型文件時其性能下降的非常厲害。這個問題是由DOM的樹結構所造成的,這種結構占用的內存較多,而且DOM必須在解析文件之前把整個文檔裝入內存,適合對XML的隨機訪問
SAX:不同於DOM,SAX是事件驅動型的XML解析方式。它順序讀取XML文件,不需要一次全部裝載整個文件。當遇到像文件開頭,文檔結束,或者標簽開頭與標簽結束時,它會觸發一個事件,用戶通過在其回調事件中寫入處理代碼來處理XML文件,適合對XML的順序訪問
9.簡述 Java Server Page(JSP)和 Servlet 的聯系和區別?
Servlet和JSP最主要的不同點在於,Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。JSP側重於視圖,Servlet主要用於控制邏輯。
10.jquery的選擇器有哪些?
11.javascript有哪些數據類型?
基本類型:Undefined、Null、Boolean、Number
引用類型:Object、Array和Function
12.在Jsp中使用JavaBean?
JSP技術提供了三個關於JavaBean組件的動作元素,即JSP標簽,它們分別為:
<jsp:useBean>標簽:用於在JSP頁面中查找或實例化一個JavaBean組件。
<jsp:setProperty>標簽:用於在JSP頁面中設置一個JavaBean組件的屬性。
<jsp:getProperty>標簽:用於在JSP頁面中獲取一個JavaBean組件的屬性。
13.談談我對Ajax的原理的理解
(同步,是發送方發送數據之后,必須等接收方接收數據必須做出回應之后,才可以進行下一步。
異步的話則是發送方發送數據之后不需等接收方做出回應,可以進行下一步操作。)
Ajax的原理簡單來說,實際上就是用javascript的方式,通過XmlHttpRequest對象來向服務器發異步請求,從服務器獲得數據,然后用javascript來操作DOM而更新頁面。
Ajax原理過程 :
利用XMLHttpRequest對象發送簡單請求的基本步驟:
1)創建XMLHttpRequest對象實例
2)設定XMLHttpRequest對象的回調函數,利用onreadystatechange屬性
3)設定請求屬性:設定HTTP方法(GET或POST);設定目標URL,利用open()方法
4)將請求發送給服務器。利用send()方法
利用DOM對服務器響應進行處理
Ajax優點:
1.無刷新更新數據,減少用戶等到時間,更好的用戶體驗
2.異步與服務器通信,無需打斷用戶,響應更加迅速
3.可以把服務器的一些負擔轉到客戶端,利用客戶端閑置的能力來處理,減輕服務器和帶寬的負擔,節約空間和寬帶租用成本。並且減輕服務器的負擔,AJAX的原則是“按需取數據”,可以最大程度的減少冗余請求和響應對服務器造成的負擔,提升站點性能。
5.基於標准化,廣泛被支持
Ajax缺點:
1.破壞了前進后退功能,用戶往往通過后退按鈕來取消上一步操作,但是使用ajax無法實現。可以使用Gmail來解決這個問題,它只是采用的一個比較笨但是有效的辦法,即用戶單擊后退按鈕訪問歷史記錄時,通過創建或使用一個隱藏的IFRAME來重現頁面上的變更。
2.安全問題。ajax技術就如同對企業數據建立了一個直接通道。這使得開發者在不經意間會暴露比以前更多的數據和服務器邏輯。ajax的邏輯可以對客戶端的安全掃描技術隱藏起來,允許黑客從遠端服務器上建立新的攻擊。還有自身受到如跨站腳本攻擊,SQL注入等攻擊。
3.對搜索引擎支持較弱
4.一些手持設備不能很好的支持等
14.對easyUi的理解?
基於jquery框架,主要前端視圖。
easyui在封裝組件的時候,是以對象的思想封裝,以函數調用的方式實現。
easyui的組件大量使用了繼承 。