http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com Client Request Servlet Khi trình duyệt u cầu trang web, gửi nhiều thơng tin tới Web Server, mà đọc cách trực tiếp thơng tin chuyển động phần Header HTTP Request Bạn kiểm tra Giao thức HTTP để tìm thêm thơng tin điều Bảng liệt kê thông tin Header quan trọng mà tới từ trình duyệt bạn sử dụng thường xuyên lập trình Web Header Miêu tả Accept Trường xác định loại MIME mà trình duyệt Client khác xử lý Các giá trị image/png image/jpeg hai khả phổ biến Accept-Charset Trường xác định ký tự mà trình duyệt sử dụng để hiển thị thơng tin Ví dụ: ISO-8859-1 Accept-Encoding Trường xác định kiểu mã hóa mà trình duyệt biết để xử lý Các giá trị gzip compress hai khả phổ biến Accept-Language Trường xác định ngơn ngữ ưa thíc Client trường hợp Servlet tạo kết nhiều ngơn ngữ Ví dụ en, en-us, ru, v.v Authorization Trường sử dụng Client để nhận diện truy cập vào trang web bảo vệ password Connection Trường dẫn có hay khơng Client xử lý kết nối HTTP dạng Persistent Các kết nối Persistent cho phép Client trình duyệt thu nhận nhiều file với yêu cầu đơn Một giá trị Keep-Alive nghĩa kết nối Persistent nên sử dụng Content-Length Trường thích hợp với yêu cầu POST cung cấp http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com kích cỡ liệu POST giá trị byte Cookie Trường trả cookie tới Server mà trước gửi chúng tới trình duyệt Host Trường xác định host cổng (port) cung cấp URL ban đầu If-Modified-Since Trường Client muốn trang thay đổi sau ngày xác định Server gửi code 304, nghĩa Not Modified Header khơng có kết có sẵn If-Unmodified-Since Trường ngược với trường If-Modified-Since Nó xác định hoạt động thành công tài liệu cũ ngày xác định Referer Trường URL trang web tham chiếu Ví dụ, bạn trang Webpage click vào link tới trang Webpage 2, URL Webpage bao trường Referer Header trình duyệt yêu cầu trang Webpage User-Agent Trường nhận diện trình duyệt Client tạo yêu cầu sử dụng để trả nội dung khác cho loại trình duyệt khác Các phương thức để đọc HTTP Header Bảng liệt kê phương thức sử dụng để đọc HTTP Header chương trình Servlet bạn Các phương thức có sẵn với đối tượng HttpServletRequest STT Phương thức & Miêu tả Cookie[] getCookies() Trả mảng chứa tất đối tượng Cookie mà Client gửi với yêu cầu http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com Enumeration getAttributeNames() Trả Enumeration chứa tên thuộc tính có sẵn cho u cầu Enumeration getHeaderNames() Trả Enumeration tất tên Header mà yêu cầu chứa Enumeration getParameterNames() Trả Enumeration đối tượng String chứa tên Parameter chứa yêu cầu HttpSession getSession() Trả session tại, mà liên kết với yêu cầu này, u cầu khơng có session, tạo session HttpSession getSession(boolean create) Trả HttpSession tại, mà liên kết với yêu cầu này, khơng có session create true, trả session Locale getLocale() Trả Locale mà Client chấp chận nội dung đó, dựa trường AcceptLanguage Header Object getAttribute(String name) Trả giá trị thuộc tính name Object, trả null khơng có thuộc tính name cung cấp tồn ServletInputStream getInputStream() http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com Thu nhận thân yêu cầu dạng liệu nhị phân sử dụng ServletInputStream 10 String getAuthType() Trả tên Authentication Scheme sử dụng để bảo vệ Servlet, ví dụ: "BASIC" "SSL", trả null JSP không bảo vệ 11 String getCharacterEncoding() Trả tên Mã hóa ký tự sử dụng thân yêu cầu 12 String getContentType() Trả kiểu MIME thân yêu cầu, trả null kiểu 13 String getContextPath() Trả phần URI yêu cầu mà dẫn context yêu cầu 14 String getHeader(String name) Trả giá trị trường Header xác định dạng String 15 String getMethod() Trả tên phương thức HTTP mà yêu cầu tạo, ví dụ: GET, POST, PUT 16 String getParameter(String name) Trả giá trị Parameter dạng String, trả null Parameter không tồn http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com 17 String getPathInfo() Trả thông tin path bổ sung, mà liên kết với URI mà Client gửi tạo yêu cầu 18 String getProtocol() Trả tên phiên giao thức 19 String getQueryString() Trả chuỗi truy vấn, chứa URL sau path 20 String getRemoteAddr() Trả địa Internet Protocol (IP) Client mà gửi yêu cầu 21 String getRemoteHost() Trả tên đầy đủ Client mà gửi yêu cầu 22 String getRemoteUser() Trả login người sử dụng tạo yêu cầu này, người dùng xác nhận, trả null người dùng chưa xác nhận 23 String getRequestURI() Trả phần URL yêu cầu từ tên giao thức dạng chuỗi truy vấn dòng HTTP Request 24 String getRequestedSessionId() Trả ID session xác định Client http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com 25 String getServletPath() Trả phần URL yêu cầu mà gọi JSP 26 String[] getParameterValues(String name) Trả mảng đối tượng String chứa tất giá trị mà parameter cung cấp có, trả null parameter không tồn 27 boolean isSecure() Trả Boolean có hay khơng u cầu tạo sử dụng đường an toàn, HTTPS 28 int getContentLength() Trả độ dài, giá trị byte, thân yêu cầu làm có sẵn Input Stream, trả -1 độ dài 29 int getIntHeader(String name) Trả giá trị Request header cho dạng int 30 int getServerPort() Trả số hiệu cổng mà u cầu nhận Ví dụ HTTP Header Request Ví dụ sau sử dụng phương thức getHeaderName() đối tượng HttpServletRequest để đọc thông tin HTTP header Phương thức trả Enumeration chứa thông tin header mà liên kết với HTTP request Khi có Enumeration, lặp Enumeration theo phương thức chuẩn: sử dụng phương thức hasMoreElements() để xác định dừng sử dụng phương thức nextElement() để nhận tên parameter http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com // Import required java libraries import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.util.*; // Extend HttpServlet class public class DisplayHeader extends HttpServlet { // Method to handle GET method request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html"); PrintWriter out = response.getWriter(); String title = "HTTP Header Request Example"; String docType = "\n"; out.println(docType + "\n" + "" + title + "\n"+ "\n" + "" + title + "\n" + "\n" + "\n" + "Header NameHeader Value(s)\n"+ "\n"); Enumeration headerNames = request.getHeaderNames(); while(headerNames.hasMoreElements()) { String paramName = (String)headerNames.nextElement(); out.print("" + paramName + "\n"); String paramValue = request.getHeader(paramName); out.println(" " + paramValue + "\n"); } out.println("\n"); } // Method to handle POST method request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request, response); } } Bây gọi Servlet cho kết sau:: HTTP Header Request Example Header Name Header Value(s) accept */* accept-‐language en-‐us user-‐agent Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; InfoPath.2; MS-‐RTC LM 8) accept-‐encoding gzip, deflate host localhost:8080 connection Keep-‐Alive cache-‐control no-‐cache http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 http://vietjack.com/ servlets/index.jsp Copyright © vietjack.com http://vietjack.com/ Trang chia sẻ các bài học online miễn phí Page 1 ... handle POST method request public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet (request, response); } } Bây gọi Servlet cho kết... HttpServlet { // Method to handle GET method request public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // Set response content type response.setContentType("text/html");... import javax .servlet. *; import javax .servlet. http.*; import java.util.*; // Extend HttpServlet class public class DisplayHeader extends HttpServlet { // Method to handle GET method request public