更新時(shí)間:2020-04-20 16:23:33 來源:動(dòng)力節(jié)點(diǎn) 瀏覽2272次
1.session和cookie的區(qū)別?
session是存儲(chǔ)在服務(wù)器端,cookie是存儲(chǔ)在客戶端的,所以安全來講session的安全性要比cookie高,然后我們獲取session里的信息是通過存放在會(huì)話cookie里的sessionid獲取的。又由于session是存放在服務(wù)器的內(nèi)存中,所以session里的東西不斷增加會(huì)造成服務(wù)器的負(fù)擔(dān),所以會(huì)把很重要的信息存儲(chǔ)在session中,而把一些次要東西存儲(chǔ)在客戶端的cookie里,然后cookie確切的說分為兩大類分為會(huì)話cookie和持久化cookie,會(huì)話cookie確切的說是,存放在客戶端瀏覽器的內(nèi)存中,所以說他的生命周期和瀏覽器是一致的,瀏覽器關(guān)了會(huì)話cookie也就消失了,然而持久化cookie是存放在客戶端硬盤中,而持久化cookie的生命周期就是我們?cè)谠O(shè)置cookie時(shí)候設(shè)置的那個(gè)保存時(shí)間,然后我們考慮一問題當(dāng)瀏覽器關(guān)閉時(shí)session會(huì)不會(huì)丟失,從上面敘述分析session的信息是通過會(huì)話cookie的sessionid獲取的,當(dāng)瀏覽器關(guān)閉的時(shí)候會(huì)話cookie消失所以我們的sessionid也就消失了,但是session的信息還存在服務(wù)器端,這時(shí)我們只是查不到所謂的session但它并不是不存在。那么,session在什么情況下丟失,就是在服務(wù)器關(guān)閉的時(shí)候,或者是session過期(默認(rèn)時(shí)間是30分鐘),再或者調(diào)用了invalidate()的或者是我們想要session中的某一條數(shù)據(jù)消失調(diào)用session.removeAttribute()方法,然后session在什么時(shí)候被創(chuàng)建呢,確切的說是通過調(diào)用getsession()來創(chuàng)建,這就是session與cookie的區(qū)別.
2、session和cookie聯(lián)系?
session是通過cookie來工作的session和cookie之間是通過$_COOKIE['PHPSESSID']來聯(lián)系的,通過$_COOKIE['PHPSESSID']可以知道session的id,從而獲取到其他的信息。
在購物網(wǎng)站中通常將用戶加入購物車的商品聯(lián)通session_id記錄到數(shù)據(jù)庫中,當(dāng)用戶再次訪問是,通過sessionid就可以查找到用戶上次加入購物車的商品。因?yàn)閟essionid是唯一的,記錄到數(shù)據(jù)庫中就可以根據(jù)這個(gè)查找了。
3.servlet的生命周期?
Servlet生命周期可以分成四個(gè)階段:加載和實(shí)例化、初始化、服務(wù)、銷毀。
當(dāng)客戶第一次請(qǐng)求時(shí),首先判斷是否存在Servlet對(duì)象,若不存在,則由Web容器創(chuàng)建對(duì)象,而后調(diào)用init()方法對(duì)其初始化,此初始化方法在整個(gè)Servlet生命周期中只調(diào)用一次。
完成Servlet對(duì)象的創(chuàng)建和實(shí)例化之后,Web容器會(huì)調(diào)用Servlet對(duì)象的service()方法來處理請(qǐng)求。
當(dāng)Web容器關(guān)閉或者Servlet對(duì)象要從容器中被刪除時(shí),會(huì)自動(dòng)調(diào)用destory()方法。
4.什么是webservice?
從表面上看,WebService就是一個(gè)應(yīng)用程序向外界暴露出一個(gè)能通過Web進(jìn)行調(diào)用的API,也就是說能用編程的方法通過Web來調(diào)用這個(gè)應(yīng)用程序。我們把調(diào)用這個(gè)WebService的應(yīng)用程序叫做客戶端,而把提供這個(gè)WebService的應(yīng)用程序叫做服務(wù)端。從深層次看,WebService是建立可互操作的分布式應(yīng)用程序的新平臺(tái),是一個(gè)平臺(tái),是一套標(biāo)準(zhǔn)。它定義了應(yīng)用程序如何在Web上實(shí)現(xiàn)互操作性,你可以用任何你喜歡的語言,在任何你喜歡的平臺(tái)上寫Webservice,只要我們可以通過Webservice標(biāo)準(zhǔn)對(duì)這些服務(wù)進(jìn)行查詢和訪問。
5.jsp和servlet的區(qū)別、共同點(diǎn)、各自應(yīng)用的范圍?
JSP是Servlet技術(shù)的擴(kuò)展,本質(zhì)上就是Servlet的簡易方式。JSP編譯后是“類servlet”。Servlet和JSP最主要的不同點(diǎn)在于,Servlet的應(yīng)用邏輯是在Java文件中,并且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個(gè)擴(kuò)展名為.jsp的文件。JSP側(cè)重于視圖,Servlet主要用于控制邏輯。在struts框架中,JSP位于MVC設(shè)計(jì)模式的視圖層,而Servlet位于控制層。
6.轉(zhuǎn)發(fā)(forward)和重定向(redirect)的區(qū)別?
1、從地址欄顯示來說
forward是服務(wù)器請(qǐng)求資源,服務(wù)器直接訪問目標(biāo)地址的URL,把那個(gè)URL的響應(yīng)內(nèi)容讀取過來,然后把這些內(nèi)容再發(fā)給瀏覽器。瀏覽器根本不知道服務(wù)器發(fā)送的內(nèi)容從哪里來的,所以它的地址欄還是原來的地址。
redirect是服務(wù)端根據(jù)邏輯,發(fā)送一個(gè)狀態(tài)碼,告訴瀏覽器重新去請(qǐng)求那個(gè)地址。所以地址欄顯示的是新的URL。
2、從數(shù)據(jù)共享來說
forward:轉(zhuǎn)發(fā)頁面和轉(zhuǎn)發(fā)到的頁面可以共享request里面的數(shù)據(jù)。
redirect:不能共享數(shù)據(jù)。
3、從運(yùn)用地方來說
forward:一般用于用戶登陸的時(shí)候,根據(jù)角色轉(zhuǎn)發(fā)到相應(yīng)的模塊。
redirect:一般用于用戶注銷登陸時(shí)返回主頁面和跳轉(zhuǎn)到其它的網(wǎng)站等
4、從效率來說
forward:高。
redirect:低。
7.request.getAttribute()和request.getParameter()有何區(qū)別?
1、request.getParameter()取得是通過容器的實(shí)現(xiàn)來取得通過類似post,get等方式傳入的數(shù)據(jù)。
2、request.setAttribute()和getAttribute()只是在web容器內(nèi)部流轉(zhuǎn),僅僅是請(qǐng)求處理階段。
3、getAttribute是返回對(duì)象,getParameter返回字符串
4、getAttribute()一向是和setAttribute()一起使用的,只有先用setAttribute()設(shè)置之后,才能夠通過getAttribute()來獲得值,它們傳遞的是Object類型的數(shù)據(jù)。而且必須在同一個(gè)request對(duì)象中使用才有效。,而getParameter()是接收表單的get或者post提交過來的參數(shù)
8.jsp靜態(tài)包含和動(dòng)態(tài)包含的區(qū)別?
1、兩者格式不同,靜態(tài)包含:,而動(dòng)態(tài)包含:。
2、包含時(shí)間不同,靜態(tài)包含是先將幾個(gè)文件合并,然后再被編譯,缺點(diǎn)就是如果含有相同的標(biāo)簽,會(huì)出錯(cuò)。動(dòng)態(tài)包含是頁面被請(qǐng)求時(shí)編譯,將結(jié)果放在一個(gè)頁面。
3、生成的文件不同,靜態(tài)包含會(huì)生成一個(gè)包含頁面名字的servlet和class文件;而動(dòng)態(tài)包含會(huì)各自生成對(duì)應(yīng)的servlet和class文件
4、.傳遞參數(shù)不同,動(dòng)態(tài)包含能夠傳遞參數(shù),而靜態(tài)包含不能
以上就是動(dòng)力節(jié)點(diǎn)java培訓(xùn)機(jī)構(gòu)的小編針對(duì)“2020年最新Javaweb開發(fā)面試寶典”的內(nèi)容進(jìn)行的回答,希望對(duì)大家有所幫助,如有疑問,請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為你服務(wù)。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)