首页 > 其他分享 >WEB应用的目录结构及其在TOMCAT容器中的发布

WEB应用的目录结构及其在TOMCAT容器中的发布

时间:2023-08-09 20:44:06浏览次数:45  
标签:xml WEB TOMCAT web 容器 应用 目录

 

1. WEB应用的目录结构
   Servlet规范规定了JAVA WEB应用必须采用固定的目录结构,其应用的配置信息存放于WEB-INF/web.xml中,Servlet容器从中读取配置信息。其基本目录结构如下:

 


   其中WEB-INF目录下的文件只能被服务器端的组件访问,浏览器端无法直接访问。Servlet容器的类加载器优先加载classes下的类,再加载lib下的jar文件,同名情况下,classes目录的类优先。

 

1.1 web.xml文件

   web.xml文件是Java web应用的发布描述性文件,Servlet容器加载和启动应用时会读取此文件。以下为在web.xml里定义servlet类的形式:


   web.xml中的<servlet>元素用于定义Servlet类。其子元素如下:

 

 

 

 

<servlet-mapping>元素为Servlet映射一个URL,<url-pattern>子元素即访问Servlet的相对URL路径。<welcome-file-list>元素为WEB应用的默认主页。
   如上图配置,浏览器为了访问mypack.DispatcherServlet类,可以通过<url-pattern>里的/dispatcher来访问,比如浏览器访问http://localhost:8080/helloapp/dispatcher ,此时,从/dispatcher==><url-pattern>==><servlet-mapping>==><servlet-name>==><servlet-class>寻找,即可确定需要访问的类为mypack.DispatcherServlet类,然后TOMCAT类加载器再按以下顺序加载:

  • WEB-INF/classes
  • WEB-INF/lib
  • TOMCAT的lib目录直接查找
  • TOMCAT的lib目录的JAR文件中查找。

2. TOMCAT的目录结构

 

 

 

2.1 默认方式发布java web应用

   直接将web应用复制到<CATALINAHOME>/webapps目录下。默认情况下,此目录中所有WEB应用运行在名为localhost的虚拟主机中,此localhost虚拟主机运行在名为Catalina的Engine组件中。(此为TOMCAT的conf/server.xml文件中的默认定义。也可以先打包再将打包文件直接放到<catalinahome>/webapps目录下。TOMCAT服务器在启动后将自动加载war文件并展开(通过TOMCAT的server.xml文件中<HOST>参元素的unpackWARs控制)WEB应用的目录结构文件可以通过jar 命令打包成war文件。比如:在D:\web目录下执行jar cvf D:\web.war *,则代表将D:\web目录下所有文件打包为目标文件web.jar ,位于D盘下。展开时可使用 jar xvf D:\web.war 。jar 命令参数如下:

 

 

2.2 按TOMCAT的元素发布WEB应用

   Context元素主要属性如下:

 

 


   TOMCAT加载一个应用时,按以下顺序查找应用的元素:

  • <catalina_home>/conf/context.xml ,适用于所有web应用;
  • <catalina_home>/conf/engineName/hostName/context.xml.default.两个Name分别是<Engine>与<Host>的name属性。此文件适用于当前虚拟主机下的所有web应用。
  • <catalina_home>/conf/engineName/hostName/contextpath.xml. contextpath代表单个Web应用的URL入口。
  • WEB应用的META-INF/context.xml。
  • <catalina_home>/conf/server.xml中的元素中查找<Context>子元素。该<Context>元素只适用于单个Web应用。


以第四种为例,可如下配置:

 

如果没有为WEB应用配置T0MCAT的Context元素,则TOMCAT提供默认的Context组件,如默认方式发布时即提供默认的Context组件。

2.3 配置TOMCAT的虚拟主机

   <catalina_home>/conf/server.xml文件中可以在<Host>元素中定义虚拟主机,并对其命别名.

 

 

<Host>元素属性如下:


web应用的目录要放在定义的虚拟主机的appBase目录下,比如:appBase: D:\webapps,则helloapp整个web目录路径为D:\webapps\helloapp. (定义虚拟机下的WEB应用的Context元素中的docBase是相对于虚拟机的appBase的。)每个虚拟主机都有一个默认web应用,其根目录为ROOT.如果要设置其默认应用,则Context元素中的path属性应定义为path="".
   要使虚拟主机的定义生效,还需要在TOMCAT部署的主机上进行IP地址映射:

 

  • 调整C:\Windows\System32\drivers\etc\hosts文件属性-安全-编辑,设置WINDOWS用户完全控制。

 

 

  • 记事本打开hosts文件,添加虚拟主机与本地主机的IP映射。

 


127.0.0.1 与::1分别为IPv4与IPv6的IP地址。

 

参考文档:Tomcat与Java Web开发技术详解 www.javathinker.net

标签:xml,WEB,TOMCAT,web,容器,应用,目录
From: https://www.cnblogs.com/rogerfederer/p/17617966.html

相关文章

  • Python | 函数、数据容器
    1.函数函数:是组织好的,可重复使用的,用来实现特定功能的代码段。1.1简单案例重复使用计算字符串的长度str1="heystar"str2="python"str3="abcd"count=0for_instr1:count+=1print(f"字符串{str1}的长度是:{count}")count=0for_instr2:coun......
  • 软件测试|web自动化测试神器playwright教程(三十)
    前言我们在进行自动化工作中,还会遇到表格的问题,比如下面的情况:如果我们想要获取表格内的数据,就需要我们先定位表格内的元素。table表格场景我们可以从表格结构中发现,table页面有这几个明显的标签:table、tr、th、tdtable标示一个表格tr标示这个表格的一行th定义表头......
  • 软件测试|web自动化测试神器playwright教程(三十一)
    前言我们都知道selenium可以操作命令行打开的Chrome浏览器,并且可以加载本地数据,因此我们可以绕过部分网站的登录步骤,直接对网站进行操作。如果我们不加任何参数,playwright打开的浏览器就是一个无痕浏览器,一般情况下,对我们测试人员来说,这一点并不影响我们的使用。但是playwright......
  • 软件测试|web自动化测试神器playwright教程(三十三)
    前言我们在使用selenium进行web自动化测试工作时,有时需要通过添加显式等待的方式,判断元素是否可见或者是否可以点击,其实这些元素属性也可以用于断言中,playwright同样可以去获取元素的状态,用于我们的后续操作或者断言中。本篇文章就来给大家介绍一下playwright对元素状态的判断。......
  • 软件测试|web自动化测试神器playwright教程(三十二)
    前言我们之前介绍过,我们在本地安装playwright时,默认会下载chromium,firefox和webkit浏览器,当然playwright不只支持下载这3个浏览器,还支持下载chrome、chrome-beta、msedge、msedge-beta、msedge-dev浏览器。下载浏览器在之前的教程中,我们介绍过,运行playwrightinstall命令会......
  • 软件测试|web自动化测试神器playwright教程(三十四)
    前言selenium有一个爬虫特别喜欢的功能,就是driver.page_source功能,它可以打印整个html页面的内容,我们可以从整个页面的内容中提取出我们想要的内容,playwright同样支持打印整个html页面的内容。获取完整页面html内容playwright提供了page.content()方法来获取页面内容,示例如下:......
  • 容器技术与Docker:打造一致的应用部署环境
    近年来,容器技术已成为IT界的热门话题。其中,Docker表现尤为出色,引领了这场技术革命。但是,什么是容器?Docker又是如何工作的呢?1.什么是容器?容器是一种轻量级、独立的、可执行的软件包,包含了运行应用所需的一切:代码、运行时、系统工具、系统库、设置。容器化的应用可以在几乎任何环境......
  • Weblogic WLS Core Components 反序列化命令执行漏洞(CVE-2018-2628)
    Vulhub-Docker-Composefileforvulnerabilityenvironment1、介绍名称:WeblogicWLSCoreComponents反序列化命令执行漏洞(CVE-2018-2628)编号:CVE-2018-2628原理:应用:Weblogic 版本:Weblogic10.3.6.0,Weblogic12.1.3.0,Weblogic12.2.1.2,Weblogic12.2.1.32、测试2.......
  • 老杜 JavaWeb 讲解(二十) ——Listener监听器
    (十八)Listener监听器引子:静态代码块packagecom.zwm.javaweb.servlet;/***@author猪无名*@date2023/8/81347*discription:*/publicclasstest2{//静态代码块在类加载时执行,并且只执行一次。//这个语法很简单,但什么时候用?很疑惑//假如,你希......
  • web后端有前途吗
    1、后端工程师有前途吗?2、后端和前端哪个前景好3、后端的就业前景怎么样?4、web前端与后端工资对比是怎样的?哪个发展前景比较好?5、web前端好找工作还是后端好找工作,本人自学2个月前端了和后端了。现后端工程师有前途吗?发展前景不错,可以做模块工程师和顶层工程师,模块......