JavaWeb开发的目录结构,Tomcat下部署应用的三种方
分类:编程应用

要将Servlet/JSP应用程序部署到Tomcat时,需要显示或者隐式的定义一个Tomcat Context,每一个Tomcat Context都代表一个web应用程序。

Tomcat 的管理程序

  • Tomcat 提供了一个管理程序:manager,用于部署到 Tomcat 服务器中的 web 应用程序

  • 要访问 manager web 应用程序,需要添加具有管理员权限的账号,编辑 conf 目录下的 tomcat-users.xml 文件,添加 manager 角色,设置用户名和密码

      <role rolename="manager"/>
      <user  username="" password="" roles="manager"  />
    

具体写法,还是要去看页面的说明。

显式定义有两种方式

  • 在Tomcat的conf/Catalina/localhost目录下创建一个XML文件,文件名很重要,因为他就是Context路径名,例如以下应用程序的访问地址就是:http://localhost:8080/test
<!-- test.xml --><Context docBase="C:/apps/test" reloadable="true">

docBase是里面唯一必要的属性,用来定义应用程序的位置。reloadable属性是可选的,如果为true,那么只要应用程序中Java类文件或其他资源有任何增删改,那么Tomcat都会侦测到,然后会重新加载应用程序,一般在只开发测试期间建议这么做。当把该XML文件(也就是Tomcat Context定义文件)添加到指定目录时,Tomcat就会自动加载应用程序,删除该XML文件时,Tomcat就会自动卸载该应用程序。

  • 另一种方式是在conf/server.xml文件中找到Host元素,然后在其下创建一个Context子元素,与前一种方式不同的地方在于这种配置方式需要定义path属性,例如:
<Context path="/test" docBase="C:/apps/test" reloadable="true">

一般来说不建议通过server.xml来管理Context,因为当修改了server.xml文件后,需要重启Tomcat才能生效

Web 程序结构

  • 一个 web 应用程序是由一组 Servlet,HTML 页面,类,以及其它的资源组成的运行在 web 服务器上的完整的应用程序,以一种结构化的有层次的目录形式存在
  • 组成 web 应用程序的这些文件要部署在相应的目录层次中,根目录代表整个 web 应用程序的”根”
  • 通常将 web 应用程序的目录放在 webapps 目录下,在 webapps 目录下的每一个子目录都是一个独立的 web 应用程序,子目录的名字就是 web 应用程序的名字,也就是 web 应用程序的“根”。用户通过 web 应用程序的”根”来访问 web 应用程序中的资源
  • Servlet 规范中定义了 web 应用程序的目录层次:

图片 1

微信公众号:JavaWeb架构师

隐式部署的方式

  • 通过将一个war文件或者整个应用程序复制到Tomcat的webapps目录下即可

几点说明:

  • WEB-INF目录下的classes和lib目录都可以存放Java的类文件(含包文件),在Servlet容器运行时,Web应用程序的类加载器将首先加载classes目录下的,其次才是lib目录下的类。如果这两个目录下存在同名的类,起作用的将是classes目录下的类
  • WEB-INF 是一个特殊的目录(所有字母都要大写)。这个目录并不属于Web应用程序可以访问的上下文路径的一部分,对客户端来说,这个目录是不可见的。但该目录下的内容对于Servlet代码是可见的

更多配置可参考

Tomcat8 Context详细配置方式

配置任意目录下的Web应用程序

不用一定非要放在webapps下面。

  • 在Web服务器中可以配置虚拟目录,而虚拟目录所对应的真实目录可以在任何路径下。
  • 在Tomcat服务器中,主要在 XML 配置文件中通过< Context>元素的设置来完成的。一个< Context>元素就表示一个Web应用程序,运行在特定的虚拟主机中。
  • < Context>元素是< Host>元素的子元素,可以在confserver.xml文件中设置Context元素。
  • < Context>元素的常用属性:
![](https://upload-images.jianshu.io/upload_images/8244809-5037c7421b9f20b4)

微信公众号:JavaWeb架构师
  • < Context>元素是< Host>元素的子元素,可以在confserver.xml文件中设置Context元素。
![](https://upload-images.jianshu.io/upload_images/8244809-520fcee949d73e5b)

微信公众号:JavaWeb架构师
  • 使用docBase属性指定Web应用程序的真实路径。将属性reloadable设置为true,Tomcat在运行时会自动监测Servlet类的改动,如果发现有类被更新,Tomcat服务器将自动重新加载该Web应用程序。这样,在开发时,就不需要频繁重启Tomcat了

  • 还可以在conf目录下依次创建Catalinalocalhost目录,然后在localhost目录下为 test 这个Web应用程序建立 test.xml 文件,编辑这个文件输入以下内容

![](https://upload-images.jianshu.io/upload_images/8244809-ee1cd287ab96402d)

微信公众号:JavaWeb架构师
  • 从Tomcat 5开始,不建议直接在server.xml文件中配置<Context>元素,因为server.xml文件作为Tomcat的主要配置文件,一旦Tomcat启动后,将不会再读取这个文件,因此无法在Tomcat服务器启动时发布Web应用程序。如果在其他地方配置<Context>元素,那么在Tomcat运行时,也可以发布Web应用程序。

  • 从Tomcat 5.5开始,在confCatalinalocalhost目录下创建XML配置文件来配置Web应用程序(xml文件名字自己取,会出现在Tomcat的管理中),Tomcat将以XML文件的文件名将作为Web应用程序的上下文路径,而不理会在<Context>元素的path属性中指定的上下文路径是什么。由于Tomcat 5.5之后的版本是以XML配置文件的文件名作为Web应用程序的上下文路径的,因此在配置<Context>元素时,可以不使用path属性。

  • 添加过去之后,一是可以直接访问这个项目了(不用拷贝到webapps下面去),二是可以使用虚拟名称进行访问(/test是虚拟的,localhost:8080/xml文件名)。

![](https://upload-images.jianshu.io/upload_images/8244809-0970ee87f2f908bb)

微信公众号:JavaWeb架构师

其它

  • 源码下载
关注下方公众号,回复:javaweb_course.code
  • 欢迎加入交流群:451826376

  • 更多信息:www.itcourse.top

图片 2

完整教程PDF版本下载

本文由正版必中一肖图发布于编程应用,转载请注明出处:JavaWeb开发的目录结构,Tomcat下部署应用的三种方

上一篇:没有了 下一篇:多表关联,MyBatis快速入门
猜你喜欢
热门排行
精彩图文