簡體   English   中英

Apache tomcat和servlet(初學者)-404錯誤,也許找不到類?

[英]Apache tomcat and servlet (beginner) - 404 error, maybe classes are not found?

我是servlet的初學者,對於“ hello world style”的servlet,我安裝了apache tomcat並在其webapps目錄下創建了以下內容:

servletdir
|- index.xhtml
|- WEB-INF
   |- web.xml
   |- classes
      |- mypackage
         |- ServletClass.class

初始化所有東西,以便可以在本地主機上訪問我的servlet:

web.xml

<?xml version="1.0" encoding="utf-8"?>
<web-app>

<servlet>
<servlet-name>myservlet</servlet-name>
<servlet-class>mypackage.ServletClass</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>myservlet</servlet-name>
<url-pattern>/servleturl/*</url-pattern>
</servlet-mapping>

</web-app>

並且index.xhtml包含具有action="/servleturl" method="get"的表單

從理論上講,當我啟動tomcat時,我現在應該能夠通過localhost:8080/servletdir/index.xhtml來訪問servlet和index.xhtml文件,並在那里提交表單。 到達索引是沒有問題的,但是當我提交表單時,對於servlet,我收到404錯誤,說它“源服務器沒有找到目標資源的當前表示,或者不願意透露它的存在。” 。

我的servlet類應該不是問題,它擴展了HttpServlet並重寫了doGet以通過ServletResponse參數的getWriter().println()輸出簡單的html。 Servlet類中的錯誤會導致404嗎? 我的目錄結構或web.xml錯誤嗎?

我嘗試了多種目錄結構和解決方案,包括:

  • WEB-INF中的平面目錄結構和類不在軟件包中(沒有“ classes”目錄)
  • 沒有WEB-INF,一切直接在servlet目錄中
  • 將WEB-INF和index.xhtml包裹在名為“ WebContent”的目錄中
  • 保留“ classes”目錄,但不使用包,直接將類文件放入類中*

我遵循了多種資源,包括一些教程和許多問題,這些問題與我的問題沒有直接關系,但是包含一些信息,但是由於我是這項技術的新手,所以我無法推斷出哪種資源是好的,哪種資源是不正確的。 t,這就是為什么我嘗試幾乎所有發現的原因的原因。

最上面描述的目錄結構以這種結構直接在磁盤上,而不是在war文件中,但是由於我可以訪問某些部分,所以我想這不是問題。

*:請注意,每當代表包的目錄結構發生更改時,我都會在文件的第一行使用相應的“包”重新編譯java文件,這不是問題

action="/servleturl" method="get"更改為action="/servletdir/servleturl" method="get"action="servleturl" method="get"

使用action="/servleturl" ,您嘗試訪問根相對路徑,但是缺少上下文路徑servletdir

如果使用action="servleturl" ,則無需將上下文路徑放入action因為它將從當前url獲取它

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM