(一)JAVA面試題 java web部分 2018-06-06

1.Servletjsp頁(yè)面過濾器Filter的作用及配置

【參考答案】

過濾器是一個(gè)駐留在服務(wù)器端的Web組件署咽,它可以截取客戶端和服務(wù)器端資源之間的請(qǐng)求與響應(yīng)信息杂抽,并對(duì)這些信息進(jìn)行過濾诈唬。作用:用戶請(qǐng)求審查、用戶數(shù)據(jù)轉(zhuǎn)換缩麸、統(tǒng)一認(rèn)證铸磅、輸出數(shù)據(jù)進(jìn)行壓縮、對(duì)請(qǐng)求響應(yīng)進(jìn)行加密杭朱。

配置:一般在web.xml中配置阅仔,通過和元素來(lái)完成的。

2.JSP內(nèi)置對(duì)象作用弧械,如何取Cookie的方法

【參考答案】

使用request對(duì)象的getCookies()方法取到所有客戶端cookies信息八酒。

(1) HttpServletRequest類的request對(duì)象

作用:代表請(qǐng)求對(duì)象,主要用于接受客戶端通過HTTP協(xié)議連接傳輸?shù)椒?wù)器端的數(shù)據(jù)刃唐。

(2) HttpServletResponse類的respone對(duì)象

作用:代表響應(yīng)對(duì)象羞迷,主要用于向客戶端發(fā)送數(shù)據(jù)

(3) JspWriter類的out對(duì)象

作用:主要用于向客戶端輸出數(shù)據(jù);

Out的基類是JspWriter

(4) HttpSession類的session對(duì)象

作用:主要用于來(lái)分別保存每個(gè)用戶信息,與請(qǐng)求關(guān)聯(lián)的會(huì)話画饥;

會(huì)話狀態(tài)維持是Web應(yīng)用開發(fā)者必須面對(duì)的問題衔瓮。

(5) ServletContext類的application對(duì)象

作用:主要用于保存用戶信息,代碼片段的運(yùn)行環(huán)境荒澡;

它是一個(gè)共享的內(nèi)置對(duì)象报辱,即一個(gè)容器中的多個(gè)用戶共享一個(gè)application對(duì)象,故其保存的信息被所有用戶所共享.

(6) PageContext類的pageContext對(duì)象

作用:管理網(wǎng)頁(yè)屬性,為JSP頁(yè)面包裝頁(yè)面的上下文单山,管理對(duì)屬于JSP中特殊可見部分中已命名對(duì)象的訪問碍现,它的創(chuàng)建和初始化都是由容器來(lái)完成的。

(7) ServletConfig類的config對(duì)象

作用:代碼片段配置對(duì)象米奸,表示Servlet的配置昼接。

(8) Object類的Page(相當(dāng)于this)對(duì)象

作用:處理JSP網(wǎng)頁(yè),是Object類的一個(gè)實(shí)例悴晰,指的是JSP實(shí)現(xiàn)類的實(shí)例慢睡,即它也是JSP本身,只有在JSP頁(yè)面范圍之內(nèi)才是合法的铡溪。

(9)Exception

作用:處理JSP文件執(zhí)行時(shí)發(fā)生的錯(cuò)誤和異常

3.通過部署描述文件(web.xml)可以配置哪些功能漂辐?

【參考答案】

1、配置項(xiàng)目的歡迎頁(yè)面棕硫。

2髓涯、配置Servlet訪問URL

3、配置Web容器哈扮、Servlet的初始化參數(shù)

4纬纪、配置錯(cuò)誤頁(yè)面蚓再,可以通過異常編號(hào)進(jìn)行錯(cuò)誤頁(yè)面跳轉(zhuǎn)。

5包各、Servlet加載優(yōu)先級(jí)摘仅。

6、Web容器監(jiān)聽器问畅。

7娃属、Web請(qǐng)求過濾器。

8按声、設(shè)置會(huì)話的過期時(shí)間膳犹。

4.JSP有哪些的動(dòng)作?分別有什么作用签则?

【參考答案】

:在頁(yè)面被請(qǐng)求的時(shí)候引入一個(gè)文件。

:尋找或者實(shí)例化一個(gè)JavaBean铐料。

:設(shè)置JavaBean的屬性渐裂。

:輸出某個(gè)JavaBean的屬性。

:把請(qǐng)求轉(zhuǎn)到一個(gè)新的頁(yè)面钠惩。

:在請(qǐng)求轉(zhuǎn)發(fā)與include中進(jìn)行頁(yè)面?zhèn)鲄ⅰ?/p>

:根據(jù)瀏覽器類型為Java插件生成OBJECT或EMBED標(biāo)記柒凉。

分析

主要說(shuō)出常用的即可,分類羅列篓跛,一類與JavaBean相關(guān)的動(dòng)作膝捞,

>\\,另一類是轉(zhuǎn)發(fā)包含的指令\

d>\

5.JSPSERVLET區(qū)別

【參考答案】

JSP在本質(zhì)上就是SERVLET,但是兩者的創(chuàng)建方式不一樣.Servlet完全是JAVA程序代碼構(gòu)成愧沟,擅長(zhǎng)于流程控制蔬咬;而.JSP由HTML代碼和JSP標(biāo)簽構(gòu)成,可以方便地編寫動(dòng)態(tài)網(wǎng)頁(yè).因此在實(shí)際應(yīng)用中采用Servlet來(lái)控制業(yè)務(wù)流程沐寺,而采用JSP來(lái)生成動(dòng)態(tài)網(wǎng)頁(yè)林艘,同時(shí)在MVC設(shè)計(jì)模式中JSP充當(dāng)視圖層,而Servlet位于控制層混坞。另外JSP也是Servlet技術(shù)的擴(kuò)展狐援,本質(zhì)上就是Servlet,就是JSP的另一種簡(jiǎn)易體現(xiàn)形式究孕,因?yàn)镴SP編譯后就是一個(gè)“類servlet”啥酱,再經(jīng)由JVM編譯生成Java類文件來(lái)執(zhí)行。

6.Tomcatclass加載的優(yōu)先順序一覽

【參考答案】

加載順序圖示如下:

第一步:加載JVM類庫(kù)厨诸。一般是加載由虛擬機(jī)提供的基本的運(yùn)行時(shí)類和系統(tǒng)擴(kuò)展目錄($JAVA_HOME/jre/lib/ext)下的JAR包镶殷。

第二步:加載系統(tǒng)環(huán)境變量的類庫(kù)。這個(gè)加載器用來(lái)加載CLASSPATH環(huán)境變量中指定的類泳猬。

第三步:加載Tomcat下面common文件夾下面的公共類庫(kù)批钠。

第四步:加載自己需要的catalina類庫(kù)宇植。

第五步:webapps下面自己應(yīng)用的類庫(kù),包括webapp1埋心、webapp1......等指郁。

7.BSCS的聯(lián)系與區(qū)別】酱簦【極地信息面試題】

【參考答案】

C/S是Client/Server的縮寫,表示客戶端需要安裝專用的客戶端軟件與服務(wù)器交互闲坎。

B/S是Brower/Server的縮寫,客戶機(jī)上只要安裝一個(gè)瀏覽器(Browser)茬斧,如Internet Explorer腰懂。在這種結(jié)構(gòu)下,用戶界面完全通過WWW瀏覽器實(shí)現(xiàn)项秉,一部分事務(wù)邏輯在前端實(shí)現(xiàn)绣溜,但是主要事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。瀏覽器通過Web Server同數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交互娄蔼。

C/SB/S區(qū)別:

1.硬件環(huán)境不同:

C/S一般建立在專用的網(wǎng)絡(luò)上,小范圍里的網(wǎng)絡(luò)環(huán)境,局域網(wǎng)之間再通過專門服務(wù)器提供連接和數(shù)據(jù)交換服務(wù).

B/S建立在廣域網(wǎng)之上的,不必是專門的網(wǎng)絡(luò)硬件環(huán)境,例與電話上網(wǎng),租用設(shè)備.信息自己管理.有比C/S更強(qiáng)的適應(yīng)范圍,一般只要有操作系統(tǒng)和瀏覽器就行

2.對(duì)安全要求不同

C/S一般面向相對(duì)固定的用戶群,對(duì)信息安全的控制能力很強(qiáng).一般高度機(jī)密的信息系統(tǒng)采用C/S結(jié)構(gòu)適宜.可以通過B/S發(fā)布部分可公開信息.

B/S建立在廣域網(wǎng)之上,對(duì)安全的控制能力相對(duì)弱,可能面向不可知的用戶怖喻。

3.對(duì)程序架構(gòu)不同

C/S程序可以更加注重流程,可以對(duì)權(quán)限多層次校驗(yàn),對(duì)系統(tǒng)運(yùn)行速度可以較少考慮.

B/S對(duì)安全以及訪問速度的多重的考慮,建立在需要更加優(yōu)化的基礎(chǔ)之上.比C/S有更高的要求B/S結(jié)構(gòu)的程序架構(gòu)是發(fā)展的趨勢(shì),從MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持網(wǎng)絡(luò)的構(gòu)件搭建的系統(tǒng). SUN和IBM推的JavaBean構(gòu)件技術(shù)等,使B/S更加成熟.

4.軟件重用不同

C/S程序可以不可避免的整體性考慮,構(gòu)件的重用性不如在B/S要求下的構(gòu)件的重用性好.

B/S對(duì)的多重結(jié)構(gòu),要求構(gòu)件相對(duì)獨(dú)立的功能.能夠相對(duì)較好的重用.就入買來(lái)的餐桌可以再利用,而不是做在墻上的石頭桌子

5.系統(tǒng)維護(hù)不同

C/S程序由于整體性,必須整體考察,處理出現(xiàn)的問題以及系統(tǒng)升級(jí).升級(jí)難.可能是再做一個(gè)全新的系統(tǒng)

B/S構(gòu)件組成,方面構(gòu)件個(gè)別的更換,實(shí)現(xiàn)系統(tǒng)的無(wú)縫升級(jí).系統(tǒng)維護(hù)開銷減到最小.用戶從網(wǎng)上自己下載安裝就可以實(shí)現(xiàn)升級(jí).

6.處理問題不同

C/S程序可以處理用戶面固定,并且在相同區(qū)域,安全要求高需求,與操作系統(tǒng)相關(guān).應(yīng)該都是相同的系統(tǒng)

B/S建立在廣域網(wǎng)上,面向不同的用戶群,分散地域,這是C/S無(wú)法作到的.與操作系統(tǒng)平臺(tái)關(guān)系最小.

7.用戶接口不同

C/S多是建立的Window平臺(tái)上,表現(xiàn)方法有限,對(duì)程序員普遍要求較高

B/S建立在瀏覽器上,有更加豐富和生動(dòng)的表現(xiàn)方式與用戶交流.并且大部分難度減低,減低開發(fā)成本.

8.信息流不同

C/S程序一般是典型的中央集權(quán)的機(jī)械式處理,交互性相對(duì)低

B/S信息流向可變化, B-B B-C B-G等信息、流向的變化,更像交易中心岁诉。

8.ServletCGI的區(qū)別锚沸。【大唐動(dòng)力面試題】

【參考答案】

Servlet主要是運(yùn)行在服務(wù)器端的一個(gè)組件涕癣,基于Java語(yǔ)法構(gòu)建哗蜈,延用Java的傳統(tǒng)優(yōu)勢(shì)——可移植、穩(wěn)健坠韩、易開發(fā)距潘。CGI不可移植,為某一特定平臺(tái)編寫的CGI應(yīng)用只能運(yùn)行于這一環(huán)境中同眯。每一個(gè)CGI應(yīng)用存在于一個(gè)由客戶端請(qǐng)求激活的進(jìn)程中绽昼,并且在請(qǐng)求被服務(wù)后被卸載。這種模式將引起很高的內(nèi)存须蜗、CPU開銷硅确,而且在同一進(jìn)程中不能服務(wù)多個(gè)客戶。

Servlet對(duì)CGI的最主要優(yōu)勢(shì)在于一個(gè)Servlet被客戶端發(fā)送的第一個(gè)請(qǐng)求激活明肮,然后它將繼續(xù)運(yùn)行于后臺(tái)菱农,等待后續(xù)請(qǐng)求。每個(gè)請(qǐng)求將生成一個(gè)新的線程柿估,而不是一個(gè)完整的進(jìn)程循未,多個(gè)客戶能夠在同一個(gè)進(jìn)程中同時(shí)得到服務(wù),也就是說(shuō)它是基于多線程模式。而CGI對(duì)每個(gè)請(qǐng)求都產(chǎn)生新的進(jìn)程的妖,服務(wù)完成后就銷毀绣檬,所以效率上低于servlet。

9.Servlet中的init()方法什么時(shí)候被調(diào)用嫂粟?

【參考答案】

當(dāng)客戶端第一次請(qǐng)求該Servlet時(shí)娇未,由容器調(diào)用該Servlet類的init()方法對(duì)該Servlet進(jìn)行初始化,該初始始化方法只被調(diào)用一次星虹。

10.用什么方法使服務(wù)器關(guān)閉之后零抬,session所保存的信息不會(huì)丟失?

【參考答案】

使用cookie實(shí)現(xiàn)宽涌,服務(wù)器端將需要保存的信息平夜,通過Cookie并寫入客戶端磁盤中,下次訪問時(shí)卸亮,客戶端瀏覽器攜帶寫入的信息提交至服務(wù)器忽妒,這樣可以使信息不會(huì)因服務(wù)器關(guān)閉而丟失。

【分析】

主要考查Cookie的相關(guān)知識(shí)嫡良,比如還有一道題問:如果登錄某個(gè)網(wǎng)站后锰扶,想在本周內(nèi)都不用重新登錄,也是通過Cookie實(shí)現(xiàn)的

11.ForwardRedirect的區(qū)別?有哪些方式實(shí)現(xiàn)

【參考答案】

forward是服務(wù)器資源轉(zhuǎn)發(fā)寝受,服務(wù)器直接訪問目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來(lái)罕偎,然后把這些內(nèi)容再發(fā)給瀏覽器很澄,客戶機(jī)并不知道發(fā)送的內(nèi)容是從哪兒來(lái)的,所以地址欄中還是原來(lái)的地址颜及;redirect則是服務(wù)器收到請(qǐng)求后發(fā)送一個(gè)狀態(tài)頭給客戶甩苛,客戶將再請(qǐng)求一次,這里多了兩次網(wǎng)絡(luò)通信的來(lái)往俏站。forward會(huì)將請(qǐng)求狀態(tài)和信息發(fā)至下一個(gè)jsp或Servlet讯蒲。redirect是送到client端后再一次請(qǐng)求,信息不被保留,就是我們說(shuō)的無(wú)法獲取request中的參數(shù)肄扎。

實(shí)現(xiàn)方式:

HttpServletResponse接口sendRedirect()方法進(jìn)行重定向轉(zhuǎn)發(fā)

RequestDispatcher.接口forward()方法進(jìn)行請(qǐng)求轉(zhuǎn)發(fā)

12.Servlet的生命周期分為3個(gè)階段?CGI的區(qū)別墨林?

【參考答案】

Servlet的生命周期主要由3個(gè)過程組成。

(1)init()方法:服務(wù)器初始化servlet犯祠。

(2)service()方法:初始化完畢旭等,servlet對(duì)象調(diào)用該方法響應(yīng)客戶的請(qǐng)求。

(3)destroy()方法:調(diào)用該方法消滅servlet對(duì)象衡载。

其中搔耕,init()方法只在servlet第一次被請(qǐng)求加載的時(shí)候被調(diào)用一次,當(dāng)有客戶再請(qǐng)求servlet服務(wù)時(shí)痰娱,web服務(wù)器將啟動(dòng)一個(gè)新的線程弃榨,在該線程中菩收,調(diào)用service方法響應(yīng)客戶的請(qǐng)求。

【分析】

后一個(gè)問題鲸睛,與CGI的區(qū)別娜饵,可以參考前面的答案。

13.描述CookieSession的作用腊凶?區(qū)別和各自的應(yīng)用范圍划咐?Session工作原理【迹【北京科瑞明】

【參考答案】

Cookie和Session都是用來(lái)服務(wù)器端和客戶端進(jìn)行會(huì)話跟蹤的一種技術(shù)褐缠。

區(qū)別:Cookie只能傳輸字符數(shù)據(jù),字符是通過加密后寫到客戶端风瘦,下次請(qǐng)求時(shí)協(xié)帶至服務(wù)器端队魏,Cookie協(xié)帶的數(shù)據(jù)大小為4KB,對(duì)數(shù)據(jù)量超出4KB的數(shù)據(jù)万搔,無(wú)法處理胡桨,Cookie數(shù)據(jù)一般是通過加密后存儲(chǔ)在客戶端,而Session在服務(wù)器端和瀏覽器緩存中都保存在ID的值瞬雹,通過此ID來(lái)識(shí)別唯一的客戶端昧谊。Session對(duì)數(shù)據(jù)存儲(chǔ)的大小沒有限制,但存儲(chǔ)的信息加重服務(wù)器的負(fù)載酗捌,另外Session在分布式服務(wù)器的使用上也有限制呢诬,Session無(wú)法跨域,也就是多臺(tái)服務(wù)器無(wú)法共享會(huì)話胖缤。

Session原理:當(dāng)客戶端用戶訪問時(shí)尚镰,服務(wù)器都為每個(gè)用戶分配一個(gè)唯一的會(huì)話ID(Session ID)保存在服務(wù)器內(nèi)存中,服務(wù)器響應(yīng)客戶端時(shí)哪廓,將Session ID寫入瀏覽器緩存中狗唉,當(dāng)下次客戶端請(qǐng)求時(shí),就會(huì)將該Session ID攜帶至服務(wù)器涡真,服務(wù)器再根據(jù)ID比對(duì)分俯,識(shí)別不同客戶端請(qǐng)求,以此方式來(lái)不斷維持服務(wù)器和客戶端狀態(tài)跟蹤综膀。

14.dao是什么及作用

【參考答案】

DAO是數(shù)據(jù)庫(kù)訪問接口,負(fù)責(zé)管理與數(shù)據(jù)庫(kù)打交道操作對(duì)象澳迫,將對(duì)數(shù)據(jù)維護(hù)與操作的方法通過DAO封裝起來(lái),使得這些操作可以從系統(tǒng)的業(yè)務(wù)邏輯中獨(dú)立出來(lái),從而使系統(tǒng)中的數(shù)據(jù)庫(kù)操作變得統(tǒng)一和簡(jiǎn)單化剧劝,方便開發(fā)人員對(duì)組件職責(zé)進(jìn)行劃分橄登。

15.解釋一下什么是servlet

【參考答案】

Servlet是用Java編寫的服務(wù)器端程序,由服務(wù)器端調(diào)用和執(zhí)行的Java類。是使用Java Servlet應(yīng)用程序設(shè)計(jì)接口(API)及相關(guān)類和方法來(lái)構(gòu)建的拢锹,而Java Servlet API定義了servlet和Java使能的服務(wù)器之間的一個(gè)標(biāo)準(zhǔn)接口谣妻,這使得Servlets具有跨服務(wù)器平臺(tái)的特性,當(dāng)客戶機(jī)發(fā)送請(qǐng)求至服務(wù)器時(shí)卒稳,服務(wù)器可以將請(qǐng)求信息發(fā)送給Servlet蹋半,并讓Servlet建立起服務(wù)器返回給客戶機(jī)的響應(yīng)。Servlet的功能很廣泛充坑,例如可以創(chuàng)建響應(yīng)至客戶端的所有HTML元素內(nèi)容和動(dòng)態(tài)數(shù)據(jù)內(nèi)容减江,與其它組件通訊等等。

16.HTTP請(qǐng)求的GETPOST方式的區(qū)別

【參考答案】

GET和POST.是HTTP定義的與服務(wù)器交互的不同方法捻爷,是使用HTTP的標(biāo)準(zhǔn)協(xié)議動(dòng)詞辈灼,用于編碼和傳送變量名/變量值對(duì)參數(shù),并且使用相關(guān)的請(qǐng)求語(yǔ)義也榄。

1巡莹、Get方式在通過URL提交數(shù)據(jù),數(shù)據(jù)在URL中可以看到甜紫;POST方式降宅,數(shù)據(jù)放置在HTML HEADER內(nèi)提交,無(wú)法在地址欄看到囚霸。

2腰根、GET方式提交的數(shù)據(jù)最多只能有1024字節(jié),而POST則沒有此限制拓型。

3唠雕、GET一般用作小數(shù)據(jù)量的請(qǐng)求,POST一般用作大數(shù)據(jù)量的請(qǐng)求吨述,如:附件。

17.什么情況下調(diào)用doGet()doPost()钞脂?

【參考答案】

根據(jù)客戶端的請(qǐng)求的方式來(lái)決定調(diào)用哪個(gè)方法處理請(qǐng)求揣云,如果客戶端采用GET方式

發(fā)送請(qǐng)求,服務(wù)器端則采用doGET()來(lái)處理冰啃,如果采用post方式邓夕,服務(wù)器端則采用doPOST()

18.request對(duì)象的主要方法

【參考答案】

setAttribute(String name,Object):設(shè)置名字為name的request的參數(shù)值

getAttribute(String name):返回由name指定的屬性值

getAttributeNames():返回request對(duì)象所有屬性的名字集合,結(jié)果是一個(gè)枚舉的實(shí)例

getCookies():返回客戶端的所有Cookie對(duì)象阎毅,結(jié)果是一個(gè)Cookie數(shù)組

getCharacterEncoding():返回請(qǐng)求中的字符編碼方式

getContentLength():返回請(qǐng)求的Body的長(zhǎng)度

getHeader(String name):獲得HTTP協(xié)議定義的文件頭信息

getHeaders(String name):返回指定名字的request Header的所有值焚刚,結(jié)果是一個(gè)枚舉的實(shí)例

getHeaderNames():返回所以request Header的名字,結(jié)果是一個(gè)枚舉的實(shí)例

getInputStream():返回請(qǐng)求的輸入流扇调,用于獲得請(qǐng)求中的數(shù)據(jù)

getMethod():獲得客戶端向服務(wù)器端傳送數(shù)據(jù)的方法

getParameter(String name):獲得客戶端傳送給服務(wù)器端的有name指定的參數(shù)值

getParameterNames():獲得客戶端傳送給服務(wù)器端的所有參數(shù)的名字矿咕,結(jié)果是一個(gè)枚舉的實(shí)例

getParametervalues(String name):獲得有name指定的參數(shù)的所有值

getProtocol():獲取客戶端向服務(wù)器端傳送數(shù)據(jù)所依據(jù)的協(xié)議名稱

getQueryString():獲得查詢字符串

getRequestURI():獲取發(fā)出請(qǐng)求字符串的客戶端地址

getRemoteAddr():獲取客戶端的IP地址

getRemoteHost():獲取客戶端的名字

getSession([Boolean create]):返回和請(qǐng)求相關(guān)Session

getServerName():獲取服務(wù)器的名字

getServletPath():獲取客戶端所請(qǐng)求的腳本文件的路徑

getServerPort():獲取服務(wù)器的端口號(hào)

removeAttribute(String name):刪除請(qǐng)求中的一個(gè)屬性

19.request.getAttribute()request.getParameter()有何區(qū)別?

【參考答案】

request.getAttribute()獲取在請(qǐng)求對(duì)象中設(shè)置的屬性,該方法返回對(duì)象為Object類型,而getParameter()方法是獲取指定的請(qǐng)求參數(shù)值碳柱,返回值為String類型的字符串捡絮。

20.jsp有哪些內(nèi)置對(duì)象?作用分別是什么?分別有什么方法?【軟通動(dòng)力面試題】

【參考答案】

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

1)request用戶端請(qǐng)求莲镣,此請(qǐng)求會(huì)包含來(lái)自GET/POST請(qǐng)求的參數(shù)

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

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

4)session與請(qǐng)求有關(guān)的會(huì)話期

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

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

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

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

9)exception針對(duì)錯(cuò)誤網(wǎng)頁(yè)福稳,未捕捉的例外

具體說(shuō)明如下:

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.servlet.jsp.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í)例

21.JSP的常用指令

【參考答案】

共三種挠蛉,分別是:

1)<%@include >用來(lái)在JSP頁(yè)面包含靜態(tài)資源

2)<%@taglib >用來(lái)指定JSP頁(yè)面標(biāo)簽類型

3)<%@page >用來(lái)指定頁(yè)面相關(guān)屬性

22.頁(yè)面間對(duì)象傳遞的方法

【參考答案】

request、session肄满、application谴古、Cookie等,其中比較常用的像request、Session稠歉。request主要是應(yīng)用在同一請(qǐng)求周期內(nèi)掰担,可能進(jìn)行對(duì)象或參數(shù)的共享傳遞。而Session主要可以應(yīng)用于同一客戶端會(huì)話周期內(nèi)進(jìn)行參數(shù)屬性的共享怒炸。

23.MVC的各個(gè)部分都有那些技術(shù)來(lái)實(shí)現(xiàn)?如何實(shí)現(xiàn)?

【參考答案】

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

24.我們?cè)?/b>web應(yīng)用開發(fā)過程中經(jīng)常遇到輸出某種編碼的字符导梆,如iso8859-1等轨淌,如何輸出一個(gè)某種編碼的字符串迂烁?

【參考答案】

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;

}

25.Web系統(tǒng)安全因素有哪些?

【參考答案】

1)操作系統(tǒng)猿诸、后臺(tái)數(shù)據(jù)庫(kù)的安全問題:這里指操作系統(tǒng)和后臺(tái)數(shù)據(jù)庫(kù)的漏洞婚被,配置不當(dāng),如弱口令等等梳虽,導(dǎo)致黑客址芯、病毒可以利用這些缺陷對(duì)網(wǎng)站進(jìn)行攻擊。

2)Web發(fā)布系統(tǒng)的漏洞:Web業(yè)務(wù)常用的發(fā)布系統(tǒng)(即Web服務(wù)器)窜觉,如IIS谷炸、Apache

等,這些系統(tǒng)存在的安全漏洞禀挫,會(huì)給入侵者可乘之機(jī)旬陡。

3)Web應(yīng)用程序的漏洞:主要指Web應(yīng)用程序的編寫人員,在編程的過程中沒有考慮到

安全的因素语婴,使得黑客能夠利用這些漏洞發(fā)起對(duì)網(wǎng)站的攻擊描孟,比如SQL注入、跨站腳本攻擊等等砰左。

4)自身網(wǎng)絡(luò)的安全狀況:網(wǎng)站服務(wù)器所處的網(wǎng)絡(luò)安全狀況也影響著網(wǎng)站的安全匿醒,比如網(wǎng)絡(luò)中存在的DoS攻擊等,也會(huì)影響到網(wǎng)站的正常運(yùn)營(yíng)缠导。

26.web運(yùn)用程序的穩(wěn)定廉羔、安全需要考慮哪些?

【參考答案】

Web服務(wù)器的性能考慮主要有:并發(fā)用戶數(shù)僻造、事務(wù)安全憋他、負(fù)載均衡、時(shí)段流量髓削、網(wǎng)絡(luò)帶寬

網(wǎng)格安全等竹挡。

網(wǎng)絡(luò)安全方面:

·關(guān)鍵數(shù)據(jù)的保護(hù),例如用戶數(shù)據(jù)等

·功能服務(wù)的正常提供立膛。

·網(wǎng)站的防攻擊能力此迅。

·對(duì)異常災(zāi)害的恢復(fù)能力。

程序性能:

·響應(yīng)請(qǐng)求并運(yùn)行得出結(jié)果的時(shí)間旧巾。

·錯(cuò)誤的檢測(cè)和攔截。

·擴(kuò)展性忍些。

27.介紹幾種WEB服務(wù)器鲁猩,問Tomcat里面的文件組成?

【參考答案】

Apache罢坝、Tomcat廓握、Jetty搅窿、JbossWebsphere隙券、WebLogic

bin:啟動(dòng)男应、關(guān)閉Tomcat的命令。

common/lib:網(wǎng)絡(luò)編程的jar文件娱仔。

conf:配置文件沐飘。

logs:日志文件.

server:自帶的web應(yīng)用(三個(gè)).

shared:所有web應(yīng)用都可以訪問的內(nèi)容.

temp:臨時(shí).

webapps:默認(rèn)站點(diǎn)文件夾.

work:jsp生成的類.

Tomcat是一個(gè)開放源代碼、運(yùn)行servlet和JSP Web應(yīng)用軟件的基于Java的Web應(yīng)用軟件容器牲迫。Tomcat Server是根據(jù)servlet和JSP規(guī)范進(jìn)行執(zhí)行的耐朴,因此我們就可以說(shuō)Tomcat Server也實(shí)行了Apache-Jakarta規(guī)范且比絕大多數(shù)商業(yè)應(yīng)用軟件服務(wù)器要好。

28.ISO8859-1字符串轉(zhuǎn)成GB2312編碼盹憎,語(yǔ)句為筛峭?

【參考答案】

String s=new String(text.getBytes(“iso8859-1”),”gb2312”)

29.<%@include>的區(qū)別

【參考答案】

上面兩種都是在當(dāng)前頁(yè)面加載或包含另一頁(yè)面內(nèi)容,而使用動(dòng)作標(biāo)簽實(shí)現(xiàn)時(shí)它總是會(huì)檢查所含文件中的變化陪每,適合用于包含動(dòng)態(tài)頁(yè)面影晓,并且包含的頁(yè)頁(yè)要符合web容器語(yǔ)法要求,因?yàn)楸话捻?yè)面會(huì)被web引擎進(jìn)行編譯和加載,同時(shí)包含時(shí)會(huì)發(fā)送http請(qǐng)求檩禾,所以可以攜帶參數(shù)挂签。

而<%@include>是用偽碼實(shí)現(xiàn),定不會(huì)檢查所含文件的變化,只是簡(jiǎn)單的將被加載的資源拷貝到了當(dāng)前锌订,而這種包含更多的是一種重用竹握,不能實(shí)現(xiàn)參數(shù)共享。

30.說(shuō)出數(shù)據(jù)連接池的工作機(jī)制是什么?

【參考答案】

web服務(wù)器啟動(dòng)時(shí)會(huì)建立一定數(shù)量的池連接辆飘,并一直維持不少于此數(shù)目的池連接啦辐。客戶端程序需要連接時(shí)蜈项,池驅(qū)動(dòng)程序會(huì)返回一個(gè)未使用的池連接并將其表記為忙芹关。如果當(dāng)前沒有空閑連接,池驅(qū)動(dòng)程序就新建一定數(shù)量的連接紧卒,新建連接的數(shù)量有配置參數(shù)決定侥衬。當(dāng)使用的池連接調(diào)用完成后,池驅(qū)動(dòng)程序?qū)⒋诉B接表記為空閑跑芳,其他調(diào)用就可以使用這個(gè)連接轴总。

實(shí)現(xiàn)方式,返回的Connection是原始Connection的代理博个,代理Connection的close方法不是真正關(guān)連接怀樟,而是把它代理的Connection對(duì)象還回到連接池中。

31.如何實(shí)現(xiàn)Servlet單線程

【參考答案】

<%@ page isThreadSafe="false"%>

32.哪些方法可以提高JDBC性能?

【參考答案】

1.使用數(shù)據(jù)連接池(Connection Pool),避免使用DriverManager.getConnection()盆佣。

2.合理的配置數(shù)據(jù)連接池參數(shù)往堡,合理如何設(shè)置數(shù)據(jù)連接池的初始大小

3.選擇合適的事務(wù)等級(jí)械荷,按照不同的數(shù)據(jù)庫(kù)操作類型選擇不同的事務(wù)等級(jí)。

4.及時(shí)關(guān)閉Connection虑灰,不關(guān)閉的話會(huì)嚴(yán)重影響系統(tǒng)的性能吨瞎,甚至造成系統(tǒng)罷工

5.優(yōu)化Statement

1)選擇合適的Statement,根據(jù)不同的數(shù)據(jù)庫(kù)操作選擇Statement, PreparedStatement或者CallableStatement

2)盡可能的使用batch,這樣可以減少調(diào)用JDBC的次數(shù)。

3) Statement執(zhí)行完畢后關(guān)閉Statement

6.優(yōu)化你的SQL,盡量減少你的結(jié)果集穆咐,不要每次都"select * from XXX"

7.使用一些緩存工具進(jìn)行緩存颤诀,特別是大數(shù)據(jù)查詢。

33.實(shí)現(xiàn)會(huì)話跟蹤有哪幾個(gè)方式庸娱?

【參考答案】

1着绊、URL重寫

2、隱藏表單域

3熟尉、Cookie

4归露、Session

34.Web容器里面的對(duì)象存活周期?

【參考答案】

當(dāng)然由web容器進(jìn)行創(chuàng)建管理的對(duì)象主要有application斤儿,session剧包,request,page這四個(gè)級(jí)別的對(duì)象往果,而這4種級(jí)別的對(duì)象疆液,根據(jù)它們自身的特點(diǎn)來(lái)管理所持的對(duì)象,如:request中的對(duì)象的生命周期就是在請(qǐng)求范圍內(nèi)陕贮,Session在是會(huì)話周期內(nèi)堕油,page是在當(dāng)前JSP Page內(nèi),Application是在服務(wù)器啟肮之、停的周期內(nèi)掉缺。

【分析】

總的來(lái)說(shuō)這道題有點(diǎn)沒明白漾岳,提問者想問的是東西是什么关串∨粞酰看到題第一反應(yīng)以為是問Servlet的生存周期理卑,因?yàn)檎f(shuō)到Web容器對(duì)象,一般指的是Servlet挽放,Servlet組件是由容器進(jìn)行創(chuàng)建以舒、調(diào)用和管理的甫恩,所以首先想到了Servlet的存活周期柑土。

35.瀏覽器頁(yè)面與Tomcat的交互過程蜀肘?

【參考答案】

當(dāng)一個(gè)JSP頁(yè)面第一次被訪問的時(shí)候,JSP引擎將執(zhí)行以下步驟:

(1)將JSP頁(yè)面翻譯成一個(gè)Servlet稽屏,這個(gè)Servlet是一個(gè)java文件幌缝,同時(shí)也是一個(gè)完整的java程序

(2)再由java編譯器對(duì)這個(gè)Servlet進(jìn)行編譯,得到可執(zhí)行class文件

(3)再由JVM解釋器來(lái)解釋執(zhí)行class文件诫欠,生成向客戶端發(fā)送的應(yīng)答涵卵,然后發(fā)送給客戶端

以上三個(gè)步驟僅僅在JSP頁(yè)面第一次被訪問時(shí)才會(huì)執(zhí)行,以后的訪問速度會(huì)因?yàn)閏lass文件已經(jīng)生成而大大提高荒叼。

36.什么是斷點(diǎn)續(xù)傳轿偎,HTTP是否支持上傳下載,原理被廓?【大唐動(dòng)力面試題】

所謂斷點(diǎn)續(xù)傳坏晦,也就是要從文件已經(jīng)下載的地方開始繼續(xù)下載〖蕹耍客戶端在請(qǐng)求時(shí)昆婿,除了其它的信息外,需要增加一條參數(shù)蜓斧,告訴服務(wù)器從哪里開始傳仓蛆,在讀取時(shí)從指定的字節(jié)數(shù)的開始位向后讀取。簡(jiǎn)單示例:

RandomAccess oSavedFile = new RandomAccessFile("down.zip","rw");

long nPos = 100000; //表示從100000字節(jié)位置開始讀取挎春。

//定位文件指針到nPos位置

oSavedFile.seek(nPos);

byte[] b = new byte[1024];

int nRead;

//從輸入流中讀入字節(jié)流看疙,然后寫到文件中

while((nRead=input.read(b,0,1024)) > 0)

{

oSavedFile.write(b,0,nRead);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市直奋,隨后出現(xiàn)的幾起案子能庆,更是在濱河造成了極大的恐慌,老刑警劉巖脚线,帶你破解...
    沈念sama閱讀 211,639評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搁胆,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡邮绿,警方通過查閱死者的電腦和手機(jī)渠旁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,277評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)斯碌,“玉大人一死,你說(shuō)我怎么就攤上這事∩低伲” “怎么了投慈?”我有些...
    開封第一講書人閱讀 157,221評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵抱既,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我锁右,道長(zhǎng)拂到,這世上最難降的妖魔是什么辖试? 我笑而不...
    開封第一講書人閱讀 56,474評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上啼辣,老公的妹妹穿的比我還像新娘。我一直安慰自己钠绍,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,570評(píng)論 6 386
  • 文/花漫 我一把揭開白布花沉。 她就那樣靜靜地躺著,像睡著了一般媳握。 火紅的嫁衣襯著肌膚如雪碱屁。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,816評(píng)論 1 290
  • 那天蛾找,我揣著相機(jī)與錄音娩脾,去河邊找鬼。 笑死打毛,一個(gè)胖子當(dāng)著我的面吹牛柿赊,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播幻枉,決...
    沈念sama閱讀 38,957評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼碰声,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了熬甫?” 一聲冷哼從身側(cè)響起胰挑,我...
    開封第一講書人閱讀 37,718評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎椿肩,沒想到半個(gè)月后瞻颂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,176評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡郑象,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,511評(píng)論 2 327
  • 正文 我和宋清朗相戀三年贡这,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片厂榛。...
    茶點(diǎn)故事閱讀 38,646評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡盖矫,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出噪沙,到底是詐尸還是另有隱情炼彪,我是刑警寧澤,帶...
    沈念sama閱讀 34,322評(píng)論 4 330
  • 正文 年R本政府宣布正歼,位于F島的核電站辐马,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜喜爷,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,934評(píng)論 3 313
  • 文/蒙蒙 一冗疮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧檩帐,春花似錦术幔、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,755評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至泛源,卻和暖如春拔妥,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背达箍。 一陣腳步聲響...
    開封第一講書人閱讀 31,987評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工没龙, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人缎玫。 一個(gè)月前我還...
    沈念sama閱讀 46,358評(píng)論 2 360
  • 正文 我出身青樓硬纤,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親赃磨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子筝家,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,514評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容

  • (一)Java web部分 1.Servlet和jsp頁(yè)面過濾器Filter的作用及配置 【參考答案】 過濾器是一...
    獨(dú)云閱讀 3,323評(píng)論 0 11
  • 經(jīng)典的Java面試題(第二部分),這部分主要是與Java Web和Web Service相關(guān)的面試題煞躬。 96肛鹏、闡述...
    我是阿喵醬閱讀 1,282評(píng)論 1 8
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法恩沛,內(nèi)部類的語(yǔ)法在扰,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法雷客,線程的語(yǔ)...
    子非魚_t_閱讀 31,598評(píng)論 18 399
  • 從三月份找實(shí)習(xí)到現(xiàn)在芒珠,面了一些公司,掛了不少搅裙,但最終還是拿到小米皱卓、百度、阿里部逮、京東娜汁、新浪、CVTE兄朋、樂視家的研發(fā)崗...
    時(shí)芥藍(lán)閱讀 42,213評(píng)論 11 349
  • 35《關(guān)于那些靈異視頻以及靈異照片》大家有經(jīng)称看到那些網(wǎng)上鬧鬼的視頻吧,比如說(shuō)監(jiān)控拍到某某地方鬧鬼之類的,反正標(biāo)題...
    塵時(shí)川閱讀 487評(píng)論 0 1