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