[英]Tomcat6 + Ubuntu + Servlet
我正在嘗試制作servlet。
我已經在ubuntu上使用管理示例和文檔安裝了tomcat6。 我可以運行提供的示例。 但是,當我嘗試制作自己的servlet時,它不起作用。
我做了以下步驟
在根目錄下,我使用以下命令創建文件夾
-ROOT
----myapp
------WEB-INF
---------classes
我制作了兩個文件,其中一個是index.html,它具有一個按鈕和窗體上的操作來調用servlet。 第二個是.java文件。 我編譯了.java文件,.class完成了。 所以現在樹看起來像
-ROOT
----myapp
------index.html
------WEB-INF
---------classes
-----------TestServ.java
-----------TestServ.class
現在我使用http:// localhost:8080 / myapp在瀏覽器中打開它
它與帶有按鈕的index.html頁面一起顯示。 但是當我點擊按鈕時,它說
錯誤404:找不到http:// localhost:8080 / myapp / TestServ !!
我不知道哪里出了問題。 我也設置了CATALINA_HOME。 但是這個問題仍然存在。
您需要在WEB-INF目錄中創建一個web.xml,並在web.xml中定義servlet映射,以便將myapp / TestServ URL轉發到TestServ servlet類。
這是描述web.xml的頁面,並包含您需要設置的示例和元素。 對於您的班級,這些元素可能看起來像這樣:
<servlet>
<servlet-name>testServ</servlet-name>
<servlet-class>TestServ</servlet-class>
</servlet>
<servlet-mapping>
<!-- For any URL starting with /content/, the rewriter servlet will be called -->
<servlet-name>testServ</servlet-name>
<url-pattern>/TestServ</url-pattern>
</servlet-mapping>
您不應該在ROOT下部署任何代碼。
默認程序包中不應包含任何Java類。 嘗試將TestServ.java放入程序包中。
您的部署中不應包含任何.java文件。
您必須在web.xml中正確注冊servlet。 包括到特定URL的映射。
最好的辦法是創建一個名為myapp.war的WAR文件,其中包括WEB-INF / classes和WEB-INF / lib以及適合您情況的web.xml。 將其放在Tomcat / webapps中,然后啟動容器。 如果您已經正確注冊了servlet,則應該可以通過http:// localhost:8080 / myapp / TestServ對其進行訪問 。
我會仔細閱讀部署文檔 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.