您的位置:首页 > 运维架构 > Tomcat

Tomcat部署web项目常用方式

2016-05-10 14:32 513 查看
# 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/

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: