在tomcat上发布javaweb应用默认在啥目录

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在tomcat上发布javaweb应用默认在啥目录相关的知识,希望对你有一定的参考价值。

参考技术A webapps。根据查询java官网得知:在tomcat上发布javaweb应用时的默认目录是webapps。Java是一门面向对象编程语言,1990年代初由詹姆斯·高斯林等人开发出Java语言的雏形,最初被命名为Oak,后随着互联网的发展,经过对Oak的改造,1995年5月Java正式发布。

搭建JavaWeb应用开发环境

下载和安装Tomcat服务器

  下载Tomcat安装程序包:http://tomcat.apache.org/,下载一个zip版本,解压到本地即完成了Tomcat的安装。

  测试是否安装成功:进入Tomcat目录,双击 bin 目录下的 startup.bat 文件启动Tomcat服务器,在浏览器中输入http://localhost:8080/,有内容出来就表示成功了。

 

 

Tomcat服务器端口的配置

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

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

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

  需要注意的是,一旦服务器中的*.xml文件改变了,则Tomcat服务器就必须重新启动,重新启动之后将重新读取新的配置信息。

 

 

Tomcat服务器虚拟目录的映射方式

  Web应用开发好后,若想供外界访问,需要把web应用所在目录交给web服务器管理,这个过程称之为虚似目录的映射。那么在Tomcat服务器中,如何进行虚拟目录的映射呢?总共有如下的几种方式:

  1、虚拟目录的映射方式一:在server.xml文件的host元素中配置(注意:在Tomcat6之后中,不再建议在server.xml文件中使用配置context元素的方式来添加虚拟目录的映射,因为每次修改server.xml文件后,Tomcat服务器就必须要重新启动后才能重新加载server.xml文件。)

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

        <!-- SingleSignOn valve, share authentication between web applications
             Documentation at: /docs/config/valve.html -->
        <!--
        <Valve className="org.apache.catalina.authenticator.SingleSignOn" />
        -->

        <!-- Access log processes all example.
             Documentation at: /docs/config/valve.html
             Note: The pattern used is equivalent to using pattern="common" -->
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />

      </Host>

  在<Host></Host>这对标签加上<Context path="/JavaWebApp" docBase="F:\\JavaWebDemoProject" />即可将在F盘下的JavaWebDemoProject这个JavaWeb应用映射到JavaWebApp这个虚拟目录上,JavaWebApp这个虚拟目录是由Tomcat服务器管理的,JavaWebApp是一个硬盘上不存在的目录,是我们自己随便写的一个目录,也就是虚拟的一个目录,所以称之为"虚拟目录"。其中,Context表示上下文,代表的就是一个JavaWeb应用,Context元素有两个属性,path:用来配置虚似目录,必须以"/"开头。docBase:配置此虚似目录对应着硬盘上的Web应用所在目录。

  使用浏览器访问"/JavaWebApp"这个虚拟目录下的1.txt这个web资源,访问结果如下:

    

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

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

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

  3、虚拟目录的映射方式三:

  在tomcat服务器的\\conf\\Catalina\\localhost目录下添加一个以xml作为扩展名的文件,xml文件的名字可以任意取,比如下面的JavaWebDemo.xml,其中context元素的path指定的路径就是实际的物理位置,而xml文件的名称就是服务器上访问的名称。

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

    http://localhost:8080/JavaWebDemo/2.txt

  使用这种方式映射虚拟目录的最大好处是修改了配置文件后不用重启Tomcat服务器

  

 

Tomcat服务器配置虚似主机

  配置虚似主机就是配置一个网站。

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

  首先,新配置一个虚拟主机,虚拟主机的name是"www.john.cn",虚拟主机"www.john.cn"现在管理着JavaWebApps文件夹下的所有web应用。当我们要访问name是"www.john.cn"的这个虚拟主机时,就可以使用"域名(www.john.cn)"去访问,注意一下appBase="F:\\JavaWebApps",这里的JavaWebApps文件夹代表的不是一个项目的根目录,而是一个存放了一个或者多个JavaWeb应用的文件夹。

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

    127.0.0.1       www.john.cn

    这里的127.0.0.1,可以替换为本机的ip地址,通过命令提示符中输入ipconfig可以查到。

  这样就可以在浏览器中进行访问了:http://www.john.cn:8080/JavaWebDemoProject/2.txt

 

 

JavaWeb应用的组成结构

  开发JavaWeb应用时,不同类型的文件有严格的存放规则,否则不仅可能会使web应用无法访问,还会导致web服务器启动报错

  

  WebRoot →Web应用所在目录,一般情况下虚拟目录要配置到此文件夹当中。

    ┝WEB-INF:此文件夹必须位于WebRoot文件夹里面,而且必须以这样的形式去命名,字母都要大写。

      ┝web.xml:配置文件,有格式要求,此文件必须以这样的形式去命名,并且必须放置到WEB-INF文件夹中。

  web.xml的格式可以直接从Tomcat中参考得到:找到Tomcat目录下的webapps\\ROOT\\WEB-INF这个目录下的web.xml文件,把这个文件拷贝到我们新建的WEB-INF文件夹中,并修改这个web.xml文件,把里面的注释删除掉,只留下如下所示的代码即可:

  web.xml :

<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
 Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<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_3_1.xsd"
  version="3.1"
  metadata-complete="true">

  <display-name>Welcome to Tomcat</display-name>
  <description>
     Welcome to Tomcat
  </description>

</web-app>

 

以上是关于在tomcat上发布javaweb应用默认在啥目录的主要内容,如果未能解决你的问题,请参考以下文章

JavaWeb应用发布及相关配置

Javaweb Tomcat 项目部署方式

JSP_1_JavaWeb

javaweb学习路线-Tomcat与Servlet-1

学习——JavaWeb02:修改端口和web项目发布

JavaWeb学习笔记—— Tomcat的目录结构