欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

web应用程序的部署

程序员文章站 2022-07-15 12:00:05
...

一、配置任意目录下的web应用程序
一个Web容器可以运行多个web应用程序,每个web应用程序都有一个唯一的上下文根。对于Tomcat来说,%CATALINA_HOME(安装路径)%\webapps目录下的每一个子目录都是一个独立的Web应用程序,这个子目录的名字就是这个Web应用程序的上下文根。

在部署和访问Web应用程序时,通过上下文路径来区分不同的Web应用程序。
上下文路径以斜杠(/)开头,但结束没有斜杠;在默认上下文中,这个路径将是空字符串”“。(例如:localhost:8080/)

将开发的Web应用程序放在webapps目录下,当tomcat启动时,会自动加载webapps目录下的web应用程序,所以在这个目录下的web应用程序不需要进行其他的配置就可以直接访问。

例如:在webapps目录下有一个ROOT目录,Tomcat为ROOT目录生成的上下文路径是空字符串(”“),这个web应用程序将作为虚拟主机的默认Web应用程序,负责处理所有的没有分配给其他web应用程序的请求。
web应用程序的部署
在 bin目录下,启动Tomcat。点击startup启动。
web应用程序的部署
web应用程序的部署
在浏览器访问:localhost:8080/,会跳转到主页
web应用程序的部署

在开发阶段,可以建立自己的开发目录,完成之后,才部署到webapps目录。通过配置虚拟目录,虚拟目录所对应的真实目录可以在任何路径下。这主要是在XML配置文件中通过<\Context>元素的设置来完成。
web应用程序的部署
配置的方法有三种:
1、配置conf/server.xml文件中的<\Host>元素下,做如下配置:

<Host>
       <Context path="/servletTest" docBase="D:\servletTest\src\main\webapp" reloadable="true"/>
  </Host>

docBase属性指定Web应用程序的真实路径。但是这个路径不要写成“D:\servletTest”,否则找不到资源文件。要深入到webapp目录下。但是,在访问的时候,直接输入”http://localhost:8080/servletTest“就可以直接访问。

reloadable属性设置为true,Tomcat在运行时会自动监测Servlet类的改动,如果发现有类被更新,Tomcat服务器将自动重新加载该Web应用程序。

但是,不建议直接在server.xml文件中配置<\Context>元素,因为server.xml作为Tomcat的主要配置文件,一旦Tomcat启动后,将不会再读取这个文件。

2、在%CATALINA_HOME%conf/Catalina/localhost/目录下新建一个xml文件进行配置。(该目录刚开始没有,执行localhost:8080之后,会自动生成)。

servletTest.xml (必须是应用程序的名字作为文件名)

<?xml version='1.0' encoding='utf-8'?>
<Context docBase="D:\servletTest\src\main\webapp" reloadable="true"/>

Tomcat将以XML文件的文件名作为Web应用程序的上下文路径,而不管path属性指定的路径。因此可以不用path属性。
Tomcat加载一个Web应用程序的时候,首先读取这个文件。然后再读取WEB-INF/web.xml文件。

3、在Web应用程序的META-INF\context.xml文件中进行配置。

如果没有在任何文件中设置<\Context>元素,那么Tomcat会自动生成Context元素。路径以斜杠开始,如果是空字符串,那么访问ROOT。

WAR文件
利用WAR文件可以把servlet类文件和相关的资源集中在一起进行发布。在这个过程中,Web应用程序就不是按照目录层次结构进行部署,而是把WAR文件作为部署单元来使用。

一个WAR文件就是一个Web应用程序,建立WAR文件就把整个web应用程序(不包括web应用程序层次结构的根目录)压缩起来,指定一个.war扩展名。

在命令提示符中,执行下面的命令(要在项目的webapp下打包,只包括一些资源文件,不包括java源码文件):
web应用程序的部署
将该WAR包复制到%CATALINA_HOME%/webapps目录下。
启动Tomcat后,会自动解压。

WAR文件与JAR文件的区别:
JAR文件的目的是把类和相关的资源封装到压缩的归档文件中,
而对于WAR文件来说,一个WAR文件代表了一个Web应用程序,它可以包括Servlet、Html页面、java类,以及组成web应用程序的其他资源,而不仅仅是类的归档文件。

开发阶段不适合使用WAR文件,因为经常需要添加或删除Web应用程序的内容。在产品发布阶段,可以使用WAR文件,几乎没有什么改动。

<\servlet-mapping>元素及其子元素
子元素<\url-pattern>指定对应于Servlet的URL路径,该路径是相对于Web应用程序上下文跟的路径。可以出现多次

<url-pattern>/hello</url-pattern>
<url-pattern>/hello-world</url-pattern>

匹配规则:
1、请求的路径和Servlet映射的路径进行精确匹配
2、容器试着匹配最长的路径前缀,以斜杠(/)为路径分隔符,选择最长匹配的servlet来处理请求
3、如果请求的URL路径最后有扩展名,那会试着匹配处理这个扩展名的servlet
4、如果前面都没有匹配,容器会调用默认的servlet来对请求进行处理。

相关标签: web应用