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)层软件
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服务器目录结构
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>