tomcat服务器总结

一、常用的web服务器

*Tomcat:Apache的产品,它是一个开源免费的web服务器。

web项目开发好之后,需要发布(部署)到一台服务器上,然后外界才能访问。

二、tomcat目录结构

bin:二进制文件存放的目录,启动文件,停止文件等。

conf:保存的tomcat服务器中的所有配置文件。

  • server.xml:配置整个服务器信息。例如修改端口号,添加虚拟主机等;

  • tomcatusers.xml:存储tomcat用户的文件,这里保存的是tomcat的用户名及密码,以及用户的角色信息。

  • web.xml:部署描述符文件,这个文件中注册了很多MIME类型,即文档类型。这些MIME类型是客户端与服务器之间说明文档类型的,如用户请求一个html网页,那么服务器还会告诉客户端浏览器响应的文档是text/html类型的,这就是一个MIME类型。客户端浏览器通过这个MIME类型就知道如何处理它了。当然是在浏览器中显示这个html文件了。但如果服务器响应的是一个exe文件,那么浏览器就不可能显示它,而是应该弹出下载窗口才对。MIME就是用来说明文档的内容是什么类型的!

  • context.xml:对所有应用的统一配置,通常我们不会去配置它。

lib:tomcat运行javaee程序需要依赖的那些jar包。

logs:tomcat运行的时候的日志信息。

temp:存放Tomcat的临时文件,这个目录下的东西可以在停止Tomcat后删除!

webapps:存放web项目的目录,其中每个文件夹都是一个项目;如果这个目录下已经存在了目录,那么都是tomcat自带的。项目。其中ROOT是一个特殊的项目,在地址栏中没有给出项目目录时,对应的就是ROOT项目。http://localhost:8080/examples,进入示例项目。其中examples就是项目名,即文件夹的名字。

work:运行时生成的文件,最终运行的文件都在这里。通过webapps中的项目生成的!可以把这个目录下的内容删除,再次运行时会生再次生成work目录。当客户端用户访问一个JSP文件时,Tomcat会通过JSP生成Java文件,然后再编译Java文件生成class文件,生成的java和class文件都会存放到这个目录下。

server.xml详讲

(1)配置外部应用

  原来我们的项目放到webapps下,现在我放到外面,也希望tomcat可以找到它!

        第一种方式:conf/server.xml:打开server.xml文件,找到<Host>元素,在其中添加<Context>元素,代码如下:

server.xml

 

  1. path:指定当前应用的名称;

  2. docBase:指定应用的物理位置;

  3. 浏览器访问路径:。

第二种方式:conf/catalana/localhost:在该目录下创建itcast_hello.xml文件,在该文件中编写<Context>元素,代码如下:

 

  1. 文件名:指定当前应用的名称;

  2. docBase:指定应用的物理位置;

  3. 浏览器访问路径:http://localhost:8080/itcast_hello/index.html

(2)理解server.xml

  • <Server>:根元素,表示整个服务器的配置信息;

  • <Service>:<Server>的子元素,在<Server>中只能有一个<Service>元素,它表示服务;

  • <Connector>:<Service>的子元素,在<Service>中可以有N个<Connector>元素,它表示连接。

  • <Engine>:<Service>的子元素,在<Service>中只能有一<Engine>元素,该元素表示引擎,它是<Service>组件的核心。

  • <Host>:<Engine>的子元素,在<Engine>中可以有N个<Host>元素,每个<Host>元素表示一个虚拟主机。所谓虚拟主机就像是真的主机一样,每个主机都有自己的主机名和项目目录。例如<Host name=”localhost” appBase=”webapps”>表示主机名为localhost,这个主机的项目存放在webapps目录中。访问这个项目下的主机时,需要使用localhost主机名,项目都存放在webapps目录下。

  • <Context>:<Host>元素的子元素,在<Host>中可以有N个<Context>元素,每个<Context>元素表示一个应用。如果应用在<Host>的appBase指定的目录下,那么可以不配置<Context>元素,如果是外部应用,那么就必须配置<Context>。如果要为应用指定资源,也需要配置<Context>元素。

用户发出一个请求:http://localhost:8080/hello/index.jsp。发现是http/1.1协议,而且还是8080端口,所以就交给了处理这一请求的“服务员(处理HTTP请求的<Connector>)”,“服务员”再把请求交给了“后厨(<Engine>)”,因为请求是要一盘水煮鱼,所以由“川菜区(<Host>)”负责,因为“大老王师傅<Context>”做水煮鱼最地道,所以由它完成。

  • <Connector>:关心请求中的http、和8080;

  • < Host>:关心localhost;

  • <Context>:关心hello

(3)映射虚拟主机

我们的目标是,在浏览器中输出:http://www.itcast.cn就可以访问我们的项目。

完成这一目标,我们需要做三件事:

  • 修改端口号为80,这一点应该没有问题吧;

  • 在本机上可以解析域名为127.0.0.1,这需要修改C:\WINDOWS\system32\drivers\etc\hosts文件,添加对http://www.itcast.cn和127.0.01的绑定关系;

  • 在server.xml文件中添加一个<Host>(主机)。

  1. 修改端口号为80

  1. 绑定http://www.itcast.cn和127.0.01的绑定关系

  1. server.xml文件中添加一个<Host>

  • name=”www.itcast.cn”:指定虚拟主机名为www.itcast.cn

  • appBase=”F:/itcastapps”:指定当前虚拟主机的应用程序存放目录为F:/itcastapps。

  • 在itcastapps目录下创建名为ROOT的应用,因为一个主机只可以有一个名为ROOT的应用,名为ROOT的应用在浏览器中访问是可以不给出应用名称。

现在访问:http://www.itcast.cn看看是什么页面!

请注意,只有本机可以通过http://www.itcast.cn来访问,而其他电脑不可以!

 

三、tomcat部署项目的三种方式

3.1 直接将web项目文件件拷贝到webapps目录中

(1)将编写并编译好的web项目(注意要是编译好的,如果是 eclipse,可以将项目打成 war 包放入),放入到 webapps 中

(2)启动服务器

(3) 在浏览器输入:http://localhost:8080/项目名/访问的文件名

Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。如果你想要修改这个默认目录,可以在conf下的server.xml文件里修改Host标签里的appBase值。

这个方法实际上和在IDE开发环境里部署项目是一样的。

 3.2修改 conf/server.xml 文件

打开tomcat下conf/server.xml,在<Host> </Host>标签之间输入项目配置信息

<Context path="/WebProject" docBase="D:/WebProject" reloadable="true" />

  path:浏览器访问时的路径名

  docBase:web项目的WebRoot所在的路径,注意是WebRoot的路径,不是项目的路径。其实也就是编译后的项目

  reloadble:设定项目有改动时,tomcat是否重新加载该项目

  ②、双击 startup.bat,启动 tomcat 服务器,然后在浏览器输入访问的项目名称路径

3.3  在confCatalinalocalhost 目录下添加xml配置文件

新建名为jfinal_demo.xml文件,文件内容配置如下:

<Context path="/jfinal_demo" docBase="F:workjfinal_demoWebRoot" reloadable ="true" debug="0" privileged="true">

</Context>

Catalinalocalhost目录tomcat下载下来默认是没有的,首次启动会自动创建,也可以手动创建;

配置中可以去掉path属性,因为访问项目时的根路径只取决于XML文件的名称,如上述例子中,访问该应用程序地址如下:http://localhost:8080/jfinal_demo ;

推荐使用第三种方式,因为不需要修改tomcat默认配置,对Tomcat的侵入性最小,并且如果想取消部署,直接删除xml配置文件即可。

以上几种方法都经过本人测试,除此之外还有Tomcat热部署的方式 。

总结:

①、第一种方法比较普通,但是我们需要将编译好的项目重新 copy 到 webapps 目录下,多出了两步操作

②、第二种方法直接在 server.xml 文件中配置,但是从 tomcat5.0版本开始后,server.xml 文件作为 tomcat 启动的主要配置文件,一旦 tomcat 启动后,便不会再读取这个文件,因此无法再 tomcat 服务启动后发布 web 项目

③、第三种方法是最好的,每个项目分开配置,tomcat 将以\conf\Catalina\localhost 目录下的 xml 文件的文件名作为 web 应用的上下文路径,而不再理会 <Context>中配置的 path 路径,因此在配置的时候,可以不写 path。

通常我们使用第三种方法

 

4、常见的问题

访问html页面404 查看war包下是否有该页面

war包输出路径

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值