在Tomcat中有四种部署Web应用的方式,简要的概括分别是: (1)利用Tomcat自动部署 (2)利用控制台进行部署 (3)增加自定义的Web部署文件(%Tomcat_Home%\conf\Catalina\localhost\AppName.xml) (4)手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用 第一种方式:利用Tomcat自动部署 利用Tomcat自动部署方式是最简单的、最常用的方式。若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\*,只要将一个Web应用的WebContent级的AppName直接扔进%Tomcat_Home%\webapps文件夹下,系统会把该web应用直接部署到Tomcat中。所以这里不再赘述。 第二种方式:利用控制台进行部署 若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\*,利用控制台进行部署的方式如下:进入tomcat的manager控制台的deploy区域——在Context path中键入"XXX"(可任意取名)——在WAR or Directory URL:键入D:\workspace\WebApp\AppName (表示去寻找此路径下的web应用)——点击deploy按钮。 然后在%Tomcat_Home%\webapps路径下将会自动出现一个名为XXX的文件夹,其内容即是D:\workspace\WebApp\AppName的内容,只是名字是XXX而已(这就是前面在Context path键入XXX的结果)。 以上说明利用控制台进行部署的实质仍然是利用Tomcat的自动部署。 第三种方式:增加自定义的Web部署文件 若一个web应用结构为D:\workspace\WebApp\AppName\WEB-INF\*,这种部署方式稍微复杂一点,我们需要在%Tomcat_Home%\conf路径下新建一个文件夹catalina——再在其中新建一个localhost文件夹——最后再新建一个XML文件,即增加两层目录并新增XML文件:%Tomcat_Home%\conf\Catalina\localhost\web应用配置文件.xml ,该文件就是部署Web应用的配置文件。例如,我们新建一个%Tomcat_Home%\conf\Catalina\localhost\XXX.xml,该文件的内容如下: [html]view plaincopy
注意: (1)以上代码中的workDir表示将该Web应用部署后置于的工作目录(Web应用中JSP编译成的Servlet都可在其中找到),如果使用的Eclipse作为IDE,一般可人为设置在WebApp的work目录下。 如果自定义web部署文件XXX.xml中未指明workdir,则web应用将默认部署在%Tomcat_Home%\work\Catalina\localhost\路径下新建的以XXX命名的文件夹下。(Web应用中JSP编译成的Servlet都可在其中找到) (2)Context path即指定web应用的虚拟路径名。docBase指定要部署的Web应用的源路径。 其实开发者可以使用安装有Tomcat插件eclipse自动创建部署文件来部署Web应用而不必再手动建立该文件,方法如下: 1. 打开Eclipse——打开菜单栏window选择preference(首选项)——左侧选择Tomcat,如下图示: 2. 可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Context files增加自定义部署文件的形式部署web应用——然后Contexts directory中指定上述文件的上级目录(即%Tomcat_Home%\conf\Catalina\localhost)——点击Apply或OK。 3. 完上述步骤,再选中Web项目右键点击properties(属性)——选择右侧的Tomcat ,如下图所示: 4. 勾上"Is a Tomcat project"前的checkbox,将项目关联至Tomcat。 在Context name中填入XXX,即Web应用自定义部署文件名和Context path名。 在Subdirectory to set as web application root (optional)中填入要部署的Web应用的实际路径(即WEB-INF上级目录)。 注意:Eclipse会自动地将workdir设置在Workspace\WebApp\work下。 如此便自动创建了%Tomcat_Home%\conf\Catalina\localhost\XXX.xml文件。启动Tomcat 即可自动部署Web应用。 第四种方式:手动修改%Tomcat_Home%\conf\server.xml文件来部署web应用 此方法即打开%Tomcat_Home%\conf\server.xml文件并在其中增加以下元素: [html]view plaincopy
然后启动Tomcat即可。 当然如果使用Eclipse,在Eclipse中的设置也有改变:打开菜单栏window选择preference(首选项)——左侧选择Tomcat——可以看到上图中高亮画出的Context declaration mode(Context 声明模式)中选择以Server.xml文件来部署web应用。 转自 https://www.cnblogs.com/xiohao/p/3689832.html eclipse里tomcat配置选项详解今天用Mercurial将<workspace>\Servers\Tomcat v6.0 Server at localhost-config以及 <workspace>\.metadata\.plugins\org.eclipse.wst.server.core纳入版本控制,监控了Eclipse JEE在修改Server Options的时候到底干了些啥。。 默认的配置如下: (1)serve modules without publishing: 勾选 上后会修改Servers/Tomcat v6.0 Server at localhost-config/servers.xml中的saveSeparateContextFiles=true 同时将tmp0/conf/server.xml中关于该app的<Context>元素 移动到tmp0/conf/Catalina/localhost/appName.xml中.. (3)Automatically publish when resources change 勾选上 这样修改JSP后tomcat能热加载。。(这个选项对java文件无效,关了以后每次也能热加载class) 注意: hot reload只在debug模式下有效. 参考:http:///questions/921684/how-to-tell-eclipse-3-4-wtp-to-not-restart-tomcat-on-jsp-save 另见: https://www./eclipse/how-to-configure-hot-deploy-in-eclipse/ 转自 https://my.oschina.net/uniquejava/blog/80945 reloadable="true" 方式,虽可加载变化过或新增的类但存在以下问题 1、内存清空,整体web app会重新加载,web.xml中配置的监听器会全部再执行。 2、其他没变的类也会重新加载。 3、当系统很大时,非常耗时。 可以使用dcevm 转自 https://www./blog/guoba6688-sina-com-856153 修改server.xml和content.xml后自动还原问题修改完tomcat目录下的配置文件,重启服务器后,发现xml会重新恢复默认设置 原因:在eclipse里集成添加tomcat时,eclipse会自动储存tomcat的配置文件。Tomcat服务器在Eclipse中启动时,会自动发布Eclipse中部署的项目,但是我的项目是自己手动在外面部署的,Eclipse只认得在它里面部署的项目,因此它会创建一个新的server.xml文件覆盖原来的文件. 方法一: 设置Ecplise,取消掉自动发布功能。 依次选择 Window-Preferences-Server-Launching,取消Automatically publish when starting servers 方法二: 先关闭服务器。 Ecplise项目中有一个Server项目,有一个Tomcat v8.5 Server at localhost-config, 里面也有server.xml和content.xml,替换成你修改后的文件。Tomcat重新发布时会用这里的配置文件覆盖Tomcat下的conf下的文件。 转自 https://blog.csdn.net/Mint6/article/details/77800119 tomcat 配置 development true jsptomcat这两种模式对大家的影响主要是在jsp的开发当中。大家都知道jsp需要先编译成servlet源文件并编译为字节码,即生成.class文件才可以执行,所以在jsp文件首次运行时先要进行编译导致运行较慢,之后的访问都会直接进入执行阶段。 在开发模式下容器会经常检查jsp文件的时间戳来决定是否进行编译,如果jsp文件的时间戳比对应的.class文件的时间戳晚就证明jsp又进行了修改,需要再次编译,但是不断地进行时间戳的比对开销很大,会影响系统性能,而在生产模式下系统不会经常想的检查时间戳。所以一般在开发过程中使用开发模式,这样可以在jsp修改后再次访问就可以见到修改后的效果非常方便,而系统上线之后就要改为生产模式,虽然生产模式下会导致jsp的修改需要重启服务器才可以生效,但是上线后的改动较少而且性能很重要。 在tomcat的安装目录下conf文件夹下面的web.xml文件中配置tomcat的模式。如图一所示,在web.xml中配置参数development为true就是开发模式,如图二所示为false就是生产模式。 图片一 图片二 在生产模式下也可以通过配置checkInterval参数让tomcat每过一段时间就去检查一下时间戳,这种跟开发模式还是有区别的,可以称为后台编译。checkInterval参数值默认为0,单位为秒,配置位置同上。 综合以上所说,大家可以根据对不同情况下的需求选择最佳的配置方案。 转自 https://blog.csdn.net/woduoxiangfeiya/article/details/51181606 tomcat配置context的crossContext属性在tomcat下,context元素有一个crossContext属性,如果配置为true,则可以实现在同一个tomcat下的多个web应用之间实现ServletContext对象访问。该属性主要用于跨应用访问数据。 1. tomcat配置 <Host name="localhost" appBase="webapps"unpackWARs="true" autoDeploy="true"><Context path="/app1" debug="0" reloadable="true" crossContext="true" /><Context path="/app2" debug="0" reloadable="true" crossContext="true" /></Host> 2. app1端
3. app2端
关于context配置crossContext属性详见:http://tomcat./tomcat-7.0-doc/config/context.html 转自 https://www.cnblogs.com/nuccch/p/7156142.html |
|