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