Java Web(1) Tomcat

[TOC]

1. J2ee

J2EE是Java2平臺企業版(Java 2 Platform,Enterprise Edition),它的核心是一組技術規范與指南,提供基于組件的方式來設計、開發、組裝和部署企業應用。J2EE使用多層分布式的應用模型,適用于創建服務器應用程序和服務

1.1 J2EE的四層模型

J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據他們所在的層分布在不同的機器上。
J2EE 典型的四層結構:


J2EE.png
  • 運行在客戶端機器上的客戶層組件
  • 運行在J2EE服務器上的Web層組件
  • 運行在J2EE服務器上的業務邏輯層組件
  • 運行在EIS服務器上的企業信息系統(Enterprise information system)層軟件
J2EE結構

1.2 J2EE組件

2EE平臺由一整套服務(Services)、應用程序接口(APIs)和協議構成,它對開發基于Web的多層應用提供了功能支持,下面對J2EE中的13種技術規范進行簡單的描述(限于篇幅,這里只能進行簡單的描述):

  • Servlet:web服務器小程序。
  • JSP: 服務器頁面
  • JDBC:數據庫交互模塊。
  • XML:XML交互模塊。
  • EJB:企業級Java Bean
  • RMI:遠程調用。
  • JNDI:目錄服務
  • JMS: 消息服務。
  • JTA:事務管理。
  • JavaMail:發送/接受Email。
  • JAF: 安全框架
  • CORBA:CORBA集成。
  • JTS:CORBA事務監控。

2. tomcat

Apache Tomcat是由Apache Software Foundation(ASF)開發的一個開源Java WEB應用服務器。

2.1 Tomcat與其他web模塊的關系

2.1.1 Tomcat與Java SE

Tomcat是用Java語言編寫的,需要運行在Java虛擬機上,所以一般需要先安裝JDK,以提供運行環境。

2.1.2 Tomcat與Java EE

  • J2EE是一組技術規范與指南,具體實現由軟件廠商決定。
  • Tomcat實現了幾個Java EE規范,包括Java ServletJava Server Pages(JSP),Java Expression LanguageJava WebSocket等,這些是都下載Tomcat安裝包默認提供的

2.1.3 Tomcat與Servlet/編程開發

Tomcat實現的幾個Java EE規范,其中最重要的是Servlet,因為實現了Servlet規范,所以Tomcat也是一個Servlet容器,可以運行我們自己編寫的Servlet應用程序處理動態請求。
平時用的Struts2、SpringMVC框架就是基于Servlet,所以我們可以在這些框架的基礎上進行快速開發,然后部署到Tomcat中運行。

tomcat.png

2.1.4 Tomcat與WEB/HTTP請求

Tomcat的(HTTP類型)Connector組件實現了HTTP請求的解析,Tomcat通過Connector組件接收HTTP請求并解析,然后把解析后的信息交給Servlet處理:

  • 對于靜態資源(html/js/jpg等)請求,Tomcat提供默認的Servlet來處理并響應;
  • 對于動態請求,可以映射到自己編寫的Servlet應用程序來處理。

2.1.5 Tomcat與Nginx/Apache的應用架構

Nginx、Apache都是目前主流的Web服務器,也可以作為反向代理服務器;它們在處理大量并發的請求連接、連接會話管理和靜態內容請求等方面相比Tomcat更具優勢。
如果是靜態請求,則轉發到另外的Nginx WEB服務器上,返回靜態內容;如果是動態請求,則轉發到后面的Tomcat應用服務器,處理動態請求的業務邏輯。

2.2 tomcat服務器目錄結構

tomcat目錄

2.2.1 /bin

存放各種平臺下用于啟動和停止Tomcat的命令文件

/bin

2.2.2 /conf

存放Tomcat服務器的各種配置文件

/conf

  • server.xml 可以設置端口號、設置域名或IP、默認加載的項目、請求編碼
  • web.xml 可以設置tomcat支持的文件類型
  • context.xml 可以用來配置數據源之類的
  • tomcat-users.xml 用來配置管理tomcat的用戶與權限

修改端口號

<!-- 修改 /conf/server.xml -->
<Connector port="8080"
    protocol="HTTP/1.1"
    connectionTimeout="20000"
    redirectPort="8443"
/>

2.2.3 /lib

存放Tomcat服務器所需的各種JAR文件

2.2.4 /logs

存放Tomcat的日志文件

2.2.5 /temp

Tomcat運行時用于存放臨時文件

2.2.6 /webapps

當發布Web應用時,默認會將Web應用的文件發布到此目錄下,當然,你也可以把應用程序放置在磁盤的任意位置,在配置文件中映射好就行。

2.2.7 /work

Tomcat把由JSP生成的servlet放于此目錄下

2.3 Tomcat使用流程

  • 在 /webapps 創建項目目錄
  • 編寫index.jsp
  • 創建WEB-INF目錄(包含classes目錄和lib目錄,web.xml)
  • 測試運行

3. WEB-INF目錄結構

WEB-INF 是 Java 的WEB應用的安全目錄。所謂安全就是客戶端無法訪問,只有服務器可以訪問的目錄。

組織結構 描述
/WEB-INF WEB應用的安全目錄,用于存放配置文件
/WEB-INF/web.xml web.xml是“部署描述符文件”,是該Web項目核心配置文件
/WEB-INF/classes 存放編譯后的classes文件
/WEB-INF/lib 用于存放web應用依賴的jar文件
<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="<http://xmlns.jcp.org/xml/ns/javaee>"
  xmlns:xsi="<http://www.w3.org/2001/XMLSchema-instance>"
  xsi:schemaLocation="<http://xmlns.jcp.org/xml/ns/javaee>
                      <http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd>"
  version="4.0"
  metadata-complete="true">

  <!-- 默認首頁-->
  <welcome-file-list>
             <welcome-file>haha.jsp</welcome-file>
  </welcome-file-list>

</web-app>
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。