tomcat基础

目录

一、安装和启动

二、目录结构

三、tomcat组件

3.1、顶层元素

3.2、连接器类元素

3.3、容器类元素

3.4、嵌套类元素

四、web应用目录结构

五、配置虚拟目录

5.1、webapps

5.2、web应用放入其他位置

5.2.1、修改server.xml

5.2.2、在\conf\Catalina\localhost下建立xml

六、配置虚拟主机

七、配置web应用默认页面

八、Context元素

九、热部署

十、类加载器

十一、tomcat与eclipse集成

参考


tomcat是一个运行Servlet和JSP的容器,开源项目,由java编写的。

一、安装和启动

安装之前需要安装jdk,然后从官网上下载tomcat的压缩包,解压到某个文件夹下。如果是windows系统,可以通过执行bin目录下的startup.bat文件启动服务。可以双击该脚本或者通过命令行执行它。双击后如下:

tomcat基础_第1张图片

可以看出,启动后tomcat已经监听了80端口,当然,刚开始是8080端口,不过我修改了它,后面会介绍。然后在浏览器上输入地址http://localhost/(或者http://localhost:8080)。

tomcat基础_第2张图片

然后关闭命令行窗口就可以关闭服务。

二、目录结构

tomcat基础_第3张图片

  • lib:存放tomcat的可执行文件和脚本文件,如startup.bat
  • conf:存放配置文件,如web.xml、server.xml
  • lib:存放tomcat和web应用都可以访问到的jar包
  • logs:存放日记文件
  • temp:存放运行时产生的临时文件
  • webapps:默认的web应用发布目录
  • work:工作目录,jsp编译生成的servlet源文件和字节码文件将放到该目录下

三、tomcat组件

tomcat基础_第4张图片

容器中各个组件在server.xml都有对应的元素,xml每种元素代表一种tomcat组件,可分为4类:

3.1、顶层元素

:Tomcat的顶层元素,代表整个容器。可以设置关闭容器命令和端口的信息。可包含多个Service

:Service处理不同协议发过来的请求。包含一个或多个元素和一个元素

3.2、连接器类元素

:代表与客户程序实际交互的组件,负责接收客户请求,以及向客户返回响应结构

3.3、容器类元素

:处理所有元素接收到的请求。包含多个host元素

:代表虚拟主机,含有多个web应用。可以对所有web应用进行通用配置

:代表单个web应用。配置一些地址信息,比如映射虚拟目录。

3.4、嵌套类元素

,具体不知啥用处。

 

一个service中通过connector接受到请求,发给engine,engine传给虚拟主机host中的一个具体应用context。因此想要修改tomcat监听的端口,只要修改对应的Connector元素就行了,比如修改server.xml中的:

tomcat基础_第5张图片

 

四、web应用目录结构

tomcat基础_第6张图片

比如web应用mywewapp,在该目录下可以直接存放html、css、js和其他文件,这些都是可以被客户端访问到,但是WEB-INF目录不能被客户端访问。WEB-INF目录下的classes存放自己编写的.calss文件,lib存入web应用需要的jar包。web.xml是web应用的配置文件。详细参考:Java Web App Directory Layout

五、配置虚拟目录

tomcat可以将web应用映射成为能够外界访问的虚拟web目录,比如虚拟目录为webapp,那么可以通过http://your_domain_name/webapp/....访问资源。

5.1、webapps

可以直接将web应用放入webapps目录下,tomcat会自动扫描该目录并加载新加的应用,web应用的名称作为虚拟目录。先在webapps目录下创建文件夹myweb,进入myweb,建立welcome.html文件,里面输入一些字。然后浏览器中访问http://localhost/myweb/welcome.html

tomcat基础_第7张图片

5.2、web应用放入其他位置

web应用放入其他位置,可以通过修改server.xml或者在某一目录下建立xml文件来配置虚拟目录。

5.2.1、修改server.xml

比如将web应用放入D盘,D:\myweb。则可以配置server.xml文件,修改server.xml后需要重启tomcat。下面在Host下添加了一条Context元素。

tomcat基础_第8张图片

context可以用于将本地系统中一个目录映射为可供web浏览器访问的虚拟目录。path属性指定web应用的虚拟路径,如果改成myweb2,相应的url也需要修改。docBase属性用于指定该虚拟目录所在本地系统中的目录地址,可以用绝对地址或者相对于webapps目录的相对地址。然后访问网址http://localhost/myweb/welcome.html

tomcat基础_第9张图片

可以通过设置path=""将该应用设置为默认应用,然后可以通过http://localhost/welcome.html访问

5.2.2、在\conf\Catalina\localhost下建立xml

修改server.xml需要重启tomcat,但是可以在\conf\Catalina\localhost目录下创建xml文件配置虚拟目录,tomcat会自动扫描,不用重新启动。Catalina是service服务的名字,localhost是Host虚拟主机的名字。在该目录下创建一个名为myweb.xml的配置文件(可以任意文件名,作为虚拟目录名字),然后将元素写入该文件。然后访问网址http://localhost/myweb/welcome.html

tomcat基础_第10张图片

可以将myweb.xml的配置文件重新命名为ROOT.xml,就会将该web应用设置为默认应用。可以直接通过http://localhost/welcome.html访问。

tomcat基础_第11张图片

上面不是说到path是用来设置虚拟目录的吗??我们只是修改了xml文件名而已,没有修改path,为什么还可以修改虚拟目录?这是因为path只在server.xml中有效!!请查看我的另一篇博客:tomcat中Context的path和docBase属性

六、配置虚拟主机

tomcat允许用户在同一计算机上配置多个web站点,在这种情况下,需要为每个web站点配置不同的主机名,这个过程为配置虚拟主机。元素表示虚拟主机,因此在Engine元素下添加一个Host就行了。

tomcat基础_第12张图片

其中name是该虚拟主机的名字,appBase指定该虚拟主机所有应用默认的目录,现在我们将之前的myweb应用放入该目录下,重启tomcat,然后访问http://www.mydomain.com/myweb/welcome.html

tomcat基础_第13张图片

为什么404了呢?。。。因为我们没有域名啊,www.mydomain.com没有被解析到我的主机,可以通过购买域名或者修改hosts文件让域名解析到我的主机上,下面修改C:\Windows\System32\drivers\etc\hosts文件

tomcat基础_第14张图片

然后访问http://www.mydomain.com/myweb/welcome.html

tomcat基础_第15张图片

如果没有成功访问,可以通过ipconfig /flushdns刷新DNS缓存内容再访问。

七、配置web应用默认页面

其实这已经不属于tomcat的配置范围了,这是web应用的配置。但是初学者都对这个感兴趣~~于是记录下来。需要在web应用的WEB-INF下web.xml添加welcom-file-list元素。

我已经将myweb应用重新放入webapps中了,然后建立WEB-INF目录,建立web.xml配置文件,内容如下:



	
		welcome.html
	

不需要重启tomcat,然后访问网址:http://localhost/myweb/

tomcat基础_第16张图片

此时没有指定要访问的资源名称,便会默认访问welcome.html网页。

八、Context元素

context代表虚拟主机host上运行的单个web应用,通过配置context元素可以灵活的发布web应用。context可以在很多地方配置,但是tomcat会以一定顺序的查找该元素,如果找到就使用该元素不会继续查下去。因此不同地方的context元素有优先级。查找顺序如下:

  1. /conf/context.xml文件中查找context元素,该文件适用于所有web应用
  2. /conf/[enginename]/[hostname]/context.xml.default中查找context元素。适用于所有web应用。
  3. /conf/[enginename]/[hostname]/[contextpath].xml文件中查找,只适用于单个web应用。5.2.2小节中就使用了该方法。
  4. 到web应用的META-INF/context.xml文件中查找context元素,只适用于当前web应用。
  5. /conf/server.xml文件中的host元素中查找context元素。可以在serverl.xml中配置所有的web应用的context元素,但是由于优先级最低,极有可能会被其他context元素覆盖。5.2.1小节中就使用了该方法。

由于我没有具体测试过,因此不过多讲述,知道有这么一回事就行了。

九、热部署

tomcat中是可以热部署web应用的,需要部署web应用时,比如,直接放入webapps目录中即可,不必重启tomcat。因此可以直接在webapps下修改web.xml、jsp文件,tomcat会自动扫描是否被修改过,必要时会重新加载web.xml、重新编译jsp文件。但是如果修改server.xml需要tomcat重启,这个和热部署没有什么关系,热部署是热拔插类的,这里只是提醒下而已。貌似修改其他地方的context元素tomcat会检测到?没有测试过。。

十、类加载器

这是很重要的内容,但是以后补充

十一、tomcat与eclipse集成

实际开发中会在eclipse中集成tomcat开发web应用,由于网上教程很多,这里不会讲解。这里单独列出,是因为当年自学时不知道web应用的开发过程,,,不知道如何学起,因此强调一下。。

 

参考

《java web程序开发入门》 传智博客高教产品研发部

《tomcat与java web开发技术详解》 孙卫琴

https://blog.csdn.net/jdbdh/article/details/81056237

Java Web App Directory Layout

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,web,tomcat,基础,java,教程)