tomcat 三种部署方式以及server.xml文件的几个属性详解

Posted cainiao-shun666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tomcat 三种部署方式以及server.xml文件的几个属性详解相关的知识,希望对你有一定的参考价值。

一、直接将web项目文件件拷贝到webapps目录中

  这是最常用的方式,Tomcat的Webapps目录是Tomcat默认的应用目录,当服务器启动时,会加载所有这个目录下的应用。如果你想要修改这个默认目录,可以在conf下的server.xml文件里修改Host标签里的appBase值。

  这个方法实际上和在IDE开发环境里部署项目是一样的。

  用此方法的访问路径为http://localhost:8080/webname

二、修改Server.xml文件

  在conf下的server.xml文件里找到Host标签,在里面添加如下代码:

1 <Context path="/jfinal_demo" docBase="F:\work\jfinal_demo\WebRoot"  reloadable ="true" debug="0" privileged="true">
2 </Context> 

  path:是访问时的根地址,表示访问的路径,可以自定义,如上述例子中,访问该应用程序地址如下:http://localhost:8080/jfinal_demo;

  docbase:表示应用程序的路径,docBase可以使用绝对路径,也可以使用相对路径,相对路径相对于webapps ;

  reloadable:表示可以在运行时在classes与lib文件夹下自动加载类包。这个属性在开发阶段通常都设为true,方便开发;在发布阶段应该设置为false,提高应用程序的访问速度 ;

  其他属性参见相关文档。

三、 在conf\Catalina\localhost 目录下添加xml配置文件

  新建名为jfinal_demo.xml文件,文件内容配置如下:

1 <Context path="/jfinal_demo" docBase="F:\work\jfinal_demo\WebRoot"  reloadable ="true" debug="0" privileged="true">
2 </Context> 

  Catalina\localhost目录tomcat下载下来默认是没有的,首次启动会自动创建,也可以手动创建;

      配置中可以去掉path属性,因为访问项目时的根路径只取决于XML文件的名称,如上述例子中,访问该应用程序地址如下:http://localhost:8080/jfinal_demo ;

      推荐使用第三种方式,因为不需要修改tomcat默认配置,对Tomcat的侵入性最小,并且如果想取消部署,直接删除xml配置文件即可。

四、tomcat配置中的 autodeploy 和reloadable的区别是什么?

  1.替换WEB-INF/lib目录中的jar文件或WEB-INF/classes目录中的class文件时,reloadable="true"会让修改生效(但代价不小),该选项适合调试。

  2.在webapps目录中增加新的目录、war文件、修改WEB-INF/web.xmlautoDeploy="true"会新建或重新部署应用,该选项方便部署。

五、怎么去除应用名访问,以及server.xml文件中Context节点的path属性详解

  详解path之前讨论一下绝对路径,修改path会影响绝对路径对资源的访问,为什么这么说呢,下面讲完了path属性在解释;

  绝对路径在服务端和浏览器端区别:

  1) 服务端(jsp中java代码,servlet,jsp标签中的路径:因为jsp标签是在服务端解析的):绝对路径的根地址(及 / 开头代表的)是localhost:8080/webApp(应用部署名),转发是服务器端,所以绝对路径不用写应用名,绝对路径为:/ (开头) + 具体的路径

  2) 浏览器端(jsp页面:引入css,js,图片等等,js中的绝对路径(例如ajax中的url也属于浏览器端)):绝对路径的根地址(及 / 开头代表的)是localhost:8080没有到应用名,所以浏览器端写绝对路径需要:/(开头)+应用名 + / +具体的路径,如果使用request.getContextPath()获得的应用名为:/+应用名,第一个斜杠就不用写了,从第二个 / 开始写;链接(a标签,图片img标签),表单提交,重定向都属于浏览器端,所以这些url的绝对路径为 (/  + 应用名)开始写,也就是request.getContextPath() + / +具体的路径;

       springmvc中@RequestMapping注解中的url可以以 ‘/‘ 开头,则是绝对路径,也可以不要 ‘/‘ 则是相对路径,推荐使用绝对路径; 

  下面讲解path属性:

  1)tomcat 不要应用名访问设置(server.xml修改<Host>中的子节点) 

 

以上是关于tomcat 三种部署方式以及server.xml文件的几个属性详解的主要内容,如果未能解决你的问题,请参考以下文章

tomcat部署应用三种方式

Tomcat热部署的三种方式

Tomcat热部署的三种方式

三种部署方式

Tomcat 部署项目的三种方法

Tomcat/conf/server.xml文件中docBase和path的说明