2008-08-07 9 views

Trả lời

21

Biến POST phải có thể truy cập được thông qua đối tượng yêu cầu: HttpRequest.getParameterMap(). Ngoại lệ là nếu biểu mẫu gửi dữ liệu MIME nhiều phần (MẪU có enctype = "multipart/form-data"). Trong trường hợp đó, bạn cần phải phân tích cú pháp luồng byte bằng trình phân tích cú pháp MIME. Bạn có thể viết của riêng bạn hoặc sử dụng một cái hiện có như Apache Commons File Upload API.

+7

Lưu ý: câu trả lời này trước khi phát hành Servlet 3.0 và hỗ trợ chuẩn cho 'multipate/form-data'. Xem [API Java EE 6] (http://docs.oracle.com/javaee/6/api/javax/servlet/annotation/MultipartConfig.html) và/hoặc [bài đăng trên blog này] (http: // balusc. blogspot.com/2009/12/uploading-files-in-servlet-30.html) – McDowell

46

Đây là một ví dụ đơn giản. Tôi đã không được ưa thích với html hoặc servlet, nhưng bạn sẽ nhận được ý tưởng.

Tôi hy vọng điều này sẽ giúp bạn.

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

Bây giờ cho các 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

bạn có thể tel cho tôi cách nhận giá trị yêu cầu POST trong trang servlet không? Tôi đang sử dụng $ .ajax gọi hành động không phải hình thức và XMLHttpRequest? – selladurai

+0

Câu hỏi của tôi http://stackoverflow.com/questions/6068510/i-couldnt-get-the-post-value-in-servlet-page – selladurai

1

Những câu trả lời trước đó là chính xác nhưng hãy nhớ sử dụng thuộc tính tên trong các lĩnh vực đầu vào (mẫu html) hoặc bạn sẽ không nhận được bất cứ điều gì. Ví dụ:

<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 -->

Tất cả các mã này là HTML hợp lệ, nhưng sử dụng getParameter (java.lang.String), bạn sẽ cần các thuộc tính tên được thiết lập trong tất cả các thông số bạn muốn nhận.