Java Web(1) Tomcat

[TOC]

1. J2ee

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

1.1 J2EE的四層模型

J2EE使用多層的分布式應(yīng)用模型,應(yīng)用邏輯按功能劃分為組件,各個應(yīng)用組件根據(jù)他們所在的層分布在不同的機(jī)器上。
J2EE 典型的四層結(jié)構(gòu):


J2EE.png
  • 運(yùn)行在客戶端機(jī)器上的客戶層組件
  • 運(yùn)行在J2EE服務(wù)器上的Web層組件
  • 運(yùn)行在J2EE服務(wù)器上的業(yè)務(wù)邏輯層組件
  • 運(yùn)行在EIS服務(wù)器上的企業(yè)信息系統(tǒng)(Enterprise information system)層軟件
J2EE結(jié)構(gòu)

1.2 J2EE組件

2EE平臺由一整套服務(wù)(Services)、應(yīng)用程序接口(APIs)和協(xié)議構(gòu)成,它對開發(fā)基于Web的多層應(yīng)用提供了功能支持,下面對J2EE中的13種技術(shù)規(guī)范進(jìn)行簡單的描述(限于篇幅,這里只能進(jìn)行簡單的描述):

  • Servlet:web服務(wù)器小程序。
  • JSP: 服務(wù)器頁面
  • JDBC:數(shù)據(jù)庫交互模塊。
  • XML:XML交互模塊。
  • EJB:企業(yè)級Java Bean
  • RMI:遠(yuǎn)程調(diào)用。
  • JNDI:目錄服務(wù)
  • JMS: 消息服務(wù)。
  • JTA:事務(wù)管理。
  • JavaMail:發(fā)送/接受Email。
  • JAF: 安全框架
  • CORBA:CORBA集成。
  • JTS:CORBA事務(wù)監(jiān)控。

2. tomcat

Apache Tomcat是由Apache Software Foundation(ASF)開發(fā)的一個開源Java WEB應(yīng)用服務(wù)器。

2.1 Tomcat與其他web模塊的關(guān)系

2.1.1 Tomcat與Java SE

Tomcat是用Java語言編寫的,需要運(yùn)行在Java虛擬機(jī)上,所以一般需要先安裝JDK,以提供運(yùn)行環(huán)境。

2.1.2 Tomcat與Java EE

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

2.1.3 Tomcat與Servlet/編程開發(fā)

Tomcat實(shí)現(xiàn)的幾個Java EE規(guī)范,其中最重要的是Servlet,因?yàn)閷?shí)現(xiàn)了Servlet規(guī)范,所以Tomcat也是一個Servlet容器,可以運(yùn)行我們自己編寫的Servlet應(yīng)用程序處理動態(tài)請求。
平時用的Struts2、SpringMVC框架就是基于Servlet,所以我們可以在這些框架的基礎(chǔ)上進(jìn)行快速開發(fā),然后部署到Tomcat中運(yùn)行。

tomcat.png

2.1.4 Tomcat與WEB/HTTP請求

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

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

2.1.5 Tomcat與Nginx/Apache的應(yīng)用架構(gòu)

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

2.2 tomcat服務(wù)器目錄結(jié)構(gòu)

tomcat目錄

2.2.1 /bin

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

/bin

2.2.2 /conf

存放Tomcat服務(wù)器的各種配置文件

/conf

  • server.xml 可以設(shè)置端口號、設(shè)置域名或IP、默認(rèn)加載的項(xiàng)目、請求編碼
  • web.xml 可以設(shè)置tomcat支持的文件類型
  • context.xml 可以用來配置數(shù)據(jù)源之類的
  • tomcat-users.xml 用來配置管理tomcat的用戶與權(quán)限

修改端口號

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

2.2.3 /lib

存放Tomcat服務(wù)器所需的各種JAR文件

2.2.4 /logs

存放Tomcat的日志文件

2.2.5 /temp

Tomcat運(yùn)行時用于存放臨時文件

2.2.6 /webapps

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

2.2.7 /work

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

2.3 Tomcat使用流程

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

3. WEB-INF目錄結(jié)構(gòu)

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

組織結(jié)構(gòu) 描述
/WEB-INF WEB應(yīng)用的安全目錄,用于存放配置文件
/WEB-INF/web.xml web.xml是“部署描述符文件”,是該Web項(xiàng)目核心配置文件
/WEB-INF/classes 存放編譯后的classes文件
/WEB-INF/lib 用于存放web應(yīng)用依賴的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">

  <!-- 默認(rèn)首頁-->
  <welcome-file-list>
             <welcome-file>haha.jsp</welcome-file>
  </welcome-file-list>

</web-app>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容