2008-08-07 75 views

回答

21

POST變量應該可以通過請求對象訪問:HttpRequest.getParameterMap()。例外是如果表單發送多部分MIME數據(FORM有enctype =「multipart/form-data」)。在這種情況下,您需要使用MIME解析器解析字節流。您可以自己編寫或使用現有的API,例如Apache Commons File Upload API。

+7

注意:此答案早於Servlet 3.0的發佈和對`multipate/form-data`的標準支持。請參閱[Java EE 6 API](http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html)和/或[此博客文章](http:// balusc。 blogspot.com/2009/12/uploading-files-in-servlet-30.html) – McDowell 2012-03-09 09:05:49

46

下面是一個簡單的例子。我沒有喜歡html或servlet,但你應該明白。

我希望這可以幫助你。

<html> 
<body> 
<form method="post" action="/myServlet"> 
<input type="text" name="username" /> 
<input type="password" name="password" /> 
<input type="submit" /> 
</form> 
</body> 
</html> 

現在的Servlet的

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

public class MyServlet extends HttpServlet { 
    public void doPost(HttpServletRequest request, 
        HttpServletResponse response) 
     throws ServletException, IOException { 

    String userName = request.getParameter("username"); 
    String password = request.getParameter("password"); 
    .... 
    .... 
    } 
} 
+2

你能告訴我如何獲得servlet頁面中的POST請求值嗎?我使用$ .ajax調用而不是表單動作和XMLHttpRequest? – selladurai 2011-05-20 09:23:37

1

以前的答案是正確的,但記得要使用輸入字段的名稱屬性(HTML表單),或者你不會得到任何東西。例如:

<input type="text" id="username" /> <!-- won't work --> <input type="text" name="username" /> <!-- will work --> <input type="text" name="username" id="username" /> <!-- will work too -->

所有這些代碼是HTML有效,但使用的getParameter(java.lang.String中),您將需要name屬性中要接收的所有參數設置。