2013-03-01 73 views
0

我正在學習Java Servlets。試圖實現doPost()方法,但是我得到一個錯誤,「HTTP狀態405 - 此方法不支持HTTP方法POST」。無法實現doPost()方法

代碼

<html> 
<body> 
<center> 
<form name="Form1" action="http://localhost:8080/examples/servlet/ColorGetServlet" method="post"> 
<B>Color:</B> 
<select name="color" size="1"> 
<option value="Red">Red</option> 
<option value="Green">Green</option> 
<option value="Blue">Blue</option> 
</select> 

<br><br> 
<input type=submit value="Submit"> 
</form> 
</body> 
</html> 

的Servlet

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class ColorGetServlet extends HttpServlet{ 

public void doPost(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException{ 

    String color = request.getParameter("color"); 
    response.setContentType("text/html"); 
    PrintWriter pw = response.getWriter(); 

    pw.println("<B>The Selected Color is: "); 
    pw.println(color); 
    pw.close(); 
    } 
} 

將不勝感激,如果任何人都可以告訴我,我在做什麼錯。

+3

重寫方法時使用'@ Override'是一種最佳實踐,只是爲了讓編譯器幫助您確保您做得正確。 – 2013-03-01 03:03:07

+2

您需要檢查web.xml中的servlet映射 - http://stackoverflow.com/questions/3577414/http-status-405-http-method-post-is-not-supported-by-this-url – 2013-03-01 03:03:38

+0

servlet映射是正確的。如果我用戶doGet()而不是goPost()它的作品。 – 2013-03-01 03:13:12

回答

0

這是一個解決方法,而不是調用servlet的正確過程。將以下行添加到您的jsp頁面的頂部。

<%@page import="your-package-name.examples.servlet.ColorGetServlet"%> 

例如像

<%@page import="com.yourcompany.examples.servlet.ColorGetServlet"%> 

,這不是一個很好的方法,因爲你直接繞過了web.xml罰款,而不是導入的servlet到JSP頁面。 而在你的頁面變化<input type=submit value="Submit">

<input type="submit" value="Submit"> 

嘗試上面並請評論,如果它失敗了。