Java Servlet
Java ServletJava Servletthangld@uit.edu.vnthangld@uit.edu.vnKhoa Mạng máy tính và Truyền thôngKhoa Mạng máy tính và Truyền thôngĐại học Công nghệ Thông tinĐại học Công nghệ Thông tin Nội dungNội dungGiới thiệu chungGiới thiệu chungVí dụ mở đầuVí dụ mở đầuHTTP ServletsHTTP ServletsSession TrackingSession TrackingCookiesCookies Java ServletJava ServletServlet là các chương trình chạy trên máy Servlet là các chương trình chạy trên máy server (servlet container)server (servlet container)Hoạt động như là lớp trung gian giữa máy Hoạt động như là lớp trung gian giữa máy client (với các yêu cầu HTTP) và CSDL hoặc client (với các yêu cầu HTTP) và CSDL hoặc các ứng dụng kháccác ứng dụng khácPhát sinh các nội dung (HTML) độngPhát sinh các nội dung (HTML) độngWebBrowserWebServerHTTPRequestHTTPResponseCSDLCSDLJava Application /Java Application /WebServiceWebServiceServlet CGI: Common Gateway InterfaceCGI: Common Gateway InterfaceCác chương trình CGI truyền thống thực Các chương trình CGI truyền thống thực thi trên Web server phục vụ các yêu cầu thi trên Web server phục vụ các yêu cầu HTTP từ clientHTTP từ clientClient gửi một HTTP requestClient gửi một HTTP requestServer thực thi chương trình CGIServer thực thi chương trình CGIHTTP server nhận kết quả trả về từ chương HTTP server nhận kết quả trả về từ chương trình CGI (thường dưới dạng HTML) và gửi trình CGI (thường dưới dạng HTML) và gửi trả về cho clienttrả về cho client Java Servlet vs. CGIJava Servlet vs. CGIƯu điểm của servletƯu điểm của servletHiệu quả hơn, mạnh mẽ hơnHiệu quả hơn, mạnh mẽ hơnDễ sử dụngDễ sử dụngKhả chuyểnKhả chuyểnAn toàn hơnAn toàn hơn Java Servlet vs. Java AppletJava Servlet vs. Java AppletServlet là server-side prog., thực thi ở phía Servlet là server-side prog., thực thi ở phía server; applet là client-side prog., thực thi ở server; applet là client-side prog., thực thi ở máy client (browser)máy client (browser)Servlet tạo nên nội dung động gửi về cho Servlet tạo nên nội dung động gửi về cho client; applet làm cho trang web thêm sống client; applet làm cho trang web thêm sống độngđộngKhông giống như applet, servlet không có Không giống như applet, servlet không có GUI mà chỉ cài đặt những thao tác xử lý GUI mà chỉ cài đặt những thao tác xử lý business logicbusiness logic Ví dụ mở đầuVí dụ mở đầuimport java.io.*;import javax.servlet.*;public class SimpleGenericServlet extends GenericServlet { public void service (ServletRequest request,ServletResponse response)throws ServletException, IOException {response.setContentType("text/plain");PrintWriter out = response.getWriter();out.println("Hello World");out.close();} } Ví dụ mở đầuVí dụ mở đầuservice()service(): là phương thức quan trọng : là phương thức quan trọng nhất trong một servletnhất trong một servletXác định nhiệm vụ của servletXác định nhiệm vụ của servletĐược tự động gọi thực hiện khi có yêu cầu từ Được tự động gọi thực hiện khi có yêu cầu từ clientclientPhải được override khi lập trình servletPhải được override khi lập trình servletPhương thức này nhận vào hai tham sốPhương thức này nhận vào hai tham sốServletRequestServletRequestServletResponseServletResponse ServletRequest & ServletResponseServletRequest & ServletResponseĐược định nghĩa trong package Được định nghĩa trong package javax.servletjavax.servletĐối tượng Đối tượng requestrequest và và responseresponse được được server truyền vào khi gọi thực thi phương server truyền vào khi gọi thực thi phương thức thức serviceservicerequestrequestChứa tất cả những thông tin từ browser gửi lên Chứa tất cả những thông tin từ browser gửi lên serverserverresponseresponseĐược sử dụng để gửi thông tin về cho browserĐược sử dụng để gửi thông tin về cho browser Biên dịch và thực thi servletBiên dịch và thực thi servletBiên dịchBiên dịchCần có gói thư viện Cần có gói thư viện servlet.jarservlet.jarMôi trường thực thiMôi trường thực thiCài đặt và khởi động TomcatCài đặt và khởi động TomcatĐặt các servlet đúng vị trí trên serverĐặt các servlet đúng vị trí trên serverThực thiThực thihttp://<server>:8080/servlet/<tên-servlet>http://<server>:8080/servlet/<tên-servlet> [...]... javax .servlet javax .servlet Interface Interface Servlet Servlet : khai báo các : khai báo các phương thức của một servlet ( phương thức của một servlet ( init(), init(), service(), service(), … … ) ) GenericServlet GenericServlet thi công interface thi công interface Servlet Servlet HttpServlet HttpServlet là lớp dẫn xuất từ lớp là lớp dẫn xuất từ lớp GenericServlet GenericServlet ... đồng thời Servlet có thể xử lý nhiều yêu cầu đồng thời Server kết thúc hoạt động của một servlet Server kết thúc hoạt động của một servlet Server Server Servlet Servlet Servlet Servlet load unload Thread Thread Thread Thread Client Client Xử lý yêu cầu POST Xử lý yêu cầu POST import java. io.*; import javax .servlet. *; import javax .servlet. http.*; public class SimpleHttpServlet extends HttpServlet... thuật, một servlet là một lớp Về mặt kỹ thuật, một servlet là một lớp (chương trình) kế thừa hoặc lớp (chương trình) kế thừa hoặc lớp GenericServlet GenericServlet hoặc hoặc HttpServlet HttpServlet Servlet Servlet GenericServlet GenericServlet HttpServlet HttpServlet Q&A Q&A Cookies Cookies Mỗi cookie có cấu trúc: Mỗi cookie có cấu trúc: tên=giátrị tên=giátrị Servlet Servlet Khởi... javax .servlet. http.HttpSession javax .servlet. http.HttpSession Session được liên kết với một request Session được liên kết với một request Xử lý: GET & POST Xử lý: GET & POST import java. io.*; import javax .servlet. *; import javax .servlet. http.*; public class SimpleHttpServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException,... tượng RequestDispatcher từ HttpServletRequest HttpServletRequest Servlet API 2.2 Servlet API 2.2 ServletContext ServletContext Servlet API 2.1 Servlet API 2.1 Ví dụ Ví dụ RequestDispatcher dis= RequestDispatcher dis= request.getRequestDispatcher( request.getRequestDispatcher( “ “ http://localhost/foo.jsp”); http://localhost/foo.jsp”); Java Servlet Java Servlet thangld@uit.edu.vn thangld@uit.edu.vn Khoa... động Web Browser Web Server HTTP Request HTTP Response CSDL CSDL Java Application / Java Application / WebService WebService Servlet Chu kỳ sống của servlet Chu kỳ sống của servlet Hoạt động của các servlet được kiểm soát Hoạt động của các servlet được kiểm soát bởi server bởi server Server nạp và khởi tạo một servlet Server nạp và khởi tạo một servlet Tạo một thread để thực thi servlet Tạo một thread để thực thi servlet Servlet có thể... thêm sống động động Khơng giống như applet, servlet khơng có Khơng giống như applet, servlet khơng có GUI mà chỉ cài đặt những thao tác xử lý GUI mà chỉ cài đặt những thao tác xử lý business logic business logic javax .servlet. http.HttpServlet javax .servlet. http.HttpServlet Là lớp dẫn xuất của GenericServlet: chứa Là lớp dẫn xuất của GenericServlet: chứa phương thức phương thức service() service() Phương... dạng HTML) và gửi trả về cho client trả về cho client Xử lý yêu cầu GET Xử lý yêu cầu GET import java. io.*; import javax .servlet. *; import javax .servlet. http.*; public class SimpleHttpServlet extends HttpServlet { public void doGet (HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/plain"); PrintWriter out = response.getWriter(); out.println("Hello... gửi thông tin về cho browser Java Servlet vs. Java Applet Java Servlet vs. Java Applet Servlet là server-side prog., thực thi ở phía Servlet là server-side prog., thực thi ở phía server; applet là client-side prog., thực thi ở server; applet là client-side prog., thực thi ở máy client (browser) máy client (browser) Servlet tạo nên nội dung động gửi về cho Servlet tạo nên nội dung động gửi... servlet Biên dịch Biên dịch Cần có gói thư viện Cần có gói thư viện servlet. jar servlet. jar Mơi trường thực thi Mơi trường thực thi Cài đặt và khởi động Tomcat Cài đặt và khởi động Tomcat Đặt các servlet đúng vị trí trên server Đặt các servlet đúng vị trí trên server Thực thi Thực thi http://<server>:8080 /servlet/ <tên -servlet& gt; http://<server>:8080 /servlet/ <tên -servlet& gt; . thihttp://<server>:8080 /servlet/ <tên -servlet& gt;http://<server>:8080 /servlet/ <tên -servlet& gt; javax.servletjavax .servlet Interface Interface ServletServlet: khai báo các : khai báo các phương thức của một servlet. chuyểnAn toàn hơnAn toàn hơn Java Servlet vs. Java AppletJava Servlet vs. Java Applet Servlet là server-side prog., thực thi ở phía Servlet là server-side prog.,