jsp和servlet的關系


  1. JSP是Servlet技術的擴展,本質上就是Servlet的簡易方式。JSP編譯后是“類servlet”。

  2. Servlet和JSP最主要的不同點在於:Servlet的應用邏輯是在Java文件中,並且完全從表示層中的HTML里分離開來。而JSP的情況是Java和HTML可以組合成一個擴展名為.jsp的文件。

  3. JSP側重於視圖,Servlet主要用於控制邏輯。

SP是如何被執行的?執行效率比SERVLET低嗎?

  • 當客戶端向一個jsp頁面發送請求時,Web Container將jsp轉化成servlet的源代碼(只在第一次請求時),然后編譯轉化后的servlet並加載到內存中執行,執行的結果response到客戶端

  • jsp只在第一次執行的時候會轉化成servlet,以后每次執行,web容器都是直接執行編譯后的servlet,所以jsp和servlet只是在第一次執行的時候不一樣,jsp慢一點,以后的執行都是相同的

如何避免jsp頁面自動生成session對象?為什么要這么做?

可以使用頁面指令顯式關掉,代碼如下:

<%@ page session="false" %>

jsp的缺點?

  • 不好調試

  • 與其他腳本語言的交互(可讀性差)

說出Servlet和CGI的區別?

  • Servlet處於服務器進程中,只會有一個servlet實例,每個請求都會產生一個新的線程,而且servlet實例一般不會銷毀

  • CGI:來一個請求就創建一個進程,用完就銷毀,效率低於servlet

簡述JSP的設計模式。

在Web開發模式中,有兩個主要的開發結構,稱為模式一(Mode I)和模式二(Mode II)

首先我們來理清一些概念吧:

  • DAO(Data Access Object):主要對數據的操作,增加、修改、刪除等原子性操作。

  • Web層:界面+控制器,也就是說JSP【界面】+Servlet【控制器】

  • Service業務層:將多個原子性的DAO操作進行組合,組合成一個完整的業務邏輯

  • 控制層:主要使用Servlet進行控制

  • 數據訪問層:使用DAO、Hibernate、JDBC技術實現對數據的增刪改查

  • JavaBean用於封裝數據,處理部分核心邏輯,每一層中都用到!

模式一指的就是在開發中將顯示層、控制層、數據層的操作統一交給JSP或者JavaBean來進行處理

模式一有兩種情況:

完全使用JSP做開發:

  • 優點:

    • 開發速度賊快,只要寫JSP就行了,JavaBean和Servlet都不用設計!

    • 小幅度修改代碼方便,直接修改JSP頁面交給WEB容器就行了,不像Servlet還要編譯成.class文件再交給服務器!【當然了,在ide下開發這個也不算是事】

  • 缺點:

    • 程序的可讀性差、復用性低、代碼復雜!什么jsp代碼、html代碼都往上面寫,這肯定很難閱讀,很難重用!

使用JSP+JavaBean做開發:

  • 優點:

    • 程序的可讀性較高,大部分的代碼都寫在JavaBean上,不會和HTML代碼混合在一起,可讀性還行的

    • 可重復利用高,核心的代碼都由JavaBean開發了,JavaBean的設計就是用來重用、封裝,大大減少編寫重復代碼的工作!

  • 缺點:

    • 沒有流程控制,程序中的JSP頁面都需要檢查請求的參數是否正確,異常發生時的處理。顯示操作和業務邏輯代碼工作會緊密耦合在一起的!日后維護會困難

Mode II 中所有的開發都是以Servlet為主體展開的,由Servlet接收所有的客戶端請求,然后根據請求調用相對應的JavaBean,並所有的顯示結果交給JSP完成!,也就是俗稱的MVC設計模式!

 

MVC設計模式:

  • 顯示層(View):主要負責接受Servlet傳遞的內容,調用JavaBean,將內容顯示給用戶

  • 控制層(Controller):主要負責所有用戶的請求參數,判斷請求參數是否合法,根據請求的類型調用JavaBean,將最終的處理結果交給顯示層顯示!

  • 模型層(Mode):模型層包括了業務層,DAO層。

總結

  • (1)ModelI,JSP+JavaBean設計模式。

  • (2)ModelII,MVC設計模式。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM