国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JSP > 正文

面試之jsp、Servlet相關(guān)知識(shí)——生命周期, 區(qū)別等

2019-11-17 03:25:28
字體:
供稿:網(wǎng)友

1、servlet生命周期

所謂生命周期,指的是servlet容器如何創(chuàng)建servlet實(shí)例、分配其資源、調(diào)用其方法、并銷毀其實(shí)例的整個(gè)過程。

階段一: 實(shí)例化(就是創(chuàng)建servlet對(duì)象,調(diào)用構(gòu)造器)

在如下兩種情況下會(huì)進(jìn)行對(duì)象實(shí)例化。

第一種情況:

當(dāng)請(qǐng)求到達(dá)容器時(shí),容器查找該servlet對(duì)象是否存在,如果不存在,才會(huì)創(chuàng)建實(shí)例。

第二種情況:

容器在啟動(dòng)時(shí),或者新部署了某個(gè)應(yīng)用時(shí),會(huì)檢查web.xml當(dāng)中,servlet是否有 load-on-starup配置。如果有,則會(huì)創(chuàng)建該servlet實(shí)例。

load-on-starup參數(shù)值越小,優(yōu)先級(jí)越高(最小值為0,優(yōu)先級(jí)最高)。

階段二: 初始化

為servlet分配資源,調(diào)用init(ServletConfig config);方法

config對(duì)象可以用來訪問servlet的初始化參數(shù)。

初始化參數(shù)是使用init-param配置的參數(shù)。

init可以override。

階段三: 就緒/調(diào)用

有請(qǐng)求到達(dá)容器,容器調(diào)用servlet對(duì)象的service()方法。

HttpServlet的service()方法,會(huì)依據(jù)請(qǐng)求方式來調(diào)用doGet()或者doPost()方法。但是,這兩個(gè)do方法默認(rèn)情況下,會(huì)拋出異常,需要子類去override。

階段四: 銷毀

容器依據(jù)自身的算法,將不再需要的servlet對(duì)象刪除掉。

在刪除之前,會(huì)調(diào)用servlet對(duì)象的destroy()方法。

destroy()方法用于釋放資源。

在servlet的整個(gè)生命周期當(dāng)中,init,destroy只會(huì)執(zhí)行一次,而service方法會(huì)執(zhí)行多次。

 


 

2、jsp與servlet的區(qū)別 

1.jsp經(jīng)編譯后就變成了Servlet.(JSP的本質(zhì)就是Servlet,JVM只能識(shí)別java的類,不能識(shí)別JSP的代碼,Web容器將JSP的代碼編譯成JVM能夠識(shí)別的java類)
2.jsp更擅長(zhǎng)表現(xiàn)于頁面顯示,servlet更擅長(zhǎng)于邏輯控制.
3.Servlet中沒有內(nèi)置對(duì)象,Jsp中的內(nèi)置對(duì)象都是必須通過HttpServletRequest對(duì)象,HttpServletResponse對(duì)象以及HttpServlet對(duì)象得到.
  Jsp是Servlet的一種簡(jiǎn)化,使用Jsp只需要完成程序員需要輸出到客戶端的內(nèi)容,Jsp中的Java腳本如何鑲嵌到一個(gè)類中,由Jsp容器完成。而Servlet則是個(gè)完整的Java類,這個(gè)類的Service方法用于生成對(duì)客戶端的響應(yīng)。

 


3、HTTP中g(shù)et和post的區(qū)別

1、Get 方法通過 URL 請(qǐng)求來傳遞用戶的數(shù)據(jù),將表單內(nèi)各字段名稱與其內(nèi)容,以成對(duì)的字符串連接置于 action 屬性所指程序的 url 后,如[url]http://www.mdm.com/test.asp?name=asd&passWord=sad[/url],數(shù)據(jù)都會(huì) 直接顯示在 url 上,就像用戶點(diǎn)擊一個(gè)鏈接一樣;Post 方法通過 HTTP post 機(jī)制,將表單內(nèi)各字段名稱與其內(nèi)容放置在 HTML 表頭(header)內(nèi)一起傳送給服務(wù)器端交由 action 屬性能所指的程序處理,該程序會(huì)通過標(biāo)準(zhǔn)輸入(stdin)方式,將表單的數(shù)據(jù)讀出并加以處理,post方式有一塊用于存放參數(shù)的區(qū)域。


2、 Get 方式需要使用 Request.QueryString 來取得變量的值;而 Post 方式通過 Request.Form 來訪問提交的內(nèi)容


3、Get 方式傳輸?shù)臄?shù)據(jù)量非常小,只能傳文本。一般限制在 2 KB 左右,但是執(zhí)行效率卻比 Post 方法好;而 Post 方式傳遞的數(shù)據(jù)量相對(duì)較大,可以傳送大的文本和二進(jìn)制數(shù)據(jù),如文件,它是等待服務(wù)器來讀取數(shù)據(jù),不過也有字節(jié)限制,這是為了避免對(duì)服務(wù)器用大量數(shù)據(jù)進(jìn)行惡意攻擊,根據(jù)微軟方面的說法,微軟對(duì)用 Request.Form() 可接收的最大數(shù)據(jù)有限制,IIS 4 中為 80 KB 字節(jié),IIS 5 中為 100 KB 字節(jié)

建議:除非你肯定你提交的數(shù)據(jù)可以一次性提交,否則請(qǐng)盡量用 Post 方法


4、Get 方式提交數(shù)據(jù),會(huì)帶來安全問題,比如一個(gè)登陸頁面,通過 Get 方式提交數(shù)據(jù)時(shí),用戶名和密碼將出現(xiàn)在 URL 上,如果頁面可以被緩存或者其他人可以訪問客戶這臺(tái)機(jī)器,就可以從歷史記錄獲得該用戶的帳號(hào)和密碼,所以表單提交建議使用 Post 方法;Post 方法提交的表單頁面常見的問題是,該頁面如果刷新的時(shí)候,會(huì)彈出一個(gè)對(duì)話框

建議:出于安全性考慮,建議最好使用 Post 提交數(shù)據(jù)

 


 

4、html 和 jsp 的區(qū)別

HTML(Hypertext Markup Language)文本標(biāo)記語言,它是靜態(tài)頁面,和JavaScript一樣解釋性語言,為什么說是解釋性 語言呢?因?yàn)椋灰阌幸粋€(gè)瀏覽器那么它就可以正常顯示出來,而不需要指定的編譯工具,只需在TXT文檔中寫上HTML標(biāo)記就OK。
JSP(Java Server Page)看這個(gè)意思就知道是Java服務(wù)端的頁面,所以它是動(dòng)態(tài)的,它是需要經(jīng)過JDK編譯后把內(nèi)容發(fā)給客戶端去顯 示,我們都知道,Java文件編譯后會(huì)產(chǎn)生一個(gè)class文件,最終執(zhí)行的就是這個(gè)class文件,JSP也一樣,它也要編譯成class文件!JSP不 止要編譯,它還得要轉(zhuǎn)譯,首先把JSP轉(zhuǎn)譯成一個(gè)Servlet文件,然后在編譯成class文件。當(dāng)用戶訪問JSP時(shí)就執(zhí)行了class文件,最 終......

1.最簡(jiǎn)單的區(qū)別就是,HTML能直接打開,jsp只能發(fā)布到Tomact等服務(wù)器上才能打開 。
2.定義上HTML頁面是靜態(tài)頁面可以直接運(yùn)行,JSP頁面是動(dòng)態(tài)頁它運(yùn)行時(shí)需要轉(zhuǎn)換成servlet。 
3.他們的表頭不同,這個(gè)是JSP的頭“ <%@ page language="java" import="java.util.*" pageEncoding="gbk"%>”在表頭中有編碼格式和倒入包等。
4.也是很好區(qū)分的在jsp中用<%%>就可以寫Java代碼了,而html沒有<%%>。

 

  感謝您的閱讀,如果有其他知識(shí)或者錯(cuò)誤的地方,希望共享一下,相互學(xué)習(xí)!


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 衡阳市| 宜昌市| 昭平县| 盐源县| 嘉兴市| 常德市| 崇礼县| 西林县| 商南县| 阿拉尔市| 黎川县| 荥阳市| 怀安县| 海丰县| 四会市| 定陶县| 石林| 句容市| 普洱| 遂溪县| 汝南县| 吕梁市| 仙居县| 清镇市| 新巴尔虎右旗| 瓦房店市| 榆社县| 中西区| 永仁县| 望江县| 铜山县| 西乌珠穆沁旗| 博兴县| 寿宁县| 棋牌| 新巴尔虎左旗| 华阴市| 乐亭县| 九龙坡区| 军事| 闻喜县|