日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

servlet面试常考 (转载)

發(fā)布時間:2023/12/13 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 servlet面试常考 (转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????????????

  • 編輯???????????????????????? ????????????????????
  • 刪除???????????????????????? ????????????????????

1、說一說Servlet生命周期(非常重要)

Servlet生命周期包括三部分:

初始化:Web容器加載servlet,調(diào)用init()方法

處理請求:當(dāng)請求到達(dá)時,運行其service()方法。service()自動派遣運行與請求相對應(yīng)的doXXX(doGet或者doPost)方法。

銷毀:服務(wù)結(jié)束,web容器會調(diào)用servlet的distroy()方法銷毀servlet。

2、get提交和post提交有何區(qū)別

(1)get一般用于從服務(wù)器上獲取數(shù)據(jù),post一般用于向服務(wù)器傳送數(shù)據(jù)

(2)請求的時候參數(shù)的位置有區(qū)別,get的參數(shù)是拼接在url后面,用戶在瀏覽器地址欄可以看到。post是放在http包的包體中。

比如說用戶注冊,你不能把用戶提交的注冊信息用get的方式吧,那不是說把用戶的注冊信息都顯示在Url上了嗎,是不安全的。

(3)能提交的數(shù)據(jù)有區(qū)別,get方式能提交的數(shù)據(jù)只能是文本,且大小不超過1024個字節(jié),而post不僅可以提交文本還有二進(jìn)制文件。

所以說想上傳文件的話,那我們就需要使用post請求方式

(4)servlet在處理請求的時候分別對應(yīng)使用doGet和doPost方式進(jìn)行處理請求

3、JSP與Servlet有什么區(qū)別

Servlet是服務(wù)器端的程序,動態(tài)生成html頁面發(fā)送到客戶端,但是這樣程序里會有很多out.println(),java與html語言混在一起

很亂,所以后來sun公司推出了JSP.其實JSP就是Servlet,每次運行的時候JSP都首先被編譯成servlet文件,然后再被編譯成

.class文件運行。有了jsp,在MVC項目中servlet不再負(fù)責(zé)動態(tài)生成頁面,轉(zhuǎn)而去負(fù)責(zé)控制程序邏輯的作用,控制jsp與javabean

之間的流轉(zhuǎn)。

4、doGet與doPost方法的兩個參數(shù)是什么

HttpServletRequest:封裝了與請求相關(guān)的信息

HttpServletResponse:封裝了與響應(yīng)相關(guān)的信息

5、request.getAttribute()和request.getParameter

(1)有setAttribute,沒有setParameter方法

(2)getParameter獲取到的值只能是字符串,不可以是對象,而getAttribute獲取到的值是Object類型的。

(3)通過form表單或者url來向另一個頁面或者servlet傳遞參數(shù)的時候需要用getParameter獲取值;getAttribute只能獲取setAttribute的值

(4)setAttribute是應(yīng)用服務(wù)器把這個對象放到該頁面所對應(yīng)的一塊內(nèi)存當(dāng)中,當(dāng)你的頁面服務(wù)器重定向到另一個頁面的時候,應(yīng)用服務(wù)器

會把這塊內(nèi)存拷貝到另一個頁面對應(yīng)的內(nèi)存當(dāng)中。通過getAttribute可以取得你存下的值,當(dāng)然這種方法可以用來傳對象。

用session也是一樣的道理,這是說request和session的生命周期不一樣而已。

6、JSP有哪些內(nèi)置對象,作用是什么?(非常重要)

?

JSP內(nèi)置對象
名稱作用
request包含用戶端請求的信息
response包含服務(wù)器傳回客戶端的響應(yīng)信息
session與請求有關(guān)的會話期
pageContext管理網(wǎng)頁屬性
application服務(wù)器啟動時創(chuàng)建,服務(wù)器關(guān)閉時停止,為多個應(yīng)用程序保存信息
out向客戶端輸出數(shù)據(jù)
configservlet的架構(gòu)部件
page指網(wǎng)頁本身
exception針對錯誤頁面才可使用

7、四種會話跟蹤技術(shù)作用域

(1)page:一個頁面

(2)request::一次請求

(3)session:一次會話

(4)application:服務(wù)器從啟動到停止。

8、JSP中動態(tài)INCLUDE和靜態(tài)INCLUDE有什么區(qū)別(非常重要)

include指令用于把另一個頁面包含到當(dāng)前頁面中,在什么時候包含的?再轉(zhuǎn)換成servlet的時候包含進(jìn)去的。

動態(tài)INCLUDE用jsp:include動作實現(xiàn) <jsp:include page="included.jsp" flush="true" />它總是會檢查所含文件中的變化,適合用于包含動態(tài)頁面,

并且可以帶參數(shù).

靜態(tài)INCLUDE用include偽碼實現(xiàn),定不會檢查所含文件的變化,適用于包含靜態(tài)頁面<%@ include file="included.htm" %>

9、forward和redirect的區(qū)別(非常重要)

轉(zhuǎn)發(fā)與重定向

(1)從地址欄顯示來說?

forward是服務(wù)器請求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器.瀏覽器根本不知道服務(wù)器發(fā)送

的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址.redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個狀態(tài)碼,告訴瀏覽器重新去請求那個地址.所以地址欄顯示的是

新的URL.

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

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

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

(3)從運用地方來說?

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

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

(4)從效率來說?

forward:高.

redirect:低.

轉(zhuǎn)載于:https://www.cnblogs.com/HongDunLaoGui/p/7780751.html

總結(jié)

以上是生活随笔為你收集整理的servlet面试常考 (转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。