Eclipse中配置server——tomcat的三个发布目录的探究(亲测实验)(观止)(全网唯一,只此一家别无分号)

①Use workspace metadata (does not modify Tomcat installation)

②Use Tomcat installation (takes control of Tomcat installation)
③Use custom location (does not modify Tomcat installation)

其中:

①和默认的目录:

Server path:.metadata\.plugins\org.eclipse.wst.server.core\tmp0  (其中①的此项是灰色的改不了,③可改

Deploy path:wtpwebapps    (①和③都可改

②默认的目录:

Server path:D:\tomcat7  (此目录是你自己刚才手动添加sever的tomcat目录)

Deploy path:wtpwebapps


注:.metadata\.plugins\org.eclipse.wst.server.core\tmp0此目录在你eclipse启动时打开的工作空间(Workspace)的目录,而不是eclipse或tomcat的安装目录,也不是部署在tomcat的某个应用项目的路径中。

我启动eclipse打开的目录是E:\testEclipse,所以此目录的全路径是:

E:\testEclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0


测试:

项目目录结构:


web项目所在硬盘目录(Workspace):


1.发布目录选择②

Server path:D:\tomcat7

Deploy path:wtpwebapps


启动后发布到tomcat的wtpwebapps目录下D:\tomcat7\wtpwebapps


web项目名myweb,在WebContent目录下新建了index.jsp,a.html,index.html等文件。

a. 在浏览器中输入localhost:8080   结果:可见tomcat小猫主页。(结果同Eclipse内置的Internal Web Browser)

b. localhost:8080/myweb   结果:可见index.html,如果没有index.html,然后再依次看看有没有index.htm、index.jsp如果有就显示,没有就报404的错。(结果同Eclipse内置的Internal Web Browser)

这是由web.xml里的<welcome-file-list>标签控制的。



web.xml可在WEB-INF目录或你配置在Eclipse中的tomcat中目录下,WEB-INF目录下的web.xml会覆盖Eclipse中的tomcat中目录下的web.xml(如下图)WEB-INF目录下没有web.xml就以tomcat中目录下的web.xml为标准如下图,此web.xml能在本地硬盘的Workspace目录E:\testEclipse\Servers\Tomcat v7.0 Server at localhost-config中找到。



c.不能访问WEB-INF目录下的页面(结果同Eclipse内置的Internal Web Browser

d.如果Server和WEB-INF下的web.xml都没有配置<welcome-file-list>:

1.浏览器(或Internal Web Browser)访问http://localhost:8080/,报错404,

2.访问http://localhost:8080/myweb/ ,还是报错404,

3.此时就必须直接访问页面比如http://localhost:8080/myweb/a.html;

4.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

e.如果只在WEB-INF下的web.xml中配置<welcome-file-list>,Server下的web.xml不配置:

1.浏览器(或Internal Web Browser访问http://localhost:8080/,报错404

2.访问http://localhost:8080/myweb/  ,正常(按<welcome-file-list>配置的顺序显示页面)(由于缓存需要刷新多次页面)

3.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

f.如果只在Server下的web.xml中配置<welcome-file-list>,WEB-INF下的web.xml不配置:

1.浏览器(或Internal Web Browser访问http://localhost:8080/,结果正常显示tomcat主页。

2.访问http://localhost:8080/myweb/  ,正常(按<welcome-file-list>配置的顺序显示页面)

3.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

g.没有WEB-INF下的web.xml,但有Server下的web.xml:结果同f

h.没有Server下的web.xml,但有WEB-INF下的web.xml:结果无法启动项目.

Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config. The configuration may be corrupt or incomplete.
Resource '/Servers/Tomcat v7.0 Server at localhost-config/web.xml' does not exist.


i.只有tomcat——右键——Add and Remove——Remove之后再tomcat——右键——clean才能删除发布在wtpwebapps目录下的myweb应用目录,除此之外Project——clean、直接tomcat——右键——clean都不能删除myweb应用目录,此目录由tomcat——右键——Add and Remove——And之后再tomcat——右键——clean创建,

Project——clean并不能创建或删除此目录。



2.发布目录选择

Server path:.metadata\.plugins\org.eclipse.wst.server.core\tmp0

Deploy path:wtpwebapps


项目发布到了目录下:E:\testEclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps


发布目录tmp0目录下的子目录和tomcat中的目录很相似:


其中conf目录就是Server(tomcat)里的配置文件:


a.浏览器和eclipse内置的Internal Web Browser访问http://localhost:8080/,结果:报错404

(分析:此目录毕竟不是tomcat下的原目录,此链接访问的tomcat主页只有在tomcat下才有)

b.访问http://localhost:8080/myweb/ 的结果就和②相同了。

c.仍然不能在浏览器或eclipse内置的Internal Web Browser访问WEB-INF目录下的页面。

d.如果Server和WEB-INF下的web.xml都没有配置<welcome-file-list>:

1.浏览器(或Internal Web Browser)访问http://localhost:8080/,报错404,

2.访问http://localhost:8080/myweb/ ,还是报错404,

3.此时就必须直接访问页面比如http://localhost:8080/myweb/a.html;

4.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

e.如果只在WEB-INF下的web.xml中配置<welcome-file-list>,Server下的web.xml不配置:

1.浏览器(或Internal Web Browser)访问http://localhost:8080/,报错404

2.访问http://localhost:8080/myweb/  ,正常(按<welcome-file-list>配置的顺序显示页面)(由于缓存需要刷新多次页面)

3.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

f.如果只在Server下的web.xml中配置<welcome-file-list>,WEB-INF下的web.xml不配置:

1.浏览器(或Internal Web Browser访问http://localhost:8080/,报错404。

2.访问http://localhost:8080/myweb/  ,正常(按<welcome-file-list>配置的顺序显示页面)

3.WEB-INF目录下的页面http://localhost:8080/myweb/WEB-INF和http://localhost:8080/myweb/WEB-INF/webIndex.jsp

依然都不能访问到;

g.没有WEB-INF下的web.xml,但有Server下的web.xml:结果同f

h.没有Server下的web.xml,但WEB-INF下的web.xml:结果无法启动项目

Could not load the Tomcat server configuration at \Servers\Tomcat v7.0 Server at localhost-config. The configuration may be corrupt or incomplete.
Resource '/Servers/Tomcat v7.0 Server at localhost-config/web.xml' does not exist.


i.只有tomcat——右键——Add and Remove——Remove之后再tomcat——右键——clean才能删除发布在wtpwebapps目录下的myweb应用目录,除此之外Project——clean、直接tomcat——右键——clean都不能删除myweb应用目录,此目录由tomcat——右键——Add and Remove——And之后再tomcat——右键——clean创建,

Project——clean并不能创建或删除此目录。


3.发布目录选择此处的Server path不能和①和②相同,否则Eclipse会提示无法保存


我就干脆把Server path和Deploy path都改了,Server path改为任意目录进行测试


(1)每次tomcat——右键——clean时创建如下(左边)目录(project——clean时不会删除这些目录)(对比的发布目录(右边)):


并把myweb发布到webapps目录下:


(2)发布目录并不是没有java代码,而是在D:\test\test\webapps\myweb\WEB-INF\classes\servlet目录中,编译成了class文件:


(3)只有在tomcat——Add and Remove——Remove之后,再tomcat——clean  才会删除myweb目录,其他目录不会删除。


测试结果同2.发布目录选择



最后

总结:

1.不管是①的发布到E:\testEclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps

还是②的发布到D:\tomcat7\wtpwebapps,都能在浏览器或者eclipse内置的Internal Web Browser中的http://localhost:8080/myweb/下访问到myweb中的页面,但是直接访问http://localhost:8080时②通且①报错404。


2.tomcat停止以后,E:\testEclipse\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps和D:\tomcat7\wtpwebapps下的myweb目录会在tomcat7——右键——clean时被删除。


3.tomcat默认的部署目录为webapps,但Eclipse默认部署目录为wtpwebapps


4.浏览器和Eclipse内置的Internal Web Browser访问链接的结果是一样的。


5.WEB-INF目录下的页面在浏览器中是访问不到的。


6.Sever下的web.xml和WEB-INF下的web.xml只要任意一个存在且配置了<welcome-file-list>标签,访问http://localhost:8080/应用名 的时候就能按照此标签内的页面顺序显示,

但是并不代表页面不能访问,可以用页面直接访问http://localhost:8080/应用名/页面名


7.Sever和WEB-INF下的web.xml都没配置<welcome-file-list>时,访问http://localhost:8080 会报错404,

访问http://localhost:8080/应用名 也会报错404


总结成表格,显示更清晰:

根据部署在tomcat还是Eclipse的Workspace目录下的wtpwebapps:


根据WEB-INF和Server下的web.xml是否配置<welcome-file-list>标签:



参考(以我上述实际实验为准):

http://www.cnblogs.com/alamps/p/6278768.html





猜你喜欢

转载自blog.csdn.net/superit401/article/details/78270691