Bài giảng Công nghệ Java - Bài 2: Servlet - Nguyễn Hữu Thể
Nội dung
▪ Servlet and Architecture
▪ Interface Servlet and the Servlet Life Cycle
▪ HttpServlet Class
▪ HttpServletRequest Interface
▪ HttpServletResponse Interface
▪ Project Servlet in Eclipse
▪ HTTP get Requests
▪ HTTP get Requests Containing Data
▪ HTTP post Requests
▪ Redirecting Requests to Other Resources
▪ Welcome Files
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ Java - Bài 2: Servlet - Nguyễn Hữu Thể", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Công nghệ Java - Bài 2: Servlet - Nguyễn Hữu Thể
1CÔNG NGHỆ JAVA Bài 2: Servlet Nguyễn Hữu Thể 2Nội dung ▪ Servlet and Architecture ▪ Interface Servlet and the Servlet Life Cycle ▪ HttpServlet Class ▪ HttpServletRequest Interface ▪ HttpServletResponse Interface ▪ Project Servlet in Eclipse ▪ HTTP get Requests ▪ HTTP get Requests Containing Data ▪ HTTP post Requests ▪ Redirecting Requests to Other Resources ▪ Welcome Files 3Servlet and Architecture − Servlets: chạy trên Web server hoặc Application server. − Tầng trung gian giữa HTTP Client với các Database hoặc các ứng dụng trên HTTP server. − Ưu điểm Servlets: ▪ Hiệu năng tốt. Tính bảo mật cao (dựa trên Java). Độc lập trên nền tảng. ▪ Thư viện Java, giao tiếp với Applet, Database hoặc phần mềm khác. 4Servlet Package − Java Servlets sử dụng các lớp Java => Run bởi Web Server. − Các gói thư viện hỗ trợ: ▪ javax.servlet ▪ javax.servlet.http − Servlet được biên dịch giống như các lớp khác trong Java. − Các interface và các lớp trong API Servlet ▪ Servlet, ▪ GenericServlet, ▪ HttpServlet, ▪ ServletRequest, ▪ ServletResponse, 5Servlet Life Cycle 1. Servlet được khởi tạo bằng cách gọi phương thức init() 2. Phương thức service() được gọi để xử lý yêu cầu của client. 3. Servlet được hủy bằng phương thức destroy() 4. Cuối cùng, servlet được thu thập bởi bộ sưu tập rác của JVM. 6Interface Servlet Method Description public void init(ServletConfig config) initializes the servlet. It is the life cycle method of servlet and invoked by the web container only once. public void service(ServletRequest request,ServletResponse response) provides response for the incoming request. It is invoked at each request by the web container. public void destroy() is invoked only once and indicates that servlet is being destroyed. public ServletConfig getServletConfig() returns the object of ServletConfig. public String getServletInfo() returns information about servlet such as writer, copyright, version etc. 7Method Detail – init() public void init(ServletConfig config) throws ServletException ▪ Phương thức init() được gọi chỉ một lần để khởi tạo servlet. ▪ Khi gọi servlet, một thể hiện duy nhất của mỗi servlet sẽ được tạo ra, với mỗi yêu cầu của người dùng tạo ra một luồng mới được trao cho doGet hoặc doPost. ▪ Parameters: • config - a ServletConfig object containing the servlet's configuration and initialization parameters 8Method Detail – service() public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException ▪ Phương thức chính để thực hiện nhiệm vụ. Web server gọi phương thức service() để xử lý các yêu cầu đến từ client và trả về kết quả. ▪ Máy chủ tạo ra 1 Thread mới khi nhận được 1 yêu cầu cho 1 servlet, và gọi phương thức service(). ▪ Phương thức service() kiểm tra kiểu yêu cầu HTTP (GET, POST, PUT, DELETE, v.v.) và gọi các phương thức doGet, doPost, doPut, doDelete,... ▪ Parameters: • req - the ServletRequest object that contains the client's request • res - the ServletResponse object that contains the servlet's response 9Method Detail – getServletConfig() public ServletConfig getServletConfig() ▪ Returns a ServletConfig object, which contains initialization and startup parameters for this servlet. ▪ Returns: • the ServletConfig object that initializes this servlet 10 Method Detail – getServletInfo() public java.lang.String getServletInfo() ▪ Returns information about the servlet, such as author, version, and copyright. ▪ The string that this method returns should be plain text and not markup of any kind (such as HTML, XML, etc.). ▪ Returns: • a String containing servlet information 11 Method Detail - destroy public void destroy() ▪ Chỉ được gọi một lần ở giai đoạn cuối trong vòng đời Servlet. ▪ Giúp servlet đóng các kết nối tới Database, dừng thread, thực hiện các hoạt động cleanup. ▪ Sau khi destroy() được gọi, đối tượng servlet này được đánh dấu cho Garbage Collector. 12 HttpServlet Class − Servlets kế thừa từ lớp HttpServlet. − Hai loại HTTP requests phổ biến nhất là get và post. − Lớp HttpServlet định nghĩa phương thức doGet và doPost để respond và requests từ client. − Được gọi bởi servlet container khi request đến server. 13 HttpServlet Class public abstract class HttpServlet extends GenericServlet implements java.io.Serializable − Cung cấp lớp trừu tượng để tạo một HTTP servlet phù hợp. − Lớp con của HTTPServlet phải ghi đè ít nhất một trong các phương thức sau: ▪ doGet, nếu servlet hỗ trợ HTTP GET requests ▪ doPost, cho HTTP POST requests ▪ doPut, cho HTTP PUT requests ▪ doDelete, cho HTTP DELETE requests ▪ init và destroy, để quản lý tài nguyên được giữ ▪ getServletInfo: servlet cung cấp thông tin về chính nó 14 HttpServlet Class Method Summary protected voiddoDelete(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a DELETE request. protected voiddoGet(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a GET request. protected voiddoHead(HttpServletRequest req, HttpServletResponse resp) Receives an HTTP HEAD request from the protected service method and handles the request. protected voiddoOptions(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a OPTIONS request. protected voiddoPost(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a POST request. 15 HttpServlet Class Method Summary protected voiddoPut(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a PUT request. protected voiddoTrace(HttpServletRequest req, HttpServletResponse resp) Called by the server (via the service method) to allow a servlet to handle a TRACE request. protected longgetLastModified(HttpServletRequest req) Returns the time the HttpServletRequest object was last modified, in milliseconds since midnight January 1, 1970 protected voidservice(HttpServletRequest req, HttpServletResponse resp) Receives standard HTTP requests from the public service method and dispatches them to the doXXX methods defined in this class. voidservice(ServletRequest req, ServletResponse res) Dispatches client requests to the protected service method. 16 HttpServletRequest Interface − String getParameter( String name ) ▪ Value of a parameter sent to the servlet as part of a get or post request. The name argument represents the parameter name. − Enumeration getParameterNames() ▪ Returns the names of all the parameters sent to the servlet as part of a post request. − String[] getParameterValues( String name ) ▪ For a parameter with multiple values, this method returns an array of strings containing the values for a specified servlet parameter. − Cookie[] getCookies() ▪ Returns an array of Cookie objects stored on the client by the server. Cookie objects can be used to uniquely identify clients to the servlet. 17 HttpServletRequest Interface − HttpSession getSession( boolean create ) ▪ Returns an HttpSession object associated with the client's current browsing session. − String getLocalName() ▪ Gets the host name on which the request was received. − String getLocalAddr() ▪ Gets the Internet Protocol (IP) address on which the request was received. − int getLocalPort() ▪ Gets the Internet Protocol (IP) port number on which the request was received. 18 HttpServletResponse Interface − void addCookie( Cookie cookie ) ▪ Add a Cookie to the header of the response to the client. − ServletOutputStream getOutputStream() ▪ Obtains a byte-based output stream for sending binary data to the client. − PrintWriter getWriter() ▪ Obtains a character-based output stream for sending text data (usually HTML formatted text) to the client. 19 HttpServletResponse Interface − void setContentType( String type ) ▪ Specifies the content type of the response to the browser. ▪ For examples, content type "text/html", "image/gif",... − String getContentType() ▪ Gets the content type of the response. 20 Project Servlet trong Eclipse 21 Project Servlet trong Eclipse − File WelcomeServlet.java sau khi biên dịch thành file WelcomeServlet.class được lưu trong thư mục build/class/ 22 Project Servlet trong Eclipse − Class java lưu trong thư mục src 23 Project Servlet trong Eclipse − Trang html, jsp lưu trong thư mục WebContent 24 Project Servlet trong Eclipse − File web.xml lưu trong thư mục WEB-INF 25 Project Servlet trong Eclipse − Run: right click file html / Run as/ Run on Server 26 HTTP get Requests − HTTP get request is to retrieve the content of a URL. public class WelcomeServlet extends HttpServlet { // process "get" requests from clients protected void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException { // } } 27 HTTP get Requests import java.io.*; import javax.servlet.*; import javax.servlet.http.*; @WebServlet("/WelcomeServlet") public class WelcomeServlet extends HttpServlet { public WelcomeServlet() { // } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("A Simple Servlet Example"); out.println(""); out.println(""); out.println("Welcome to Servlets!"); out.println(""); out.println(""); out.close();} protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { } } HTTP get Requests WelcomeServlet.java 28 HTTP get Requests WelcomeServlet.class 29 Web.xml 30 HTTP get Requests Containing Data import java.io.*; import javax.*; import javax.servlet.*; @WebServlet("/WelcomeServlet2") public class WelcomeServlet2 extends HttpServlet { public WelcomeServlet2() { super(); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String firstName = request.getParameter("firstname"); response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println(""); out.println(""); out.println("Processing get requests with data"); out.println(""); out.println(""); out.println("Hello " + firstName + ","); out.println("Welcome to Servlets!"); out.println(""); out.println(""); out.close(); } } 31 HTTP get Requests Containing Data 32 HTTP get Requests Containing Data 33 web.xml 34 HTTP post Requests import java.io.*; import javax.*; import javax.servlet.*; @WebServlet("/WelcomeServlet3") public class WelcomeServlet3 extends HttpServlet { public WelcomeServlet3() { super(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String firstName = request.getParameter( "firstname" ); response.setContentType( "text/html" ); PrintWriter out = response.getWriter(); out.println( "" ); out.println( "" ); out.println( "Processing post requests with data" ); out.println( "" ); out.println( "" ); out.println( "Hello " + firstName + "," ); out.println( "Welcome to Servlets!" ); out.println( "" ); out.println( "" ); out.close(); } } HTTP post Requests 35 HTTP post Requests 36 Redirecting Requests to Other Resources 37 Redirecting Requests to Other Resources 38 Redirecting Requests to Other Resources 39 Welcome Files − Welcome files to be loaded when the request URL is not mapped to a servlet. − These files are typically HTML or JSP. − Welcome files are defined using the welcome-file-list. − welcome-file-list contains one or more welcome-file. − The following welcome-file-list element indicates that index.html and index.htm. index.html index.htm 40 Welcome Files 41 Welcome Files
File đính kèm:
- bai_giang_cong_nghe_java_bai_2_servlet_nguyen_huu_the.pdf