Một điều quan trọng trong ứng dụng web động nói chung và servlet nói riêng đó là việc thu thập dữ liệu và đáp ứng lại dữ liệu cần thiết cho người dùng. Nói cách khác, đó là việc truyền dữ liệu từ máy khách lên máy chủ và ngược lại.
Trình duyệt sử dụng hai phương thức để truyền thông tin từ máy khách tới máy chủ web. Các phương thức này là phương thức GET và và phương thức POST.
Nội dung chính
Phương thức GET
Phương thức GET gửi thông tin người dùng được mã hoá được nối vào yêu cầu trang. Trang và thông tin được mã hoá được tách biệt bằng ? (dấu chấm hỏi) như sau:
http://www.test.com/hello?key1=value1&key2=value2
Phương thức GET là phương thức mặc định để chuyển thông tin từ trình duyệt đến máy chủ web và tạo ra một chuỗi dài xuất hiện trong hộp địa chỉ của trình duyệt của bạn. Không bao giờ sử dụng phương thức GET nếu bạn có mật khẩu hoặc thông tin nhạy cảm khác để chuyển đến máy chủ. Phương thức GET có giới hạn kích thước: chỉ có 1024 ký tự có thể được sử dụng trong một request.
Thông tin này được truyền bằng cách sử dụng tiêu đề QUERY_STRING và sẽ có thể truy cập qua biến môi trường QUERY_STRING và Servlet sẽ xử lý loại yêu cầu này bằng cách sử dụng phương thức doGet().
Phương thức POST
Một phương thức truyền thông tin phổ biến hơn, đáng tin cậy hơn là phương thức POST. Phương thức này gói thông tin theo cách chính xác giống như phương thức GET, nhưng thay vì gửi nó như một chuỗi văn bản sau một ? (dấu chấm hỏi) trong URL thì phương thức này gửi nó như một thông điệp riêng biệt. Thông báo này đi kèm với chương trình backend dưới dạng đầu vào tiêu chuẩn mà bạn có thể phân tích và sử dụng cho quá trình xử lý của bạn. Servlet xử lý kiểu yêu cầu này sử dụng phương thức doPost ().
Đọc dữ liệu từ Form trong Servlet
Servlet xử lý dữ liệu từ một Form bằng cách sử dụng các phương thức sau đây tùy thuộc vào tình huống:
- getParameter() - Gọi phương thức request.getParameter() để lấy giá trị của một tham số của form.
- getParameterValues() - Gọi phương thức này nếu tham số xuất hiện nhiều lần và trả về nhiều giá trị, ví dụ checkbox.
- getParameterNames() - Gọi phương thức này nếu bạn muốn có một danh sách đầy đủ của tất cả các tham số trong yêu cầu hiện tại.
Dưới đây là các ví dụ về phương thức GET, POST, và sử dụng các phương thức trên để lấy dữ liệu từ HTML Form.
- Ví dụ phương thức GET sử dụng URL
- Ví dụ phương thức GET sử dụng Form
- Ví dụ phương thức POST sử dụng Form
- Ví dụ truyền CheckBox trong Servlet
- Ví dụ đọc tất cả Parameters của Form trong Servlet