我已經搜索了高和低的答案/教程沒有喜悅。這個問題一定是微不足道的。瞭解Tomcat中的Servlet路徑擴展
我已經安裝了Tomcat 7.0.27並且正在處理庫存的例子。示例存儲在webapps/examples
和server.xml
中,docBase
是webapps
。示例的HTML索引可通過http://localhost:8080/examples/servlets/
訪問。到現在爲止還挺好。
在此頁面上,將鼠標懸停在「Hello World」servlet的「Execute」鏈接上,路徑展開爲:http://localhost:8080/examples/servlets/servlet/HelloWorldExample
,當然這會成功執行。但servlet
應該擴大到WEB-INF/classes
。所以我希望該類的磁盤路徑爲webapps/examples/servlets/WEB-INF/classes/HelloWorldExample.class
,事實並非如此。實際路徑是webapps/examples/WEB-INF/classes/HelloWorldExample.class
。在servlets
目錄中唯一的是HTML和圖像文件。問題1:那是怎麼回事? examples/servlets/servlet
如何被重新路由到examples/WEB-INF/classes
?
問題#2:我將一個已編譯的類Foo.class
放入WEB-INF/classes
並嘗試通過http://localhost:8080/examples/servlets/servlet/Foo
和http://localhost:8080/examples/servlet/Foo
訪問它。兩者都產生404未找到。重新啓動的Tomcat(不應該,但乾草什麼)沒有幫助。是什麼賦予了?
我明白這[在Tomcat下運行一個Servlet](http://cs.calstatela.edu/~abbott/Courses/CS_320b/Running%20a%20Servlet%20under%20Tomcat.html)是舊的。但它不準確嗎? – boettger1 2012-04-16 17:44:48
我不能說它的準確性,我不知道Tomcat現在是否支持它。 Tomcat 3非常古老,它並沒有讓我感到驚訝,它曾經支持過這種機制,但是在「Web App」(即WAR文件及其結構和內容)的概念成爲canon之前,這已經回來了。今天,Web應用程序是標準的部署機制。即使Tomcat仍然支持這一點,我會遠離它,只需使用標準的WAR格式。雄貓3歲13歲... – 2012-04-16 20:07:55