Java開發工程師最新面試題庫系列——Web部分(附答案)

WEB

若是你有更好的想法請在評論區留下您的答案,一塊兒交流討論

  1. http和https有什麼區別?javascript

    答:http是超文本傳輸協議,默認端口是80。https是安全的默認端口是443;http是明文傳輸,存在安全隱患,Https在Http的基礎上增長了SSL/TLS協議,須要依靠整數來驗證服務器身份,而且對服務器與客戶端之間的傳輸進行通訊加密。https協議須要到ca申請證書,通常免費證書不多,須要交費。Http不須要html

  2. get和post有什麼區別?前端

    答:java

    1、功能不一樣web

    一、get是從服務器上獲取數據。
    二、post是向服務器傳送數據。ajax

    2、安全性不一樣json

    一、get安全性很是低。後端

    二、post安全性較高。跨域

    3、參數傳遞方式不一樣瀏覽器

    一、get傳遞的參數在請求連接中

    二、post能夠將參數添加到請求正文中

    4、傳遞信息大小不一樣

    一、get傳輸信息不大於2k

    二、post傳輸的信息通常不受限制。但理論上,IIS4中最大量爲80KB,IIS5中爲100KB。

  3. foward和redirect有什麼區別?

    答:

    • forward請求轉發是服務端跳轉,redirect重定向是客戶端跳轉
    • forward跳轉能夠攜帶參數,redirect不能夠攜帶參數
  4. 什麼是Servlet?

    答:Servlet是用Java編寫的服務器端程序, 其主要功能在於交互式地瀏覽和修改數據,生成動態Web內容.

  5. 描述一下Servlet的生命週期

    答:

    init() 初始化.
    service() 處理客戶端的請求, 具體業務邏輯. ServletRequest 對象用於得到客戶端信息,ServletResponse 對象用於向客戶端返回信息(客戶端能夠理解爲瀏覽器)
    destroy() 結束時調用. 這個方法只有在servlet的service方法內的全部線程都退出的時候,或在超時的時候纔會被調用。

    init() 和 destroy() 都只會在Servlet建立和銷燬時調用一次, 而service() 則會在響應不一樣請求時屢次調用.

  6. Servlet是單例仍是多例?支持異步處理嗎?

    答:

  7. Servlet和JSP有什麼區別和聯繫?

    答:jsp 本質上就是一個 Servlet,它是 Servlet 的一種特殊形式,每一個 jsp 頁面都是一個 servlet實例。

    Servlet 是由 Java 提供用於開發 web 服務器應用程序的一個組件,運行在服務端,由 servlet 容器管理,用來生成動態內容。一個 servlet 實例是實現了特殊接口 Servlet 的 Java 類,全部自定義的 servlet 均必須實現 Servlet 接口。

    區別:

    • jsp 是 html 頁面中內嵌的 Java 代碼,側重頁面顯示;

    • Servlet 是 html 代碼和 Java 代碼分離,側重邏輯控制,mvc 設計思想中 jsp 位於視圖層,servlet 位於控制層

  8. JSP有哪些經常使用內置對象?

    答:JSP中一共預先定義了9個這樣的對象,分別爲request、response、session、application、out、pageContext、config、page和exception。

  9. JSP有哪幾種做用域?

    答:一共4種,按照做用域從小到大順序以下:pageContext----request----session----application。

    (1)pageContext:頁面域

    頁面做用域僅限於當前頁面對象,能夠近似於理解爲java的this對象,離開當前JSP頁面(不管是redirect仍是forward),則pageContext中的全部屬性值就會丟失。

    (2)request:請求域

    請求做用域是同一個請求以內,在頁面跳轉時,若是經過forward方式跳轉,則forward目標頁面仍然能夠拿到request中的屬性值。若是經過redirect方式進行頁面跳轉,因爲redirect至關於從新發出的請求,此種場景下,request中的屬性值會丟失。

    (3)session:會話域

    會話做用域是在一個會話的生命週期內,會話失效,則session中的數據也隨之丟失。

    (4)application: 應用域

    應用做用域是最大的,只要服務器不中止,則application對象就一直存在,而且爲全部會話所共享。

  10. Cookie和Session有什麼區別?

    答:

    (1)、cookie數據存放在客戶的瀏覽器上,session數據放在服務器上 ;
    (2)、cookie不是很安全,別人能夠分析存放在本地的COOKIE並進行COOKIE欺騙,若是主要考慮到安全應當使用session ;

    (3)、session會在必定時間內保存在服務器上。當訪問增多,會比較佔用你服務器的性能,若是主要考慮到減輕服務器性能方面,應當使用COOKIE ;

  11. 什麼是跨域,有哪些解決方案?

    答:跨域問題來源於瀏覽器的同源策略,瀏覽器爲了提升網站的安全性,在發送ajax請求時,只有在當前頁面地址與請求地址的協議+域名+端口號相同時才容許訪問,不然會被攔截。也就是說協議、域名、端口其中任意一個不一樣都存在瀏覽器跨域問題。

    解決方案
    1. CORS(跨域資源共享)cors的原理是在服務器端設置http響應頭,容許瀏覽器進行跨域請求【後端跨域】
    2. jsonp,jsonp的原理是瀏覽器在引入javascript不受跨域限制,咱們使用script標籤來請求數據【前端跨域】
相關文章
相關標籤/搜索