[HeadFirst-JSPServlet學習筆記][第二章:高層概述]

第二章:高層體系結構

容器

1 什麼是容器?

servelet沒有main()方法。它們受控於另外一個Java應用,這個Java應用稱爲容器(Container)java

Tomcat就是這樣一個容器。Web服務器應用(如Apache)獲得一個指向servlet的請求,服務器不是把這個請求交給servlet自己,而是交給部署該servelet的容器。由該容器向servlet提供HTTP請求和響應,並且要由容器調用servlet的方法(如doPost()或doGet())程序員

2 容器能提供什麼?

2.1 通訊支持

利用容器,能輕鬆的讓servlet與Web服務器對話。你不用本身創建ServerSocket,監聽某個端口,建立流等等。容器知道本身與Web服務器(如Apache)和你本身的Web代碼之間的API。你要考慮的只是如何在servlet中實現業務邏輯web

2.2 生命週期管理

容器控制着servlet的生與死。它會負責加載類,實例化和初始化servlet。調用servlet的方法,以及使servlet實例可以被垃圾回收。有了容器的控制,你就不用太多考慮資源管理算法

2.3 多線程支持

容器會自動地爲它接收的每一個servlet請求建立一個新的Java線程。針對客戶的請求,若是servlet已經運行相應的HTTP服務方法,這個線程就會結束。不過仍是須要考慮線程安全性。仍是會遇到同步問題。數據庫

2.4 聲明方式實現安全

利用容器,可使用XML部署描述文件來配置(和修改)安全性,而沒必要將其硬解碼寫到servlet(或其餘)類代碼中,想象一下,不用去改你的Java源文件,和從新編譯。就能管理和修改安全性配置。設計模式

2.5 jsp支持

容器把JSP代碼翻譯成Java。tomcat

3 容器如何處理請求?


4 servlet代碼剖析

5 容器如何知道servlet

  • 使用部署描述文件xml把URL映射到servlet上安全

    • servelet 服務器

      • servlet-name servlet在部署文件中的名字
      • servlet-class 類名
    • servlet-mappingmarkdown

      • servlet-name servlet在部署文件中的名字
      • url-pattern 映射的URL

實際代碼:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                      http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
  version="3.0"
  metadata-complete="true">
<servlet>
        <servlet-name>Chapter1-Servlet</servlet-name>
        <servlet-class>Ch1Servlet</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Chapter1-Servlet</servlet-name>
    <url-pattern>/Serv1</url-pattern>
</servlet-mapping>
</web-app>

 

6 部署文件

1. 做用

主要:

  • URL 映射 servlet

其他:

  • 安全角色
  • 錯誤頁面
  • 標記庫
  • 初始化配置信息

2. 優勢

  • 儘可能少地接觸已經測試過的源代碼
  • 更容易維護動態安全信息,如訪問控制列表和安全角色

MVC設計模式

1.何爲MVC模式?

維基百科:

MVC模式(Model-View-Controller)是軟件工程中的一種軟件架構模式,把軟件系統分爲三個基本部分:模型(Model)、視圖(View)和控制器(Controller)。

  • (控制器 Controller)- 負責轉發請求,對請求進行處理。(servlet)
  • (視圖 View) - 界面設計人員進行圖形界面設計。(jsp)
  • (模型 Model) - 程序員編寫程序應有的功能(實現算法等等)、數據庫專家進行數據管理和數據庫設計(能夠實現具體的功能)。

2.爲何要用MVC模式

業務邏輯與表現分離

3.servlet&JSP世界中的MVC

  • 控制器

    從請求得到用戶輸入,並明確這些輸入對模型有什麼影響。告訴模型自行更新,而且讓視圖(JSP)能獲得新的模型狀態

  • 視圖

    負責表示。它從控制器獲得模型的狀態(控制器把模型數據放在視圖能找獲得的地方)。另外,視圖還能夠得到用戶輸入,交給控制器

  • 模型

    實際的業務模型,系統只有這部分與數據庫通訊

認識

1. tomcat 就是所謂的容器

2. MVC 模式 M model V view C control

相關文章
相關標籤/搜索