*************** java
又發現了一篇不錯的文章 web
轉自:http://blog.csdn.net/yiluoak_47/article/details/12503737 瀏覽器
首先,咱們要知道虛擬目錄的好處。虛擬目錄不一樣於原始的Tomcat運行方式,原始的方式是把項目拷貝到webapps下,而後啓動tomcat,就能夠訪問webapps下的項目。咱們使用eclipse配置tomcat,實際上的原理也是這種方式。 緩存
但這種方式的弊端在於,webapps下的項目不是最新的動態,一旦咱們修改了eclipse工做目錄下的項目,並不能馬上的反應到 tomcat/webapps下。因此咱們不得不編譯項目後,清除webapps下的緩存,甚至要移除項目,而後在放進去。這樣來回折騰,大大下降了工做 效率。咱們只要改動一個小地方,就要重複的進行一次上面的工做。 tomcat
聰明的人,老是懶惰的。咱們想到能不能改變一下當前的方式,有一種更好的方式呢?這時候,虛擬目錄就浮現出來。 網絡
虛擬目錄的做用是把Web的發佈目錄直接定位到eclipse工做目錄下,實現實時更新,實時使用。 app
要配置虛擬目錄,咱們須要在Tomcat/conf/catalina/localhost下根據項目命名「項目名.xml」,裏面的內容: eclipse
<?xml version="1.0" encoding="UTF-8"?> <Context path="/cecb2b" docBase="E:\workspace\cecb2b\webContent" workDir="E:\workspace\cecb2b\word" reloadable="true" debug="1"></Context>
屬性解釋: webapp
path:網絡訪問名 jsp
docBase:項目實際路徑
wordDir:指定jsp轉換爲java的存放目錄。這樣配置,省得移植的時候從新編譯jsp
reloadable:指定當class文件變化的時候,是否從新加載
debug:是不是調試模式
這樣,Web發佈目錄就直接指向了eclipse工做目錄下的項目。咱們在eclipse下修改代碼,只要一構建,tomcat自動從新加載。咱們就不用來回移除項目了。
最後,咱們還能夠修改cong/web.xml中的:
<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>
把false改成true。
最後,咱們須要注意的是,用eclipse建立Web項目,必定要是動態Web項目,而後在修改項目的一些屬性:
一、去掉Project--Build Automatically(自動構建)
二、屬性--Builders--除了Java Builder所有勾去(這樣項目構建速度大大加快)。
三、屬性--Java Build Path--Source--項目名/WebContent/WEB-INF/classes
注意,tomcat7.0和以往不一樣:
<Context path="/vsearch" docBase="E:/workspace/vsearch2012/WebContent" reloadable="true" debug="5" crossContext="true" />
須要注意,xml文件名必須和path的名相同!