2013-03-18 93 views
1

我想提交一個簡單的表單來處理一個servlet,但是每當我提交時我都會收到404。代碼編譯和部署良好。我已經經歷了關於這個主題的每一個教程,所以我明白這裏有很多關於它的信息。任何有關我正在製作菜鳥錯誤的建議?預先感謝任何幫助!我的jsp找不到我的servlet,給我一個404

JSP位於/ web應用/ registerWidget 的servlet位於/ web應用/ registerWidget/WEB-INF /類/ COM /樣品中/小程序 web.xml中位於/ web應用/ registerWidget/WEB-INF

這是我的jsp:

<!DOCTYPE HTML> 
    <html> 
    <head> 
     <title>Sample Applet</title> 
    </head> 
    <body> 
     <header>Please Register</header> 
     <section> 
      <form action="/register" method="POST"> 
       First name: <input type="text" name="firstname"><br> 
       Last name: <input type="text" name="lastname"><br> 
       Email: <input type="text" name="email"><br> 
       <input type="submit" value="Submit"> 
      </form> 
     </section> 
    </body> 
</html> 

這裏是我的servlet:

package com.sample.applet; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class RegisterServlet extends HttpServlet { 

    public void doGet(HttpServletRequest req, HttpServletResponse res) 
      throws IOException, ServletException { 
     doPost(req, res); 
    } 

    public void doPost(HttpServletRequest req, HttpServletResponse res) 
      throws ServletException { 

     String first = req.getParameter("firstname"); 
     String last = req.getParameter("lastname"); 
     String email = req.getParameter("email"); 

     ....some processing code.... 

    } 
} 

這裏是我的web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee 
    http://java.sun.com/xml/ns/j2ee/Web-app_2_4.xsd"> 

    <servlet> 
     <servlet-name>registerServlet</servlet-name> 
     <servlet-class>com.sample.applet.RegisterServlet</servlet-class> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>registerServlet</servlet-name> 
     <url-pattern>/register</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

您是否看過404中出現在瀏覽器地址欄中的URL?那個網址真的很對嗎? (整個404錯誤告訴它不是)。該網址中是否應該有上下文路徑?順便說一句... Servlet 2.4是相當古老的。我們目前已經在Servlet 3.0上工作了3年多,並且3.1即將到來。你確定你正在閱讀正確和最新的資源嗎?將鼠標置於您放置在問題上的'[servlets]'標籤的頂部,直到出現黑框,然後在其中單擊* info *鏈接。 – BalusC 2013-03-18 16:18:30

+0

在表單action:action =「register」中刪除前面的斜槓 – 2013-03-18 16:19:07

+0

[Servlet Url Mapping Error](http://stackoverflow.com/a/10839483) – BalusC 2013-03-18 16:21:39

回答

1

表單中的動作中的網址以斜槓開頭。這意味着你從服務器根開始,在那個地方尋找一個名爲register的servlet。但是,您的servlet實際上處於某種情況下。所以你可以說:/ mycontext/register或完全刪除斜線。在

+0

正如我所說的,菜鳥錯誤。感謝您及時的回覆。 – petfreshman 2013-03-18 16:30:32

0

用行動而不是「/註冊」

形式的行動=「註冊」「註冊」

「/」「/註冊」告訴它你的上下文根搜索你的servlet。