JavaWeb - Tomcat的配置信息

Posted 来世当猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaWeb - Tomcat的配置信息相关的知识,希望对你有一定的参考价值。

TOMCAT服务器的安装与配置
1.常见服务器:WebLogic(BEA)、webSphere(IBM)、Tomcat(Apache)

2.Tomcat 的下载与安装
下载地址:http://tomcat.apache.org/
安装目录不能包含中文和空格
JAVA_HOME环境变量指定Tomcat运行时所要用的jdk所在的位置,注意,配到目录就行了,不用指定到bin
端口占用问题:netstat -ano命令查看端口占用信息
Catalina_Home环境变量:startup.bat启动哪个tomcat由此环境变量指定,如果不配置则启动当前tomcat,推荐不要配置此环境变量

3.tomcat的安装配置
tomcat5要求jdk1.4以上
tomcat6要求jdk1.5以上
tomcat7要求jdk1.6以上
JAVA_HOME环境变量: 指定tomcat启动时使用的jdk所在的位置
Catalina_Home环境变量:指定tomcat在启动时启动哪个tomcat,一般不推荐配置

修改tomcat/bin/server.xml 修改默认端口为80

1.tomcat的目录结构
    bin ---- 启动和关闭需要的bat文件所在的目录
    conf --- 配置目录
    lib ---  tomcat运行时需要的jar包所在的目录
    logs --- 日志文件所在的目录
    temp --- tomcat运行时产生的临时文件存放的目录,不需要我们管理
    webapps --- 开发中最常用的目录,web应用放置到此目录下浏览器可以直接访问
    work --- 工作目录,tomcat运行时产生的工作文件存放在这个目录中

4.虚拟主机/web应用
虚拟主机:
一个tomcat可以认为是一台真实主机.在一台真实主机中可以配置多个站点,这些站点在访问者看来访问他们就像在访问各自独立的主机一样,所以我们可以认为这些站点都运行在tomcat这台真实主机当中的各自的虚拟主机当中.一个网站就可以认为是一个虚拟主机
web应用:
一个虚拟主机中会有很多的web资源,但是web资源不能直接交给虚拟主机管理,需要按照一定方式组织成web应用虚拟主机才能使用.一般来说我们会按照功能将某一功能相关的所有的web资源组织成一个web应用后再交给虚拟主机.

    web应用目录结构: 如果目录结构不合法可能会出现各种奇葩的问题.
        news
        |
        |--静态资源和JSP文件都可以直接放置在web应用的目录下,直接放在web应用下的内容,浏览器可以直接访问到
        |
        |--WEB-INF -- 可以没有,但是最好有,如果有则一定要保证他的目录结构是完整的.放置在WEB-INF目录下的所有资源浏览器没有办法直接进行访问
            |--classes -- 动态web资源运行时的class文件要放在这个目录下
            |--lib -- 动态web资源运行时所依赖的jar包要放在这个目录下
            |--web.xml -- 整个web应用的配置文件,配置主页/Servlet的映射/过滤器监听器的配置都需要依赖这个文件进行

启动Tomcat服务器

    双击 bin 目录下的 startup.bat 文件启动Tomcat服务器
技术分享    
测试Tomcat服务器

    打开浏览器,输入http://localhost:8080/,能显示如下界面代表安装成功。
    技术分享

一、Tomcat服务器端口的配置

  Tomcat的所有配置都放在conf文件夹之中,里面的server.xml文件是配置的核心文件。

  如果想修改Tomcat服务器的启动端口,则可以在server.xml配置文件中的Connector节点进行的端口修改

例如:将Tomcat服务器的启动端口由默认的8080改成8081端口

Tomcat服务器启动端口默认配置

 <Connector port="8080" protocol="HTTP/1.1"
                connectionTimeout="20000"
               redirectPort="8443" />

将Tomcat服务器启动端口修改成8081端口

 <Connector port="8081" protocol="HTTP/1.1"
                connectionTimeout="20000"
               redirectPort="8443" />

这样就把原来默认Tomcat默认的的8080端口改成了8081端口了,需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。因为已经在server.xml文件中将Tomcat的启动端口修改成了8081,所以Tomcat服务器启动时就以8081端口启动了,如下图所示:

技术分享
二、Tomcat服务器虚拟目录的映射方式

  Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。那么在Tomcat服务器中,如何进行虚拟目录的映射呢?总共有如下的几种方式:
2.1、虚拟目录的映射方式一:在server.xml文件的host元素中配置
找到server.xml文件的host元素,如下图所示:
技术分享

在这对标签加上即可将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的一个目录,也就是虚拟的一个目录,所以称之为”虚拟目录”,代码如下:

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">

              <Context path="/JavaWebApp" docBase="E:\JavaWebDemoProject" />

其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,

  Ⅰ.path:用来配置虚似目录,必须以”/”开头。

  Ⅱ.docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。

  使用浏览器访问”/JavaWebApp”这个虚拟目录下的1.jsp这个web资源,访问结果如下:
技术分享

1.jsp可以正常访问,这说明我们已经成功地将将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上了,访问”/JavaWebApp/1.jsp”就相当于访问”F:\JavaWebDemoProject\1.jsp”

注意:在Tomcat6之后中,不再建议在server.xml文件中使用配置context元素的方式来添加虚拟目录的映射,因为每次修改server.xml文件后,Tomcat服务器就必须要重新启动后才能重新加载server.xml文件。在Tomcat服务器的文档http://localhost:8080/docs/config/context.html中有这样的说明:

It is NOT recommended to place elements directly in the server.xml file. This is because it makes modifying the Context configuration more invasive since the main conf/server.xml file cannot be reloaded without restarting Tomcat.

Individual Context elements may be explicitly defined:

In an individual file at /META-INF/context.xml inside the application files. Optionally (based on the Host’s copyXML attribute) this may be copied to CATALINABASE/conf/[enginename]/[hostname]/andrenamedtoapplicationsbasefilenameplusa.xmlextension.Inindividualfiles(witha.xmlextension)intheCATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application’s META-INF directory.
Inside a Host element in the main conf/server.xml.

2.2、虚拟目录的映射方式二:让tomcat服务器自动映射

tomcat服务器会自动管理webapps目录下的所有web应用,并把它映射成虚似目录。换句话说,tomcat服务器webapps目录中的web应用,外界可以直接访问。

  例如:把E盘下的JavaWebDemoProject这个JavaWeb应用直接copy到tomcat服务器webapps目录中,如下图所示:
  
技术分享
此时Tomcat服务器就会自动为JavaWebDemoProject这个JavaWeb应用映射一个同名的虚拟目录”/JavaWebDemoProject”,然后就可以使用浏览器访问这个JavaWeb应用的资源了,如下图所示:
技术分享

2.3、虚拟目录的映射方式三

  参考Tomcat服务器文档:

  In individual files (with a “.xml” extension) in the $CATALINA_BASE/conf/[enginename]/[hostname]/ directory. The context path and version will be derived from the base name of the file (the file name less the .xml extension). This file will always take precedence over any context.xml file packaged in the web application’s META-INF directory.
意思就是:在tomcat服务器的\conf\Catalina\localhost目录下添加一个以xml作为扩展名的文件,xml文件的名字可以任意取,比如下面的aa.xml,注意这一句话”The context path and version will be derived from the base name of the file”,这一句话的意思翻译过来就是”context元素的path属性源自于是这个xml文件的名字”,上面提到过,Context元素的path属性是用来配置虚似目录的名称的,所以虚似目录的名称就是这个xml文件的名称。

$CATALINA_BASE指的就是tomcat服务器根目录,[enginename]指的是Tomcat服务器使用的引擎名称,Tomcat使用的引擎是Catalina
技术分享

在aa.xml文件中添加Context元素映射JavaWeb应用,代码如下:

 <Context docBase="F:\JavaWebDemoProject" />

注意:在Context元素中并没有指明path属性来设置虚拟目录的名称,那么”F:\JavaWebDemoProject”映射的虚拟目录名称是神马呢,就是当前正在编辑的这个xml文件的名称aa。

技术分享
使用这种方式映射虚拟目录的最大好处是修改了配置文件后不用重启Tomcat服务器,比如将aa.xml修改成bb.xml,Tomcat服务器会自动Undeploying context [/aa],然后自动信息: Deploying configuration descriptor D:\apache-tomcat-7.0.53\conf\Catalina\localhost\bb.xml

三、Tomcat服务器配置虚似主机

配置虚似主机就是配置一个网站。
  在Tomcat服务器配置一个虚拟主机(网站),需要修改conf文件夹下的server.xml这个配置文件,使用Host元素进行配置,打开server.xml,可以看到Tomcat服务器自带的一个名称为localhost的虚拟主机(网站),如下图所示:
  技术分享
  
平时我们将开发好的JavaWeb应用放到webapps文件夹下,然后就可以使用”http://localhost:端口号/JavaWebAppName”的方式去访问了,其实访问的就是name是”localhost”的那台虚拟主机(Host),这台虚拟主机管理webapps文件夹下的所有web应用。

例如:http://localhost:8080/JavaWebDemoProject/1.jsp,这个URL地址访问的就是名称是localhost的那台虚拟主机下的JavaWebDemoProject这个应用里面的1.jsp这个web资源。
  我们可以使用如下的方式配置一个虚拟主机,例如:   

<Host name="www.gacl.cn" appBase="F:\JavaWebApps">

</Host>

这里我们新配置一个虚拟主机,虚拟主机的name是”www.gacl.cn”,虚拟主机”www.gacl.cn”现在管理着JavaWebApps文件夹下的所有web应用,平时我们在互联网上使用域名”www.baidu.com”访问百度的网站时,其实就是在访问一个名称是”www.baidu.com”的虚拟主机,所以当我们要访问name是”www.gacl.cn”的这个虚拟主机时,就可以使用”域名(www.gacl.cn)”去访问,注意一下appBase=”F:\JavaWebApps”,这里的JavaWebApps文件夹代表的不是一个项目的根目录,而是一个存放了一个或者多个JavaWeb应用的文件夹,如下图所示:

技术分享

就好像是Tomcat服务器的webapps文件夹一样,里面存放了很多的JavaWeb应用

技术分享

3.2、windows系统中注册域名

配置的主机(网站)要想通过域名被外部访问,必须在DNS服务器或windows系统中注册访问网站时使用的域名,找到”C:\Windows\System32\drivers\etc”目录下的hosts文件,如下图所示:

技术分享

编辑这个文件,将新添加的网站的域名和IP地址绑定在一起,这样我们就可以在浏览器中使用www.gacl.cn这个域名去访问name是www.gacl.cn那个虚拟主机里面管理的那些web应用了

技术分享

使用浏览器通过域名”www.gacl.cn”访问”www.gacl.cn”这个虚拟主机下的JavaWebDemo1这个web应用下的1.jsp这个web资源,”www.gacl.cn”这个虚拟主机开放了一个8080端口,用户只能通过这个8080端口去访问JavaWebDemo1这个web应用下的1.jsp这个web资源

技术分享





































以上是关于JavaWeb - Tomcat的配置信息的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb入门环境搭建

javaWeb项目已经通过myeclipse部署到tomcat webapps中,但是项目文件夹中的jsp页面却访问不到?

《java精品毕设》基于javaweb宠物领养平台管理系统(源码+毕设论文+sql):主要实现:个人中心,信息修改,填写领养信息,交流论坛,新闻,寄养信息,公告,宠物领养信息,我的寄养信息等(代码片段

JavaWeb配置外部应用的两种方式

Eclipse下配置javaweb项目快速部署到tomcat

Intellij IDEA配置Tomcat并创建JavaWeb项目