[TOC]
1. J2ee
J2EE是Java2平臺企業版(Java 2 Platform,Enterprise Edition),它的核心是一組技術規范與指南,提供基于組件的方式來設計、開發、組裝和部署企業應用。J2EE使用多層分布式的應用模型,適用于創建服務器應用程序和服務。
1.1 J2EE的四層模型
J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據他們所在的層分布在不同的機器上。
J2EE 典型的四層結構:
- 運行在客戶端機器上的客戶層組件
- 運行在J2EE服務器上的Web層組件
- 運行在J2EE服務器上的業務邏輯層組件
- 運行在EIS服務器上的企業信息系統(Enterprise information system)層軟件
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 Servlet
、Java Server Pages(JSP
),Java Expression Language
和Java WebSocket
等,這些是都下載Tomcat安裝包默認提供的
2.1.3 Tomcat與Servlet/編程開發
Tomcat實現的幾個Java EE規范,其中最重要的是Servlet
,因為實現了Servlet
規范,所以Tomcat也是一個Servlet容器,可以運行我們自己編寫的Servlet應用程序處理動態請求。
平時用的Struts2、SpringMVC框架就是基于Servlet,所以我們可以在這些框架的基礎上進行快速開發,然后部署到Tomcat中運行。
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服務器目錄結構
2.2.1 /bin
存放各種平臺下用于啟動和停止Tomcat的命令文件
2.2.2 /conf
存放Tomcat服務器的各種配置文件
- 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>