2012-12-14 36 views
0

嘿,我正在開發一個Apache Tomcat v7.0 servlet,用戶輸入一些值,然後發送到一個頁面進行預覽,然後點擊提交。問題是,一旦他們提交,我得到一個404說不存在的文件。將表單提交到servlet中的.java頁面的問題

建立項目 -

WebContent文件夾具有傳送到roster.js文件預覽welcome.js文件 - 內roster.js文件,你點擊提交,併發送你這個鏈接 - src/bandServ/BandListServ.java這鏈接包含在Java Resources文件夾中,以及WebContent文件夾中。 Java Resources文件夾包含我的包,這就是我希望從roster.js文件的表單發送數據的地方。

代碼roster.js文件:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    "http://www.w3.org/TR/html4/loose.dtd"> 

<html> 
<head> 
    <%@ include file="/includes/header.html" 

    %> 

</head> 
<body> 
    <h1>Battle Of Bands</h1> 

    <p>Here is our band roster:</p> 


    <table cellspacing="5" cellpadding="5" border="1"> 
     <tr> 
      <td align="right">Band1:</td> 
      <td><%= request.getParameter("Band1name") %></td> 
     </tr> 
     <tr> 
      <td align="right">Band2:</td> 
      <td><%= request.getParameter("Band2name") %></td> 
     </tr> 
     <tr> 
      <td align="right">Band3:</td> 
      <td><%= request.getParameter("Band3name") %></td> 
     </tr> 
     <tr> 
      <td align="right">Band4:</td> 
      <td><%= request.getParameter("Band4name") %></td> 
     </tr> 
     <tr> 


    </table> 

    <p>Ready to Rock</p> 

    <form action="src/bandServ/BandListServ.java" method="post"> 
     <input type="submit" value="submit"> 
    </form> 

</body> 
</html> 
<%@ include file="/includes/footer.jsp" %> 
+0

試方法=「獲得」 – kromit

+1

這是發生,因爲,你的java文件位置不可見。您可能想查看您是否可以訪問本地主機中的文件。試試:http:// localhost:8080/src/bandServ/BandListServ.java,看看你的java文件是否被加載,如果沒有,那麼你必須找出正確的路徑,然後使用它。我假設你的端口號是8080. –

+0

當我使用http:// localhost:8080/src/data/BandIO.java或http:// localhost:8080/finalprojectfor_client/src/bandServ/BandListServ時。java我得到一個404錯誤 - 我通過右鍵單擊類的屬性找到該路徑。 –

回答

2

這是不可能從表單直接調用的Java類。 應該創建一個類作爲擴展HttpServlet類的Servlet。然後必須修改deployment descriptor(/Project/WEB-INF/web.xml)以包含servlet類的詳細信息和映射到它的url。

<servlet> 
    <servlet-name>BandListServ</servlet-name> 
    <servlet-class>bandServ.BandListServ</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>BandListServ</servlet-name> 
    <url-pattern>/list-bands</url-pattern> 
</servlet-mapping> 

修改JSP中的from來調用web.xml中定義的URL模式。

<form action="/list-bands" method="post"> 
    <input type="submit" value="submit"> 
</form> 
1

須提供翻譯URL請求方法調用servlet映射。 http://docs.oracle.com/cd/E11035_01/wls100/webapp/configureservlet.html

一個更簡單的方法是使用Java服務器頁面,它翻譯代碼並自動爲您執行servlet映射。

[編輯]

添加上的servlet鏈接到一個教程:

http://docs.oracle.com/javaee/6/tutorial/doc/bnafd.html

+0

另外,您不要部署.java源文件,而是部署編譯後的.class文件。 – Gimby

+0

也許他想要下載源文件... – kromit

+1

Tuto我想我真的不知道如何將它發送到類文件。 –

1

此線

<form action="src/bandServ/BandListServ.java" method="post"> 

是撥錯我相信的。

action =「」應包含一個uri,它映射到web.xml中的邏輯servlet名稱,該實例映射到servlet的fullt限定類名稱。相反,您不能在操作中指定您的servlet名稱。

你的web.xml文件應包含saomething這樣

<servlet> 
    <servlet-name>BandServlet</servlet-name> 
    <servlet-class>com.band.BandServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>BandServlet</servlet-name> 
    <url-pattern>/getBands</url-pattern> 
</servlet-mapping> 

,並在表單標籤做到這一點

<form action="getBands" method="post">