# web项目部署到tomcat方式总结 一:web项目最终的发布结构为:项目名为Env eclipse中项目结构图: eclipse export出的war包:上层目录为Env 文本说明: Env META-INF WEB-INF lib calsses web.xml 二:web.xml 配置 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>T</display-name> <servlet> <servlet-name>hello</servlet-name> <servlet-class>com.tomatoman.env.EnvServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/hello</url-pattern> </servlet-mapping> ........ </web-app> 三,项目部署方式 方法1: 直接把项目war包放到tomcat/webapps/ 目录下,启动tomcat访问即可。 注意:放到webapps的war包访问时会自动被tomcat解压,所以直接把war包放到tomcat的webapps下即可。 访问方式:根据web.xml的配置,http://localhost:8080/Env/hello 其中,Env为创建web项目时的项目名,hello为web.xml 配置的servlet-mapping 方法2: 修改配置文件tomcat/conf/server.xml,在server.xml 中<Host></Host> 中增加 <Context path="" docBase="/Users/gzq/Documents/web/Env" debug="0" reloadable="true"/> 其中, docBase:WEB-INF 的上一级目录 path:虚拟路径, 访问方式:根据web.xml和Context的配置,http://localhost:8080/hello 如果Context的虚拟路径path为 haha: <Context path="/haha" docBase="/Users/gzq/Documents/web/Env" debug="0" reloadable="true"/> 则访问方式为:http://localhost:8080/haha/hello 所以虚拟路径path的配决定了你项目最终的访问方式 注意: 1,war包不放在webapps下,tomcat时不会自动解压的,所以需要自己解压好,把解压后的第一级目录配置到docBase下即可 2,如果war是在webapps下,可以不修改server.xml 直接访问,但是如果仍想配置,或修改访问路径,比如域名直接访问,则可以这样配置,不需要解压war <Context path="" docBase="/Env" debug="0" reloadable="true"/> 方法3: 在conf目录中,在Catalina\localhost(此处需要注意目录的大小写)目录下新建一个XML文件,任意命名zeze.xml(但是这个xml文件的名字必须和内部Context 虚拟路径path的名字一致),zeze.xml代码如下。 <Context path="zeze" docBase="/Users/gzq/Documents/web/Env" debug="0" privileged="true"/> 访问路径:根据web.xml 和 zeze.xml 的配置:http://localhost:8080/zeze/hello 注意: 1,Catalina\localhost 目录下增加的xml文件名字必须和内部Context 虚拟路径path的名字一致,否则访问出错。 五,注意: 删除一个Web应用同时也要删除webapps下相应的文件夹和server.xml中相应的Context,还要将Tomcat的conf\catalina\localhost目录下相应的xml文件删除,否则Tomcat仍会去配置并加载。。。 总结: 1,可以认为,第一种配置方式(直接在把没有解压的war包放到webapps目录下),tomcat在启动的时候会自动在内存中为server.xml <Host></Host> 中配置 <Context path="/Env" docBase="/Env" debug="0" reloadable="true"/> 其中Env 时eclipse中创建改web项目的项目名,同时也是war包解压后的第一级目录 2,第二种和第三种方式配置更为自由,可以随意定制虚拟路径path,如果不配置,则可以用域名直接访问servlet, 3,如果采用第二种和第三种方式配置,即path为空 <Context path="" docBase="/Users/gzq/Documents/web/Env" debug="0" reloadable="true"/> 同时在项目的web.xml 中增加这么一行配置, <servlet-mapping> <servlet-name>hello</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> 则可以直接用域名的方式访问servlet:http://localhost:8080/
时间: 2024-10-08 11:12:14