JSP serverlet區別與聯系


jsp是html包含java

servlet是java包含html

jsp請求到tomcat---tomcat封裝了jsp到servlet實現。

所以jsp請求時候,會自動創建session

而不用在servlet中request.getSession(true)

servlet是服務器端的程序,動態生成html頁面發到客戶端,但是這樣 
程序里有許多out.println(),java和html語言混在一起很亂。所以 
后來推出了jsp。其實jsp就是servlet,每一個jsp在第一次運行時被 
轉換成servlet文件,再編譯成.class來運行。 
有了jsp,因此在MVC模式中servlet不再負責生成html頁面,轉而擔任 
控制程序邏輯的作用,控制jsp和javabean之間的流轉。 
-----------

Servlet與Jsp的區別 
    * Servlet中沒有內置對象,原來Jsp中的內置對象都是必須通過HttpServletRequest對象,或由 
       HttpServletResponse對象生成。 
    * 對於靜態的HTML標簽,Servlet都必須使用頁面輸出流諑行輸出。 
       總之,Jsp是Servlet的一種簡化,使用Jsp只需要完成程序員需要輸出到客戶端的內容,至於Jsp中的 
       Java腳本如何鑲嵌到一個類中,由Jsp容器完成。而Servlet則是個完整的Java類,這個類的Service 
       方法用於生成對客戶端的響應。 
-Servlet的開發 
      Servlet通常稱為服務器端小程序,用於處理和響應客戶端的請求。 
      Servlet是個特殊的Java類,這個Java類必須繼承HttpServlet。每個Servlet可以響應客戶端的請求。 
      Servlet提供了不同的方法用於響應客戶端請求。 
      * doGet   : 用於響應客戶端的get請求 
      * doPost  : 用於響應客戶端的post請求 
      * doPut   : 用於響應客戶端的put請求 
      * doDelete: 用於響應客戶端的delete請求 
      * service(HttpServletRequest  request,   [可以響應客戶端所有類型的請求] 
                       HttpServletResponse response) 
                       throws ServletException,java.io.IOException 
其他方法 
      * init(Servletconfig config)  : 創建Servlet實例時,調用的初始化方法。 
      * destory()   : 銷毀Servlet實例時,自動調用的資源回收方法。 
-Servlet的配置 
      編譯好的Servlet源文件並不能響應用戶請求,還必須將其編譯成class文件。將編譯后的.class 
      文件放在WEB-INF/classes路徑下,如果Servlet有包,則還應該將class文件放在對應的包路徑下。 
      為了讓Servlet能響應用戶請求,還必須將Servlet配置在Web應用中。配置Servlet時,需要修改 
      web.xml文件。 
     配置Servlet需要配置兩個部分:   
      * 配置Servlet的名字:對應web.xml中的<servlet/>元素 
      * 配置Servlet的URL :對應web.xml中的<servlet-mapping/>元素 
-Servlet的生命周期 
     Servlet在容器中運行,其實例的創建以及銷毀等都不是由程序員決定的,而是由容器進行控制的。 
     Servlet的創建有兩個選擇: 
       *客戶端請求對應的Servlet時,創建Servlet實例:大部分的Servlet都是這種Servlet 
       *Web應用啟動時,立刻創建Servlet實例:即load-on-startup Servlet 
Servlet的生命周期: 
     Begin 
            ---> 創建實例完成 
            ---> 初始化[init] 
            ---> 響應客戶端請求[doGet,doPost,service] 
            ---> 被銷毀[destroy] --->    
     End 
-使用Servlet作為控制器 
     使用Servlet作為表現層的工作量太大,所有的HTML標簽都需要使用頁面輸出流生成。 
     因此使用Servlet作為表現層有如下三個劣勢: 
     * 開發效率低,所有的HTML標簽都需使用頁面輸出流完成 
     * 不利於團隊協作,美工人員無法參與Servlet界面的開發 
     * 程序可維護性差,即使修改一個按鈕的標題,讀需要重新編輯Java代碼,並重新編譯 
使用Servlet的MVC的架構實現: 
     Jsp頁面--> Servlet程序 --> Servlet根據條件轉發新的Jsp頁面 
-load-on-startup Servlet 
     Servlet實例化的時機還有在Web應用啟動時,即load-on-startup Servlet 
     應用啟動時就啟動的Servlet,通常是用於某些后台服務的Servlet,或者攔截很多請求的Servlet; 
     這種Servlet通常作為基礎的Servlet使用,提供重要的后台服務。 
web.xml中的配置: 
     在<servlet/>元素中增加元素 
        < load-on-startup>1</load-on-startup> 
-訪問Servlet的配置參數 
     配置Servlet時,還可以增加附加的配置參數,通過使用配置參數,可以實現更好的解除耦合, 
     避免將所有的參數以硬編碼方式寫在程序中。 
     訪問Servlet配置參數要通過ServletConfig類的實例完成,ServletConfig提供如下方法: 
         java.lang.String getInitParameter(java.lang.String name) [獲取初始化參數] 


免責聲明!

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



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