Web: Tomcat - 05

web概述

WEB概念

Web概念

WEB,在英语中web即表示网页的意思,它用于表示Internet主机上供外界访问的资源。

web资源分类

静态web资源(如html 页面):

指web页面中供人们浏览的数据始终是不变。如Html、CSS、javaScript

动态web资源:

  1. 指web页面中供人们浏览的数据是由程序产生的,不同时间点访问web页面看到的内容各不相同。如JSP/Servlet、ASP、PHP
  2. 在Java中,动态web资源开发技术统称为Javaweb,我们课程的重点也是教大家如何使用Java技术开发动态的web资源,即动态web页面。

Web服务器

Servlet容器、web容器、web服务器

Servlet容器:

java中的动态资源开发技术为Servlet/JSP,sun公司定义了Servlet/JSP的技术规范,遵循这样规范就可以写出对应的Servlet、JSP程序,但是Servlet、JSP本身不能直接运行,需要运行他们的环境,于是有不同的厂商分别按照Servlet/JSP规范的要求开发了对应的运行环境,这样的能够运行Servlet/JSP的环境就叫做Servlet容器。

web容器:

web资源按照一定的规则整合起来组成能够被web访问的应用程序就叫做web应用,web应用运行也需要一定的环境。能够运行web应用的环境叫做web容器。

web容器的概念通常要大于Servlet容器,Servlet容器通常都是web容器,但是web容器不一定是Servlet容器,因为运行ASP、PHP的服务器是web容器,但是不能运行Servlet所以不能叫Servlet容器。

web服务器

web容器/Servlet容器具体来说就是web服务器,学习web开发,需要先安装一台web服务器,然后再在web服务器中开发相应的web资源,供用户使用浏览器访问。

  1. 注意:这里所说的服务器不是指服务器硬件资源,而是指服务器软件。

常见的web服务器

WebLogic

WebLogic是BEA公司的产品,是目前应用最广泛的Web服务器,支持J2EE规范。

如图-1所示:

图-1

​​​​​​​WebSphere

WebSphere是IBM公司的产品,支持J2EE规范,使用的也不少。

如图-2所示:

图-2

​​​​​​​Tomcat

在小型的应用系统或者有特殊需要的系统中,可以使用一个免费的Web服务器:Tomcat,该服务器支持全部JSP以及Servlet规范

虽然是免费开源的服务器,并且不能完全支持J2EE规范,但是它免费、轻量等特性让他仍然十分受到欢迎。我们学习阶段就是使用tomcat作为服务器。

如图-3所示:

图-3

tomcat的下载安装配置

下载tomcat  

tomcat是Apache开源组织开发并无偿发布的免费开源的servlet容器,任何人都可以在他的官网上免费获取该服务器的拷贝及源代码,下载地址为:Apache Tomcat® - Welcome! 

如下图位置提供了各个版本的tomcat下载,如图-4所示:

图-4

下载时请注意,不同版本的区别:

.zip为压缩版,解压后即可使用,注意区分操作系统是32位还是64位。

.exe为安装版,安装后使用,注意区分操作系统是32位还是64位。

安装版和解压版基本相同,只不过解压版解压后需要配置环境变量,安装版不需要。

.tar.gz为linux版本.

如图-5所示:

图-5

我们这里选择解压版下载。

​​​​​​​安装tomcat

将解压版.zip包拷贝到要安装的目录下,解压。

注意,在tomcat的安装目录中不允许有空格和中文字符! 其实不止tomcat,绝大部分开发相关的软件都对中文和空格支持有问题,所以以后在安装任何软件时都要养成一个习惯:路径中绝对不要有中文和空格!

打开[tomcat]/bin目录,发现其中包含大量.bat程序,找到startup.bat,双击启动发现cmd窗口一闪而过。这是因为启动报错后cmd窗口关闭了自己,所以我们只看到一闪而过的窗口。

在windows的命令中启动cmd窗口,进入[tomcat]/bin目录,执行startup.bat,发现报错,如图-6所示:

图-6

简单阅读后发现提示,没有配置JAVA_HOME环境变量,因为tomcat本身也是java写的程序,运行需要jdk的支持,所以需要通过JAVA_HOME环境变量通知tomcat启动时用的jdk在哪。

要注意的是,不同版本的tomcat要求的jdk的版本是不相同的。

tomcat6 需要 jdk5.0以上版本。

tomcat7 需要 jdk6.0以上版本。

tomcat8 需要jdk7.0以上版本。

所以只需要配置环境变量JAVA_HOME指向java安装的根目录即可,如图-7所示:

图-7

再次启动tomcat,发现可以正常工作。

看到类似界面说明tomcat正常的启动起来了。如图-8所示:

图-8

打开浏览器,访问 http://localhost:8080可以看到如下画面,如图-9所示:

图-9

​​​​​​​安装常见问题

(1)端口占用问题:

可以在cmd窗口中使用netstat -ano命令查询出哪个程序占用了端口,结束这个程序后再启动tomcat即可

(2)Catalina_home环境变量:

用来指定启动的tomcat的位置,如果没有配置过这个环境变量,则在哪个tomcat中启动,则该tomcat被启动,如果这个环境变量被配置过,无论在哪个tomcat中启动,最终启动的都是该环境变量指定的tomcat

​​​​​​​关闭服务器

在[tomcat]/bin 目录下 双击shutdown.bat即可关闭服务器。

直接关闭tomcat窗口也可快速关闭服务器,但是这种做法服务器没有执行正常的关闭流程,有时会造成下次启动报错,遇到这种情况只要再执行一次shutdonw.bat即可解决问题。

​​​​​​​tomcat的目录结构

bin --- 存放tomcat启动和关闭用的bat文件

conf --- 存放tomcat配置文件的目录

lib --- 存放tomcat运行时依赖的jar包

logs --- 存放tomcat运行时产生的日志文件的

temp --- tomcat自己用来存放运行过程中产生的临时文件的目录,不需要我们管理,tomcat自动管理

webapps --- 这是和开发人员关系最大的目录,是用来存放web应用的目录,我们开发的web资源最终要保存在这个目录下,外界就可以访问了

work --- tomcat的工作目录,tomcat在运行时产生的工作文件存放在这个目录

conf/server.xml--tomcat的核心配置文件

练习:修改tomcat/conf/server.xml Connector 中的 prot 将tomcat监听的端口号从8080 转为 80

tomcat中的基本概念

虚拟主机

tomcat中可以配置管理多个网站,外界在访问这些网站时,并不知道这些网站是运行在同一个tomcat中的,感觉起来就像他们各自运行在各自的虚拟出来的主机中一样,所以将一个网站交给tomcat去管理的过程称为为tomcat配置一台虚拟主机。

​​​​​​​web应用

一个虚拟主机包含着许多web资源,但这些web资源不能直接交给虚拟主机管理,需要按照功能将web资源按照一定的目录结构组织成web应用再交给虚拟主机去管理

​​​​​​​虚拟路径映射

将web应用交给虚拟主机管理,为web应用真实路径配置一个对外访问的虚拟的路径的过程叫做web应用的虚拟路径映射。

以上概念如图-10所示:

图-10

配置虚拟主机

配置虚拟主机

想要配置一台虚拟主机,只需要在[tomcat]/conf/server.xml的<Engin>标签下配置<Host>标签即可:

<Host name=”主机名” appBase=”虚拟主机管理的目录”></Host>

其中“虚拟主机管理的目录”是为当前虚拟主机配置一个虚拟主机管理的目录,可以将web应用放置到该目录下,虚拟主机就会自动管理该web应用了。

如图-14所示:

图-14

此时通过浏览器访问http://www.baidu.com发现无法访问。

这是因为还没有配置dns服务器。

​​​​​​​DNS服务器

网络中是通过ip来区分不同的主机的,浏览器如何知道www.baidu.com对应的主机的ip呢?这里就是dns服务器在起作用了。

互联网上有一些专门将域名翻译为对应主机ip的服务器叫做dns服务器(域名解析服务器)专门进行域名到ip的翻译工作。

如果我们想要让www.baidu.com能够访问当前虚拟主机,还需要到dns服务器中进行配置,将www.baidu.com和本机ip地址进行绑定才可以。

但是dns是不能随意修改的!那我们如何进行测试呢?

​​​​​​​​​​​​​​Hosts文件

好在c:/windwos/system32/drivers/etc/hosts文件可以模拟dns的功能,浏览器在访问dns之前会首先检查该文件,如果这个文件中配置过域名ip映射,则会直接使用而不再去找dns服务器了。所以我们可以在hosts文件中进行如下配置,如图-15所示:

图-15

再通过浏览器访问,发现成功访问了我们配置的虚拟主机中的web应用。

​​​​​​​综合练习

配置www.163.com虚拟主机,以三种方式配置web应用,并选择一种配置为缺省web应用,并且配置web应用的主页,最终实现,直接访问www.163.com时能够显示主页的内容。

web应用目录结构
  1. web应用目录结构

web资源需要按照一定方式组织成web应用才能交给虚拟主机去管理。web应用的目录结构如下:

mail --- web应用所在的目录

 |

 |--html css js jsp  

 |

 |--WEB-INF

|--classes

|

|--lib

|

|--web.xml

(1)静态web资源和jsp可以放置在web应用的根目录下,在web应用根目录下的资源,浏览器可以直接访问

(2)WEB-INF目录可以没有,但是一旦有了,必须符合结构,放置在这个目录中的资源会被保护起来,浏览器是没有办法直接访问的

(3)WEB-INF/classes存放动态web资源的 class文件的

(4)WEB-INF/lib 存放class们依赖的jar包的

(5)WEB-INF/web.xml整个web应用的核心配置文件,这个web应的所有配置都要在这里进行 (配置web应用的主页 配置Servlet映射 配置监听器 配置过滤器....)

  1. 练习:新建game应用,包含index.html 和 news.html,并在web.xml中将index.html配置为主页。

web应用配置虚拟路径映射的三种方式

方式1

直接将web应用放置到虚拟主机管理的目录中。虚拟主机自动管理该目录,文件夹的名字成为web应用的虚拟路径。

这种方式不需要重启服务器即可起作用。

如果将文件夹的名字改为ROOT则当前web应用成为缺省web应用。

localhost虚拟主机管理的是webapps目录,所以将应用放置到webapps目录下通过localhost主机就可以直接访问了。

如图-13所示:

图-13

​​​​​​​方式2

在server.xml中的<Host>标签中配置<Context>标签,其中的path属性指定虚拟路径(浏览器访问的路径),docBase指向真实的web应用目录。

注意,这种方式配置的web应用需要重启服务器后才会生效。

如果将path配置为空,则当前web应用称为虚拟主机的缺省web应用。

如图-11所示:

图-11

​​​​​​​方式3

在[tomcat]/conf/[engin]/[host]目录下新建一个xml文件,其中文件名为成当前web应用虚拟路径,在xml文件的内部,用<Context>标签配置docBase指定真实路径,注意这种配置方式不需要指定path虚拟路径,因为文件名就是path.

这种方式不需要重启服务器即可起作用。

如果将xml文件名改为ROOT.xml则当前web应用成为当前虚拟主机的缺省web应用。

如图-12所示:

图-12

    1. 其他相关
      1. 打war包

web应用是一个文件夹,可以将文件夹形式的web应用打成一个war包,减少体积同时更方便操作。

在cmd窗口中进入应用目录,使用jar -cvf news.war * 即可将当前目录下的内容打成 news.war包

将war包直接丢到虚拟主机管理目录下,发现会自动解压成web应用。十分方便。

      1. 通用web.xml

在[tomcat]/conf目录下有一个web.xml文件,整个服务器内所有的web.xml可以认为继承自该web.xml。所以如果有一些通用配置不希望每次都具体配置一次,可以在这里配置。

  • 28
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值