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>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348