大數(shù)據(jù)面試題(五)
321.TCP為何采用三次握手來(lái)建立連接,若釆用二次握手可以嗎,請(qǐng)說(shuō)明理由?
三次握手是為了防止已失效的連接請(qǐng)求再次傳送到服務(wù)器端。 二次握手不可行,因?yàn)椋喝绻捎诰W(wǎng)絡(luò)不穩(wěn)定,雖然客戶端以前發(fā)送的連接請(qǐng)求以到達(dá)服務(wù)方,但服務(wù)方的同意連接的應(yīng)答未能到達(dá)客戶端。則客戶方要重新發(fā)送連接請(qǐng)求,若采用二次握手,服務(wù)方收到重傳的請(qǐng)求連接后,會(huì)以為是新的請(qǐng)求,就會(huì)發(fā)送同意連接報(bào)文,并新開(kāi)進(jìn)程提供服務(wù),這樣會(huì)造成服務(wù)方資源的無(wú)謂浪費(fèi)
322.以下HTTP相應(yīng)狀態(tài)碼的含義描述正確的是()
A.200ok表示請(qǐng)求成功
B.400不良請(qǐng)求表示服務(wù)器未發(fā)現(xiàn)與請(qǐng)求URL匹配內(nèi)容
C.404未發(fā)現(xiàn)表示由于語(yǔ)法錯(cuò)誤兒導(dǎo)致服務(wù)器無(wú)法理解請(qǐng)求信息
D.500內(nèi)部服務(wù)器錯(cuò)誤,無(wú)法處理請(qǐng)求
答案:D
分析:
A 200ok 表示的意思是一切正常。一般用于相應(yīng)GET和POST請(qǐng)求。這個(gè)狀態(tài)碼對(duì)servlet是缺省的;如果沒(méi)有調(diào)用setStatus方法的話,就會(huì)得到200。
B 400 表示指出客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤
C 404 客戶端所給的地址無(wú)法找到任何資源
323.JSP頁(yè)面包括哪些元素?()
A.JSP命令
B.JSP Action
C.JSP腳本
D.JSP控件
答案:C
分析:JSP頁(yè)面元素構(gòu)成如下,因此ABD錯(cuò)誤
A 200ok 表示的意思是一切正常。一般用于相應(yīng)GET和POST請(qǐng)求。這個(gè)狀態(tài)碼對(duì)servlet是缺省的;如果沒(méi)有調(diào)用setStatus方法的話,就會(huì)得到200。
B 400 表示指出客戶端請(qǐng)求中的語(yǔ)法錯(cuò)誤
C 404 客戶端所給的地址無(wú)法找到任何資源

324.Ajax有四種技術(shù)組成:DOM,CSS,JavaScript,XmlHttpRequest,其中控制文檔結(jié)構(gòu)的是()
A.DOM
B.CSS
C.JavaScript
D.XmlHttpRequest
答案:A
325.下面關(guān)于session的用法哪些是錯(cuò)誤的?()
A.HttpSession session=new HttpSession();
B.String haha=session getParameler(:haha”);
C.session.removeAttribute(“haha”);
D.session.setAttribute(:haha:);XmlHttpRequest
答案:A
326.Jsp九大內(nèi)置對(duì)象
答案:
1、request對(duì)象
request 對(duì)象是 javax.servlet.httpServletRequest類(lèi)型的對(duì)象。 該對(duì)象代表了客戶端的請(qǐng)求信息,主要用于接受通過(guò)HTTP協(xié)議傳送到服務(wù)器的數(shù)據(jù)。(包括頭信息、系統(tǒng)信息、請(qǐng)求方式以及請(qǐng)求參數(shù)等)。request對(duì)象的作用域?yàn)橐淮握?qǐng)求。
2、response對(duì)象
response 代表的是對(duì)客戶端的響應(yīng),主要是將JSP容器處理過(guò)的對(duì)象傳回到客戶端。response對(duì)象也具有作用域,它只在JSP頁(yè)面內(nèi)有效。
3、session對(duì)象
session 對(duì)象是由服務(wù)器自動(dòng)創(chuàng)建的與用戶請(qǐng)求相關(guān)的對(duì)象。服務(wù)器為每個(gè)用戶都生成一個(gè)session對(duì)象,用于保存該用戶的信息,跟蹤用戶的操作狀態(tài)。session對(duì)象內(nèi)部使用Map類(lèi)來(lái)保存數(shù)據(jù),因此保存數(shù)據(jù)的格式為 “Key/value”。 session對(duì)象的value可以使復(fù)雜的對(duì)象類(lèi)型,而不僅僅局限于字符串類(lèi)型。
4、application對(duì)象
?application 對(duì)象可將信息保存在服務(wù)器中,直到服務(wù)器關(guān)閉,否則application對(duì)象中保存的信息會(huì)在整個(gè)應(yīng)用中都有效。與session對(duì)象相比,application對(duì)象生命周期更長(zhǎng),類(lèi)似于系統(tǒng)的“全局變量”。
5、out 對(duì)象
out 對(duì)象用于在Web瀏覽器內(nèi)輸出信息,并且管理應(yīng)用服務(wù)器上的輸出緩沖區(qū)。在使用 out 對(duì)象輸出數(shù)據(jù)時(shí),可以對(duì)數(shù)據(jù)緩沖區(qū)進(jìn)行操作,及時(shí)清除緩沖區(qū)中的殘余數(shù)據(jù),為其他的輸出讓出緩沖空間。待數(shù)據(jù)輸出完畢后,要及時(shí)關(guān)閉輸出流。
6、pageContext 對(duì)象
pageContext 對(duì)象的作用是取得任何范圍的參數(shù),通過(guò)它可以獲取 JSP頁(yè)面的out、request、reponse、session、application 等對(duì)象。pageContext對(duì)象的創(chuàng)建和初始化都是由容器來(lái)完成的,在JSP頁(yè)面中可以直接使用 pageContext對(duì)象。
7、config 對(duì)象
config 對(duì)象的主要作用是取得服務(wù)器的配置信息。通過(guò) pageConext對(duì)象的 getServletConfig() 方法可以獲取一個(gè)config對(duì)象。當(dāng)一個(gè)Servlet 初始化時(shí),容器把某些信息通過(guò) config對(duì)象傳遞給這個(gè) Servlet。 開(kāi)發(fā)者可以在web.xml 文件中為應(yīng)用程序環(huán)境中的Servlet程序和JSP頁(yè)面提供初始化參數(shù)。
8、page 對(duì)象
page 對(duì)象代表JSP本身,只有在JSP頁(yè)面內(nèi)才是合法的。 page隱含對(duì)象本質(zhì)上包含當(dāng)前 Servlet接口引用的變量,類(lèi)似于Java編程中的 this 指針。
9、exception 對(duì)象
exception 對(duì)象的作用是顯示異常信息,只有在包含 isErrorPage="true" 的頁(yè)面中才可以被使用,在一般的JSP頁(yè)面中使用該對(duì)象將無(wú)法編譯JSP文件。excepation對(duì)象和Java的所有對(duì)象一樣,都具有系統(tǒng)提供的繼承結(jié)構(gòu)。exception 對(duì)象幾乎定義了所有異常情況。在Java程序中,可以使用try/catch關(guān)鍵字來(lái)處理異常情況; 如果在JSP頁(yè)面中出現(xiàn)沒(méi)有捕獲到的異常,就會(huì)生成 exception 對(duì)象,并把 exception 對(duì)象傳送到在page指令中設(shè)定的錯(cuò)誤頁(yè)面中,然后在錯(cuò)誤頁(yè)面中處理相應(yīng)的 exception 對(duì)象。
327.如何配置一個(gè)servlet?
在web.xml中使用如下標(biāo)簽:

328.JavaScript,如何定義含有數(shù)值1至8的數(shù)組?
答: var arr=[1,2,3,4,5,6,7,8]
329.以下JavaScipt語(yǔ)句會(huì)產(chǎn)生運(yùn)行錯(cuò)誤的是_()
A.var obj=( );
B.var obj=[ ];
C.var obj=//;
D.var obj=1;
答案:AC
330.在JSP中,下面__()__塊中可以定義一個(gè)新類(lèi):
A.<% %>
B.<% ! %>
C.<%@ %>
D.<%=%>
答案:B
分析:B <% ! %> 可用作聲明
A不正確
C為引用xxx,比如<% @page xxxxx%>
D為表達(dá)式
331.HTML含義和版本變化
HTML含義:
Hyper Text Markup Language 超文本標(biāo)記語(yǔ)言,是一種用來(lái)制作“網(wǎng)頁(yè)”的簡(jiǎn)單標(biāo)記語(yǔ)言;用HTML編寫(xiě)的超文本文檔稱(chēng)為HTML文檔,HTML文檔的擴(kuò)展名是html或者h(yuǎn)tm
版本變化:
HTML1.0——在1993年6月作為IETF工作草案發(fā)布(并非標(biāo)準(zhǔn))
HTML 2.0——1995年11月作為RFC 1866發(fā)布
HTML 3.2——1997年1月14日,W3C推薦標(biāo)準(zhǔn)
HTML 4.0——1997年12月18日,W3C推薦標(biāo)準(zhǔn)
HTML 4.01(微小改進(jìn))——1999年12月24日,W3C推薦標(biāo)準(zhǔn)
HTML 5—2014年10月28日,W3C推薦標(biāo)準(zhǔn)HTML文檔結(jié)構(gòu);
HTML 5.1 - 2016年
HTML 5.2 – 2018年最新版本
HTML 5.3 is coming…
332.什么是錨鏈接
錨鏈接是帶有文本的超鏈接??梢蕴D(zhuǎn)到頁(yè)面的某個(gè)位置,適用于頁(yè)面內(nèi)容較多,超過(guò)一屏的場(chǎng)合 。分為頁(yè)面內(nèi)的錨鏈接和頁(yè)面間的錨鏈接 。
例如:1F2F
跳轉(zhuǎn)到2F標(biāo)記位置
說(shuō)明:
1.在標(biāo)記位置利用a標(biāo)簽的name屬性設(shè)置標(biāo)記。
2.在導(dǎo)航位置通過(guò)a標(biāo)簽的href屬性用#開(kāi)頭加name屬性值即可跳轉(zhuǎn)錨點(diǎn)位置。
333.HTML字符實(shí)體的作用及其常用字符實(shí)體
有些字符,比如說(shuō)“<”字符,在HTML中有特殊的含義,因此不能在文本中使用。想要在HTML中顯示一個(gè)小于號(hào)“<”,需要用到字符實(shí)體:<或者<
字符實(shí)體擁有三個(gè)部分:一個(gè)and符號(hào)(&),一個(gè)實(shí)體名或者一個(gè)實(shí)體號(hào),最后是一個(gè)分號(hào)(;)
常用字符實(shí)體:
顯示結(jié)果描述實(shí)體實(shí)體號(hào)空格??<小于<<>大于>&#&and符號(hào)&&'單引號(hào)' (IE不支持)'"引號(hào)""£英鎊££¥人民幣元¥¥§章節(jié)¥¥?版權(quán)??
334.HTML表單的作用和常用表單項(xiàng)類(lèi)型
表單的作用:
利用表單可以收集客戶端提交的有關(guān)信息。
常用表單項(xiàng)類(lèi)型:
input標(biāo)簽
type屬性功能input標(biāo)簽
type屬性功能text單行本框reset重置按鈕password密碼框submit提交按鈕radio單選按鈕textarea文本域checkbox復(fù)選框select下拉框button普通按鈕hidden隱藏域
335.表格、框架、div三種HTML布局方式的特點(diǎn)
優(yōu)點(diǎn)缺點(diǎn)應(yīng)用場(chǎng)合表格方便排列有規(guī)律、結(jié)構(gòu)均勻的內(nèi)容或數(shù)據(jù)產(chǎn)生垃圾代碼、影響頁(yè)面下載時(shí)間、靈活性不大難于修改內(nèi)容或數(shù)據(jù)整齊的頁(yè)面框架支持滾動(dòng)條、方便導(dǎo)航 節(jié)省頁(yè)面下載時(shí)間等兼容性不好,保存時(shí)不方便、應(yīng)用范圍有限小型商業(yè)網(wǎng)站、論壇后臺(tái)管理Div代碼精簡(jiǎn)、提高頁(yè)面下載速度、表現(xiàn)和內(nèi)容分離比較靈活、難于控制復(fù)雜的不規(guī)則頁(yè)面、業(yè)務(wù)種類(lèi)較多的大型商業(yè)網(wǎng)站
336.form中input設(shè)置為readonly和disabled的區(qū)別
readonlydisabled有效對(duì)象.只針對(duì)type為text/password有效對(duì)所有表單元素有效表單提交當(dāng)表單元素設(shè)置readonly后,表單提交能將該表單元素的值傳遞出去。當(dāng)表單元素設(shè)置disabled后,表單提交不能將該表單元素的值傳遞出去。
337.CSS的定義和作用
CSS的定義:CSS是Cascading Style Sheets(層疊樣式表)的簡(jiǎn)稱(chēng)。
CSS是一系列格式規(guī)則,它們控制網(wǎng)頁(yè)內(nèi)容的外觀。CSS簡(jiǎn)單來(lái)說(shuō)就是用來(lái)美化網(wǎng)頁(yè)用的。
CSS的具體作用包括:
使網(wǎng)頁(yè)豐富多彩,易于控制。
頁(yè)面的精確控制,實(shí)現(xiàn)精美、復(fù)雜頁(yè)面 。
338.CSS2常用選擇器類(lèi)型及其含義
選擇器名稱(chēng)案例語(yǔ)法格式標(biāo)簽選擇器h3{font-size:24px;font-family:"隸書(shū)“; }< h3>JSP< /h3>元素標(biāo)簽名{樣式屬性}類(lèi)選擇器.red {color:#F00;} < li class="red">Oracle< /li>. 元素標(biāo)簽class屬性值{樣式屬性}ID選擇器#p1 {background-color:#0F0;} < p id="p1">content< /p>#元素標(biāo)簽id屬性值{樣式屬性}包含選擇器div h3{color:red;} < div> < h3>CSS層疊樣式表< /h3> < /div>父元素標(biāo)簽 子元素標(biāo)簽{ 樣式屬性 }子選擇器div>ul{color:blue;} < div> < ul> < li>測(cè)試1 < ol> < li>嵌套元素< /li> < li>嵌套元素< /li> < li>嵌套元素< /li> < li>嵌套元素< /li> < /ol> < /li> < li>測(cè)試1< /li> < li>測(cè)試1< /li> < /ul> < /div>父元素標(biāo)簽名>子元素名{ 樣式屬性 }
339.引入樣式的三種方式及其優(yōu)先級(jí)別
三種引用方式:
1. 外部樣式表(存放.css文件中)
不需要style標(biāo)簽
< link rel=”stylesheet” href=”引用文件地址” />
2. 嵌入式樣式表
< style type=“text/css”>
p{color:red;}
< /style>
3.內(nèi)聯(lián)樣式
標(biāo)簽屬性名為style
< p style=“color:red;”>< /p>
優(yōu)先級(jí)級(jí)別:內(nèi)聯(lián)定義最高、內(nèi)部CSS次之、外部CSS優(yōu)先級(jí)最低。。
340.盒子模型
盒子模型類(lèi)似于生活中的盒子,具有4個(gè)屬性,外邊距,內(nèi)邊距,邊框,內(nèi)容。
外邊距:margin,用于設(shè)置元素和其他元素之間的距離。
內(nèi)邊距:padding,用于設(shè)置元素內(nèi)容和邊框之間的距離。
邊框:border,用于設(shè)置元素邊框粗細(xì),顏色,線型。
內(nèi)容:width,height,用于設(shè)置元素內(nèi)容顯示的大小。

例如:

341.JavaScript語(yǔ)言及其特點(diǎn)
Javascript一種基于對(duì)象(object-based)和事件驅(qū)動(dòng)(Event Driven)的簡(jiǎn)單的并具有安全性能的腳本語(yǔ)言。特點(diǎn):
解釋性: JavaScript不同于一些編譯性的程序語(yǔ)言,例如C、C++等,它是一種解釋性的程序語(yǔ)言,它的源代碼不需要經(jīng)過(guò)編譯,而直接在瀏覽器中運(yùn)行時(shí)被解釋。
基于對(duì)象:?JavaScript是一種基于對(duì)象的語(yǔ)言。這意味著它能運(yùn)用自己已經(jīng)創(chuàng)建的對(duì)象。因此,許多功能可以來(lái)自于腳本環(huán)境中對(duì)象的方法與腳本的相互作用。
事件驅(qū)動(dòng): JavaScript可以直接對(duì)用戶或客戶輸入做出響應(yīng),無(wú)須經(jīng)過(guò)Web服務(wù)程序。它對(duì)用戶的響應(yīng),是以事件驅(qū)動(dòng)的方式進(jìn)行的。所謂事件驅(qū)動(dòng),就是指在主頁(yè)中執(zhí)行了某種操作所產(chǎn)生的動(dòng)作,此動(dòng)作稱(chēng)為“事件”。比如按下鼠標(biāo)、移動(dòng)窗口、選擇菜單等都可以視為事件。當(dāng)事件發(fā)生后,可能會(huì)引起相應(yīng)的事件響應(yīng)。
跨平臺(tái):JavaScript依賴(lài)于瀏覽器本身,與操作環(huán)境無(wú)關(guān),只要能運(yùn)行瀏覽器的計(jì)算機(jī),并支持JavaScript的瀏覽器就可正確執(zhí)行。
342.JavaScript常用數(shù)據(jù)類(lèi)型有哪些
1、數(shù)值型(Number):整數(shù)和浮點(diǎn)數(shù)統(tǒng)稱(chēng)為數(shù)值。例如85或3.1415926等。
2、字符串型(String):由0個(gè),1個(gè)或多個(gè)字符組成的序列。在JavaScript中,用雙引號(hào)或單引號(hào)括起來(lái)表示,如“您好”、‘學(xué)習(xí)JavaScript’等。 不區(qū)分單引號(hào)、雙引號(hào)。
3、邏輯(布爾)型(Boolean):用true或false來(lái)表示。
4、空(null)值(Null):表示沒(méi)有值,用于定義空的或不存在的引用。
要注意,空值不等同于空字符串""或0。
5、未定義(Undefined)值:它也是一個(gè)保留字。表示變量雖然已經(jīng)聲明,但卻沒(méi)有賦值。
除了以上五種基本的數(shù)據(jù)類(lèi)型之外,JavaScript還支持復(fù)合數(shù)據(jù)類(lèi)型,包括對(duì)象和數(shù)組兩種。
343.html語(yǔ)法中哪條命令用于使一行文本折行,而不是插入一個(gè)新的段落? (B)
A.< TD>B.< BR>C.< P>D.< H1>
分析:
A < td>定義標(biāo)準(zhǔn)表格
C < p>表示文本一個(gè)段落
D < h1>表示對(duì)文本標(biāo)題進(jìn)行強(qiáng)調(diào)的一種標(biāo)簽
344.Ajax的優(yōu)點(diǎn)和缺點(diǎn)
優(yōu)點(diǎn):減輕服務(wù)器的負(fù)擔(dān),按需取數(shù)據(jù),最大程度的減少冗余請(qǐng)求,局部刷新頁(yè)面,減少用戶心理和實(shí)際的等待時(shí)間,帶來(lái)更好的用戶體驗(yàn),基于xml標(biāo)準(zhǔn)化,并被廣泛支持,不需安裝插件等,進(jìn)一步促進(jìn)頁(yè)面和數(shù)據(jù)的分離
缺點(diǎn):AJAX大量的使用了javascript和ajax引擎,這些取決于瀏覽器的支持.在編寫(xiě)的時(shí)候考慮對(duì)瀏覽器的兼容性.
345.怎樣防止表單刷新重復(fù)提交問(wèn)題?(說(shuō)出思路即可)
JS腳本方式:
第一種:定義全局變量,在form提交前判斷是否已有提交過(guò)

第二種:?jiǎn)螕籼峤话粹o后,立刻禁用改按鈕
第三種:?jiǎn)螕籼峤话粹o后,彈出屏蔽層,防止用戶第二次點(diǎn)擊
346.JQuery.get()和JQuery.ajax()方法之間的區(qū)別是什么?
JQuery.ajax()是對(duì)原生的javaScript的ajax的封裝,簡(jiǎn)化了ajax的步驟,用戶可用JQuery.ajax()發(fā)送get或者post方式請(qǐng)求,Jquery.get()是對(duì)ajax的get方式的封裝,只能發(fā)送get方式的請(qǐng)求。
347.Jquery里的緩存問(wèn)題如何解決?例如($.ajax()以及$.get())
$.ajax()請(qǐng)求時(shí)候加上cache:false的參數(shù),如:
$.get()請(qǐng)求時(shí)候加上時(shí)間,如:

$.get("url","data"+new Date(),function(data){});
348.Javascript是面向?qū)ο蟮?,怎么體現(xiàn)Javascript的繼承關(guān)系?
Javascript里面沒(méi)有像java那樣的繼承,javascript中的繼承機(jī)制僅僅是靠模擬的,可以使用prototype原型來(lái)實(shí)現(xiàn)
349.Javascript的有幾種種變量。變量范圍有什么不同?
可以分為三種
1、原生類(lèi)型(string,number,boolean)
2、對(duì)象(Date,Array)
3、特殊類(lèi)型(var vara;(只什么沒(méi)有定義),var varb = null;(定義一個(gè)變量并賦值為null))
350.Js如何獲取頁(yè)面的dom對(duì)象
1、直接獲取
//1.1 -- id方式獲取
var varid = document.getElementById("unameid");
//1.2 -- name獲取(獲取的是數(shù)組對(duì)象)
var varname = document.getElementsByName("sex");
//1.3 -- 元素獲取(獲取的是數(shù)組對(duì)象)
var varinput = document.getElementsByTagName("input");
2、間接方式獲取
//2.1 父子關(guān)系 --childNodes
var varchilds = document.getElementById("div01").childNodes;
//2.2 子父關(guān)系--parentNode
var varfather2 = document.getElementById("unameid").parentNode;
//2.3 兄弟之間相互獲取 nextSibling:下一個(gè)節(jié)點(diǎn) previousSibling:上一個(gè)節(jié)點(diǎn)
351.Servlet API中forward() 與redirect()的區(qū)別?
答:為實(shí)現(xiàn)程序的模塊化,就需要保證在不同的Servlet之間可以相互跳轉(zhuǎn),而Servlet中主要有兩種實(shí)現(xiàn)跳轉(zhuǎn)的方式:FORWARD方式與redirect方式。?
Forward() : 是服務(wù)器內(nèi)部的重定向,服務(wù)器直接訪問(wèn)目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取出來(lái),而客戶端并不知道,因此在客戶端瀏覽器的地址欄里不會(huì)顯示跳轉(zhuǎn)后的地址,還是原來(lái)的地址。由于在整個(gè)定向的過(guò)程中用的是同一個(gè)Request,因此FORWARD會(huì)將Request的信息帶到被定向的JSP或Servlet中使用。
Redirect():則是客戶端的重定向,是完全的跳轉(zhuǎn),即客戶端瀏覽器會(huì)獲取跳轉(zhuǎn)后的地址,然后重新發(fā)送請(qǐng)求,因此瀏覽器中會(huì)顯示跳轉(zhuǎn)后的地址。同時(shí),由于這種方式比FORWARD方式多了一次網(wǎng)絡(luò)請(qǐng)求,因此其效率低于FORWARD方式,需要注意到的是,客戶端的重定向可以通過(guò)設(shè)置特定的HTTP 頭或?qū)慗avaScript腳本來(lái)實(shí)現(xiàn)。
鑒于以上的區(qū)別,一般當(dāng)FORWARD方式可以滿足需求時(shí),盡可能的使用FORWARD方式。但在有些情況下,例如,需要跳轉(zhuǎn)到一個(gè)其他服務(wù)器上的資源時(shí),則必須使用redirect 方式。
352.Session域和request域什么區(qū)別?
作用域:存放數(shù)據(jù),獲取數(shù)據(jù)(傳遞數(shù)據(jù))
有效的作用域:生命周期,作用范圍
httpServeltRequest:
生命周期:一次請(qǐng)求之間
作用范圍:所有被請(qǐng)求轉(zhuǎn)發(fā)過(guò)的servlet都能獲取到
httpSession:
生命周期:一次會(huì)話
作用范圍:所有的servlet都可以獲取到
servletContex:
生命周期:從項(xiàng)目開(kāi)始運(yùn)行到服務(wù)器關(guān)閉
作用范圍:所有的servlet都可以獲取到?
作用域如何選用?
httpServeltRequest:和當(dāng)前請(qǐng)求有關(guān)的信息
httpSession:和當(dāng)前用戶有關(guān)的信息
servletContex:訪問(wèn)量比較大,不易更改
353.頁(yè)面中有一個(gè)命名為bankNo的下拉列表,寫(xiě)js腳本獲取當(dāng)前選項(xiàng)的索引值,如果用jquery如何獲取
var a = document.getElementsByName("bankNo")[0].value;
var b = $("select[name=bankNo]").val();
354.寫(xiě)出要求11位數(shù)字的正則表達(dá)式
^[1-9]\d{10}$
355.分別獲取指定name、Id的javascript對(duì)象,如果用jquey如何獲取

356.一個(gè)頁(yè)面有兩個(gè)form,如何獲取第一個(gè)form
用id方式獲取;document.getElementById("id");
357.如何設(shè)置一個(gè)層的可見(jiàn)/隱藏
可見(jiàn) : document.getElementById("divid").style.display = "block";
隱藏 : document.getElementById("divid").style.display = "none";
358.描述JSP中動(dòng)態(tài)INCLUDE與靜態(tài)INCLUDE的區(qū)別?
動(dòng)態(tài)導(dǎo)入
1、會(huì)將多個(gè)jsp頁(yè)面分別再編寫(xiě)成java文件,編譯成class文件
2、jsp文件中允許有相同的變量名,每個(gè)頁(yè)面互不影響
3、當(dāng)java代碼比較多優(yōu)先選用動(dòng)態(tài)導(dǎo)入
4、效率相對(duì)較低,耦合性低
靜態(tài)導(dǎo)入
1、會(huì)將多個(gè)jsp頁(yè)面合成一個(gè)jsp頁(yè)面,再編寫(xiě)成java文件,編譯成class文件
2、jsp文件中不允許有相同的變量名
3、當(dāng)java代碼比較少或者沒(méi)有java代碼是優(yōu)先選用靜態(tài)導(dǎo)入
4、效率相對(duì)較高,耦合性高
359.列舉JSP的內(nèi)置對(duì)象及方法
request表示HttpServletRequest對(duì)象。它包含了有關(guān)瀏覽器請(qǐng)求的信息,并且提供了幾個(gè)用于獲取cookie,?header,?和session數(shù)據(jù)的有用的方法。?
response表示HttpServletResponse對(duì)象,并提供了幾個(gè)用于設(shè)置送回?瀏覽器的響應(yīng)的方法(如cookies,頭信息等)?
out對(duì)象是javax.jsp.JspWriter的一個(gè)實(shí)例,提供了幾個(gè)方法使你能用于向?yàn)g覽器回送輸出結(jié)果
pageContext表示一個(gè)javax.servlejt.sp.PageContext對(duì)象。它是用于方便存取各種范圍的名字空間、servlet相關(guān)的對(duì)象的API,并且包裝了通用的servlet相關(guān)功能的方法。?
session表示一個(gè)請(qǐng)求的javax.servlet.http.HttpSession對(duì)象。Session可以存貯用戶的狀態(tài)信息
applicaton?表示一個(gè)javax.servle.ServletContext對(duì)象。這有助于查找有關(guān)servlet引擎和servlet環(huán)境的信息?
config表示一個(gè)javax.servlet.ServletConfig對(duì)象。該對(duì)象用于存取servlet實(shí)例的初始化參數(shù)。?
page表示從該頁(yè)面產(chǎn)生的一個(gè)servlet實(shí)例
Exception異常
360.列舉jsp的四大作用域
page、request、session、application
361.html和xhtml的區(qū)別是什么?
HTML與XHTML之間的差別,粗略可以分為兩大類(lèi)比較:一個(gè)是功能上的差別,另外是書(shū)寫(xiě)習(xí)慣的差別。關(guān)于功能上的差別,主要是XHTML可兼容各大瀏覽器、手機(jī)以及PDA,并且瀏覽器也能快速正確地編譯網(wǎng)頁(yè)。
因?yàn)閄HTML的語(yǔ)法較為嚴(yán)謹(jǐn), 所以如果你是習(xí)慣松散結(jié)構(gòu)的HTML編寫(xiě)者,那需要特別注意XHTML的規(guī)則。但也不必太過(guò)擔(dān)心,因?yàn)閄HTML的規(guī)則并不太難。下面列出了幾條容易犯的錯(cuò)誤,供大家引用。
1:所有標(biāo)簽都必須小寫(xiě)
在XHTML中,所有的標(biāo)簽都必須小寫(xiě),不能大小寫(xiě)穿插其中,也不能全部都是大寫(xiě)??匆粋€(gè)例子。
錯(cuò)誤:< Head>< /Head>< Body>< /Body>
正確:< head>< /head>< body>< /body>
2:標(biāo)簽必須成雙成對(duì)
像是< p>...< /p>、< a>...< /a>、< div>...< /div>標(biāo)簽等,當(dāng)出現(xiàn)一個(gè)標(biāo)簽時(shí),必須要有對(duì)應(yīng)的結(jié)束標(biāo)簽,缺一不可,就像在任何程序語(yǔ)言中的括號(hào)一樣。
錯(cuò)誤:大家好< p>我是muki
正確:< p>大家好< /p>< p>我是muki< /p>
3:標(biāo)簽順序必須正確
標(biāo)簽由外到內(nèi),一層層包覆著,所以假設(shè)你先寫(xiě)div后寫(xiě)h1,結(jié)尾就要先寫(xiě)h1后寫(xiě)div。只要記住一個(gè)原則“先進(jìn)后出”,先彈出的標(biāo)簽要后結(jié)尾。
錯(cuò)誤:< div>< h1>大家好< /div>< /h1>
正確:< div>< h1>大家好< /h1>< /div>
4:所有屬性都必須使用雙引號(hào)
在XHTML 1.0中規(guī)定連單引號(hào)也不能使用,所以全程都得用雙引號(hào)。
錯(cuò)誤:< div style=font-size:11px>hello< /div>
正確:< div style="font-size:11px">hello< /div
5:不允許使用target="_blank"
從XHTML 1.1開(kāi)始全面禁止target屬性,如果想要有開(kāi)新窗口的功能,就必須改寫(xiě)為rel="external",并搭配JavaScript實(shí)現(xiàn)此效果。
錯(cuò)誤:< a href="http://blog.mukispace.com" target="_blank">MUKI space< /a>
正確:< a href="http://blog.mukispace.com" rel="external">MUKI space< /a>
362.你做的頁(yè)面用哪些瀏覽器測(cè)試過(guò)?這些測(cè)試的內(nèi)核分別是什么?
1、Trident內(nèi)核代表產(chǎn)品Internet Explorer,又稱(chēng)其為IE內(nèi)核。?Trident(又稱(chēng)為MSHTML),是微軟開(kāi)發(fā)的一種排版引擎。使用Trident渲染引擎的瀏覽器包括:IE、傲游、世界之窗瀏覽器、Avant、騰訊TT、Netscape 8、NetCaptor、Sleipnir、GOSURF、GreenBrowser和KKman等。?
2、Gecko內(nèi)核代表作品Mozilla?,FirefoxGecko是一套開(kāi)放源代碼的、以C++編寫(xiě)的網(wǎng)頁(yè)排版引擎。Gecko是最流行的排版引擎之一,僅次于Trident。使用它的最著名瀏覽器有Firefox、Netscape6至9
3、WebKit內(nèi)核代表作品Safari、Chromewebkit?, 是一個(gè)開(kāi)源項(xiàng)目,包含了來(lái)自KDE項(xiàng)目和蘋(píng)果公司的一些組件,主要用于Mac OS系統(tǒng),它的特點(diǎn)在于源碼結(jié)構(gòu)清晰、渲染速度極快。缺點(diǎn)是對(duì)網(wǎng)頁(yè)代碼的兼容性不高,導(dǎo)致一些編寫(xiě)不標(biāo)準(zhǔn)的網(wǎng)頁(yè)無(wú)法正常顯示。主要代表作品有Safari和Google的瀏覽器Chrome。?
4、Presto內(nèi)核代表作品OperaPresto,?是由Opera Software開(kāi)發(fā)的瀏覽器排版引擎,供Opera 7.0及以上使用。它取代了舊版Opera 4至6版本使用的Elektra排版引擎,包括加入動(dòng)態(tài)功能,例如網(wǎng)頁(yè)或其部分可隨著DOM及Script語(yǔ)法的事件而重新排版。
363.你遇到了哪些瀏覽器的兼容性問(wèn)題?怎么解決的?
答:因?yàn)椴煌臑g覽器對(duì)同一段代碼有不同的解析,造成頁(yè)面顯示效果不統(tǒng)一的情況;這是我們常見(jiàn)的兼容性問(wèn)題。
解決方法:
1、針對(duì)不同的瀏覽器寫(xiě)不同的代碼
2、使用jquery屏蔽瀏覽器差異
遇到不同的兼容問(wèn)題,需要針對(duì)前端進(jìn)行兼容適配;
364.你知道的常用的js庫(kù)有哪些?
1.moment.js
舉個(gè)例子:
用js轉(zhuǎn)換時(shí)間戳為日期

2.chart.js
繪制簡(jiǎn)單的柱狀圖,曲線圖,蛛網(wǎng)圖,環(huán)形圖,餅圖等完全夠用,用法比較簡(jiǎn)單。
3.D3.js
功能太強(qiáng)大了,看首頁(yè)就知道了,感覺(jué)沒(méi)有什么圖d3繪不出來(lái)的。
4.Rx.js
很好的解決了異步和事件組合的問(wèn)題。
5.lodash.js
365.Js中的三種彈出式消息提醒(警告窗口、確認(rèn)窗口、信息輸入窗口)的命令是什么?
alter(),confirm(),prompt()
366.談?wù)刯s的閉包
答:閉包無(wú)處不在,比如:jQuery、zepto的核心代碼都包含在一個(gè)大的閉包中,所以下面我先寫(xiě)一個(gè)最簡(jiǎn)單最原始的閉包,以便讓你在大腦里產(chǎn)生閉包的畫(huà)面:

這是最簡(jiǎn)單的閉包。
有了初步認(rèn)識(shí)后,我們簡(jiǎn)單分析一下它和普通函數(shù)有什么不同,上面代碼翻譯成自然語(yǔ)言如下:
(1)定義普通函數(shù) A
(2)在 A 中定義普通函數(shù) B
(3)在 A 中返回 B
(4)執(zhí)行 A, 并把 A 的返回結(jié)果賦值給變量 C
(5)執(zhí)行 C
把這5步操作總結(jié)成一句話就是:
函數(shù)A的內(nèi)部函數(shù)B被函數(shù)A外的一個(gè)變量 c 引用。
把這句話再加工一下就變成了閉包的定義:
當(dāng)一個(gè)內(nèi)部函數(shù)被其外部函數(shù)之外的變量引用時(shí),就形成了一個(gè)閉包。
因此,當(dāng)你執(zhí)行上述5步操作時(shí),就已經(jīng)定義了一個(gè)閉包!
這就是閉包。
367.寫(xiě)一段js,遍歷所有的li,將每個(gè)li的內(nèi)容逐個(gè)alert出來(lái)

368.頁(yè)面上如何用JavaScript對(duì)多個(gè)checkbox全選

369.寫(xiě)一個(gè)簡(jiǎn)單的JQuery的ajax

370.Js截取字符串a(chǎn)bcdefg的efg

371.http的請(qǐng)求頭信息包含了什么?
請(qǐng)求行(請(qǐng)求方式,資源路徑,協(xié)議和協(xié)議版本號(hào))
若干請(qǐng)求頭
請(qǐng)求實(shí)體內(nèi)容
372.http的響應(yīng)碼200,404,302,500表示的含義分別是?
200 - 確定??蛻舳苏?qǐng)求已成功
302 - 臨時(shí)移動(dòng)轉(zhuǎn)移,請(qǐng)求的內(nèi)容已臨時(shí)移動(dòng)新的位置
404 - 未找到文件或目錄
500 - 服務(wù)器內(nèi)部錯(cuò)誤
373.Servlet中request對(duì)象的方法有?


374.Javascript的常用對(duì)象有哪些
常用對(duì)象包括日期對(duì)象Date,字符串對(duì)象String,數(shù)組對(duì)象Array
//獲取并顯示系統(tǒng)當(dāng)前時(shí)間

375.DOM和BOM及其關(guān)系
BOM瀏覽器對(duì)象模型,由一系列對(duì)象組成,是訪問(wèn)、控制、修改瀏覽器的屬性的方法。
DOM文檔對(duì)象模型,由一系列對(duì)象組成,是訪問(wèn)、檢索、修改XHTML文檔內(nèi)容與結(jié)構(gòu)的標(biāo)準(zhǔn)方法。

關(guān)系:
–BOM描述了與瀏覽器進(jìn)行交互的方法和接口
–DOM描述了處理網(wǎng)頁(yè)內(nèi)容的方法和接口
–DOM屬于BOM的一個(gè)屬性
376.JavaScript中獲取某個(gè)元素的三種方式JavaScript中的三種彈出式消息提醒命令是什么?
window.alert() 顯示一個(gè)提示信息
window.confirm() 顯示一個(gè)帶有提示信息、確定和取消按鈕的對(duì)話框
window.prompt() 顯示可提示用戶輸入的對(duì)話框
setTimeout與setInterval 的區(qū)別
setTimeout和setInterval的語(yǔ)法相同。它們都有兩個(gè)參數(shù),一個(gè)是將要執(zhí)行的代碼字符串,還有一個(gè)是以毫秒為單位的時(shí)間間隔,當(dāng)過(guò)了那個(gè)時(shí)間段之后就將執(zhí)行那段代碼。
不過(guò)這兩個(gè)函數(shù)還是有區(qū)別的,setInterval在執(zhí)行完一次代碼之后,經(jīng)過(guò)了那個(gè)固定的時(shí)間間隔,它還會(huì)自動(dòng)重復(fù)執(zhí)行代碼,而setTimeout只執(zhí)行一次那段代碼。
window.setTimeout("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,只執(zhí)行一次,無(wú)周期
window.setInterval("function",time);//設(shè)置一個(gè)超時(shí)對(duì)象,周期='交互時(shí)間'
377.JavaScript操作CSS的兩種方式

378.靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)的聯(lián)系和區(qū)別
聯(lián)系:
1)靜態(tài)網(wǎng)頁(yè)是網(wǎng)站建設(shè)的基礎(chǔ),靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)都要使用到HTMl語(yǔ)言。
2)靜態(tài)網(wǎng)頁(yè)是相對(duì)于動(dòng)態(tài)網(wǎng)頁(yè)而言,指沒(méi)有后臺(tái)數(shù)據(jù)庫(kù)、不含程序和不可交互的網(wǎng)頁(yè)、是標(biāo)準(zhǔn)的HTML文件,它的文件擴(kuò)展名是.htm或.html。你編的是什么它顯示的就是什么、不會(huì)有任何改變。
3)靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)之間并不矛盾,為了網(wǎng)站適應(yīng)搜索引擎檢索的需要,動(dòng)態(tài)網(wǎng)站可以采用靜動(dòng)結(jié)合的原則,適合采用動(dòng)態(tài)網(wǎng)頁(yè)的地方用動(dòng)態(tài)網(wǎng)頁(yè),如果必要使用靜態(tài)網(wǎng)頁(yè),則可以考慮用靜態(tài)網(wǎng)頁(yè)的方法來(lái)實(shí)現(xiàn),在同一個(gè)網(wǎng)站上,動(dòng)態(tài)網(wǎng)頁(yè)內(nèi)容和靜態(tài)網(wǎng)頁(yè)內(nèi)容同時(shí)存在也是很常見(jiàn)的事情。
區(qū)別:
1)程序是否在服務(wù)器端運(yùn)行,是重要標(biāo)志。在服務(wù)器端運(yùn)行的程序、網(wǎng)頁(yè)、組件,屬于動(dòng)態(tài)網(wǎng)頁(yè),它們會(huì)隨不同客戶、不同時(shí)間,返回不同的網(wǎng)頁(yè),例如ASP、PHP、JSP、ASP.net、CGI等。運(yùn)行于客戶端的程序、網(wǎng)頁(yè)、插件、組件,屬于靜態(tài)網(wǎng)頁(yè),例如html頁(yè)、Flash、javascript、VBscript等等,它們是永遠(yuǎn)不變的。
2)編程技術(shù)不同。靜態(tài)網(wǎng)頁(yè)和動(dòng)態(tài)網(wǎng)頁(yè)主要根據(jù)網(wǎng)頁(yè)制作的語(yǔ)言來(lái)區(qū)分。靜態(tài)網(wǎng)頁(yè)使用語(yǔ)言:HTML。 動(dòng)態(tài)網(wǎng)頁(yè)使用語(yǔ)言:HTML+ASP 或 HTML+PHP 或 HTML+JSP 等其它網(wǎng)站動(dòng)態(tài)語(yǔ)言。
3)被搜索引擎收錄情況不同。由于編程技術(shù)不容,靜態(tài)網(wǎng)頁(yè)是純粹HTML格式的網(wǎng)頁(yè),頁(yè)面內(nèi)容穩(wěn)定,不論是網(wǎng)頁(yè)是否被訪問(wèn),頁(yè)面都被保存在網(wǎng)站服務(wù)器上,很容易被搜索引擎收錄。而動(dòng)態(tài)網(wǎng)頁(yè)的內(nèi)容是當(dāng)用戶點(diǎn)擊請(qǐng)求時(shí)才從數(shù)據(jù)庫(kù)中調(diào)出返回給用戶一個(gè)網(wǎng)頁(yè)的內(nèi)容,并不是存放在服務(wù)器上的獨(dú)立文件,相比較于靜態(tài)網(wǎng)頁(yè)而言,動(dòng)態(tài)網(wǎng)頁(yè)很難被搜索引擎收錄。
4)用戶訪問(wèn)速度不同。用戶訪問(wèn)動(dòng)態(tài)網(wǎng)頁(yè)時(shí),網(wǎng)頁(yè)在獲得搜索指令后經(jīng)過(guò)數(shù)據(jù)庫(kù)的調(diào)查匹配,再將與指令相符的內(nèi)容傳遞給服務(wù)器,通過(guò)服務(wù)器的編譯將網(wǎng)頁(yè)編譯成標(biāo)準(zhǔn)的HTML代碼,從而傳遞給用戶瀏覽器,多個(gè)讀取過(guò)程大大降低了用戶的訪問(wèn)速度。而靜態(tài)網(wǎng)頁(yè)不同,由于網(wǎng)頁(yè)內(nèi)容直接存取在服務(wù)器上,省去了服務(wù)器的編譯過(guò)程,用戶訪問(wèn)網(wǎng)頁(yè)速度很快。
5)制作和后期維護(hù)工作量不同。動(dòng)態(tài)網(wǎng)頁(yè)的設(shè)計(jì)以數(shù)據(jù)庫(kù)技術(shù)為基礎(chǔ),可以實(shí)現(xiàn)多種功能,降低了網(wǎng)站維護(hù)的工作量。而靜態(tài)網(wǎng)頁(yè)由于沒(méi)有數(shù)據(jù)庫(kù)的支持,網(wǎng)頁(yè)內(nèi)容更改時(shí)需要直接修改代碼,在網(wǎng)站內(nèi)容制作和維護(hù)中,所需的工作量更大。動(dòng)態(tài)網(wǎng)頁(yè)與靜態(tài)網(wǎng)頁(yè)各有特點(diǎn),網(wǎng)站設(shè)計(jì)師在網(wǎng)頁(yè)設(shè)計(jì)時(shí),主要根據(jù)網(wǎng)站的功能需求和網(wǎng)站內(nèi)容多少選擇不同網(wǎng)頁(yè)。如,網(wǎng)站包含信息量太大時(shí),就需要選擇動(dòng)態(tài)網(wǎng)頁(yè),反之,則選擇靜態(tài)網(wǎng)頁(yè)。
379.JSP/ASP/PHP的比較
ASP(Active Server Pages),JSP(JavaServer Pages),PHP(Hypertext Preprocessor)是目前主流的三種動(dòng)態(tài)網(wǎng)頁(yè)語(yǔ)言。
ASP是微軟(Microsoft)所開(kāi)發(fā)的一種后臺(tái)腳本語(yǔ)言,它的語(yǔ)法和Visual BASIC類(lèi)似,可以像SSI(Server Side Include)那樣把后臺(tái)腳本代碼內(nèi)嵌到HTML頁(yè)面中。雖然ASP簡(jiǎn)單易用,但是它自身存在著許多缺陷,最重要的就是安全性問(wèn)題。
PHP是一種跨平臺(tái)的服務(wù)器端的嵌入式腳本語(yǔ)言。它大量地借用C,Java和Perl語(yǔ)言的語(yǔ)法, 并耦合PHP自己的特性,使WEB開(kāi)發(fā)者能夠快速地寫(xiě)出動(dòng)態(tài)產(chǎn)生頁(yè)面。它支持目前絕大多數(shù)數(shù)據(jù)庫(kù)。
JSP是一個(gè)簡(jiǎn)化的Servlet,它是由Sun公司倡導(dǎo)、許多公司參與一起建立的一種動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)標(biāo)準(zhǔn)。JSP技術(shù)有點(diǎn)類(lèi)似ASP技術(shù),它是在傳統(tǒng)的網(wǎng)頁(yè)HTML中插入Java程序段和JSP標(biāo)記(tag),從而形成JSP文件,后綴名為(*.jsp)。 用JSP開(kāi)發(fā)的Web應(yīng)用是跨平臺(tái)的,既能在Linux下運(yùn)行,也能在其他操作系統(tǒng)上運(yùn)行。
ASP優(yōu)點(diǎn): 無(wú)需編譯、易于生成、獨(dú)立于瀏覽器、面向?qū)ο?、與任何ActiveX scripting 語(yǔ)言兼容、源程序碼不會(huì)外漏。
缺點(diǎn):
1)Windows本身的所有問(wèn)題都會(huì)一成不變的也累加到了它的身上。安全性、穩(wěn)定性、跨平臺(tái)性都會(huì)因?yàn)榕cNT的捆綁而顯現(xiàn)出來(lái)。
2)ASP由于使用了COM組件所以它會(huì)變的十分強(qiáng)大,但是這樣的強(qiáng)大由于Windows NT系統(tǒng)最初的設(shè)計(jì)問(wèn)題而會(huì)引發(fā)大量的安全問(wèn)題。只要在這樣的組件或是操作中一不注意,那么外部攻擊就可以取得相當(dāng)高的權(quán)限而導(dǎo)致網(wǎng)站癱瘓或者數(shù)據(jù)丟失。
3)還無(wú)法完全實(shí)現(xiàn)一些企業(yè)級(jí)的功能:完全的集群、負(fù)載均橫。
PHP優(yōu)點(diǎn):
1)一種能快速學(xué)習(xí)、跨平臺(tái)、有良好數(shù)據(jù)庫(kù)交互能力的開(kāi)發(fā)語(yǔ)言。
2)簡(jiǎn)單輕便,易學(xué)易用。
3 ) 與Apache及其它擴(kuò)展庫(kù)結(jié)合緊密。
缺點(diǎn):
1 ) 數(shù)據(jù)庫(kù)支持的極大變化。
2 ) 不適合應(yīng)用于大型電子商務(wù)站點(diǎn)。
JSP優(yōu)點(diǎn):
1 ) 一處編寫(xiě)隨處運(yùn)行。
2 ) 系統(tǒng)的多臺(tái)平支持。
3 ) 強(qiáng)大的的可伸縮性。
4 ) 多樣化和功能強(qiáng)大的開(kāi)發(fā)工具支持。
缺點(diǎn):
1) 與ASP一樣,Java的一些優(yōu)勢(shì)正是它致命的問(wèn)題所在。
2 ) 開(kāi)發(fā)速度慢
380.CGI/Servlet/JSP的比較
CGI(Common Gateway Interface),通用網(wǎng)關(guān)接口,是一種根據(jù)請(qǐng)求信息動(dòng)態(tài)產(chǎn)生回應(yīng)內(nèi)容的技術(shù)。
通過(guò)CGI,Web 服務(wù)器可以將根據(jù)請(qǐng)求不同啟動(dòng)不同的外部程序,并將請(qǐng)求內(nèi)容轉(zhuǎn)發(fā)給該程序,在程序執(zhí)行結(jié)束后,將執(zhí)行結(jié)果作為回應(yīng)返回給客戶端。也就是說(shuō),對(duì)于每個(gè)請(qǐng)求,都要產(chǎn)生一個(gè)新的進(jìn)程進(jìn)行處理。
Servlet 是在服務(wù)器上運(yùn)行的小程序。在實(shí)際運(yùn)行的時(shí)候Java Servlet與Web服務(wù)器會(huì)融為一體。與CGI不同的是,Servlet對(duì)每個(gè)請(qǐng)求都是單獨(dú)啟動(dòng)一個(gè)線程,而不是進(jìn)程。這種處理方式大幅度地降低了系統(tǒng)里的進(jìn)程數(shù)量,提高了系統(tǒng)的并發(fā)處理能力。
比較:
1) JSP從本質(zhì)上說(shuō)就是Servlet。JSP技術(shù)產(chǎn)生于Servlet之后,兩者分工協(xié)作,Servlet側(cè)重于解決運(yùn)算和業(yè)務(wù)邏輯問(wèn)題,JSP則側(cè)重于解決展示問(wèn)題。
2 ) 與CGI相比,Servlet效率更高。Servlet處于服務(wù)器進(jìn)程中,它通過(guò)多線程方式運(yùn)行其service方法,一個(gè)實(shí)例可以服務(wù)于多個(gè)請(qǐng)求,并且其實(shí)例一般不會(huì)銷(xiāo)毀。而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程,服務(wù)完成后就銷(xiāo)毀,所以效率上低于Servlet 。
3)與CGI相比,Servlet更容易使用,功能更強(qiáng)大,具有更好的可移植性,更節(jié)省投資。在未來(lái)的技術(shù)發(fā)展過(guò)程中,Servlet有可能徹底取代CGI。
?由于字?jǐn)?shù)限制,后續(xù)內(nèi)容更加精彩,歡迎關(guān)注,整理不易,可否動(dòng)動(dòng)你的小手給小編來(lái)點(diǎn)更新的動(dòng)力,希望對(duì)你們會(huì)有幫助!~