Bài giảng Lập trình ứng dụng Web - Chương 6: Lập trình Web với các công nghệ phổ biến trình bày các nội dung chính sau: Giới thiệu Servlet/JSP, lập trình web với Servlet, lập trình web với JSP, giới thiệu ASP, lập trình web với ASP. Mời các bạn cùng tham khảo.
CHƯƠNG 6: LẬP TRÌNH WEB VỚI CÁC CƠNG NGHỆ PHỔ BIẾN 6.1 Giới thiệu Servlet/JSP 6.2 Lập trình web với Servlet 6.3 Lập trình web với JSP 6.4 Giới thiệu ASP 6.5 Lập trình web với ASP Lập trình mạng – Chương 6.1 Giới thiệu Servlet/JSP • Servlet ứng dụng (class) Java chạy web server • Cơ chế hoạt động theo mơ hình CGI mở rộng • Chương trình phải dịch dạng bytecode(.class), khai báo với web server Web server phải hỗ trợ Java • Phải extends class HttpServlet Khơng có method main Lập trình mạng – Chương 6.1 Giới thiệu Servlet/JSP • Cần có package servlet.jar để biên dịch (http://java.sun.com/products/servlet/) • Các server hỗ trợ Servlet: – Apache Tomcat (http://jakarta.apache.org) – Sun’s Java Web Server, free, không cho download (http://wwws.sun.com/software/jwebserver/) – New Atlanta’s ServletExec, tích hợp ServletEngine vào web server(http://newatlanta.com) – http://www.macromedia.com/software/jrun/trial/ –… • Tham khảo tài liệu Servlet: http://java.sun.com/products/servlet/docs.html Lập trình mạng – Chương 6.1 Giới thiệu Servlet/JSP • Cấu trúc đơn giản Servlet: import java.io.*; import java.servlet.*; import java.servlet.http.*; public class Sample extends HttpServlet{ public doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException,IOException{ //dùng đối tượng “request” để đọc liệu từ client //đối tượng “response” để xuất liệu cho client PrintWriter out = response.getWriter(); //dùng đối tượng out để ghi (method print) liệu cho client } } Lập trình mạng – Chương 6.1 Giới thiệu Servlet/JSP • Biên dịch class Java • File *.class dịch phải đặt vào thư mục quy định sẵn web server – Tomcat: $/webpages/WEB-INF/classes – JWS: $/servlets • Cấu hình cho web server servlet: – Tomcat: hiệu chỉnh file web.xml thư mục $/webpages/WEB-INF theo DTD http://java.sun.com/j2ee/dtds/webapp_2_2.dtd – JWS: Cấu hình web-based tool cung cấp Lập trình mạng – Chương 6.1 Giới thiệu Servlet/JSP • Cơ chế hoạt động servlet: – Web server nhận yêu cầu triệu gọi servlet từ client • Nếu servlet chạy lần đầu, web server load file servlet tương ứng, khởi tạo thông số qua method init() • Nếu servlet khởi tạo, tạo thread để xử lý yêu cầu – Gọi methods doXxx() để xử lý request tương ứng theo giao thức HTTP • doGet( ) cho HTTP GET, doPost cho HTTP POST Lập trình mạng – Chương 6.2 Lập trình web với Servlet • Lấy liệu từ web client gởi đến servlet: – Dùng đối tượng class HttpServletRequest – Các methods để lấy thơng số: • getParameter(“para-name”) • getParameterValues(“para-name”) String username= request.getParameter(“username”); String[] choice = request.getParameterValues(“comments”); – Dùng đối tượng class HttpServletRequest để lấy thơng tin HTTP header Lập trình mạng – Chương 6.2 Lập trình web với Servlet • Ví dụ lấy tất thông số từ client Enumeration parameter_names = request.getParameterNames(); while(parameter_names.hasMoreElements()){ String para = parameter_names.nextElement(); out.print(para + “ = ”); String[] paraValues = getParameterValues(para); if(paraValues.lenght()==1){ out.println(paraValues[0]); }else{ for(int i = 0, i< paraValues.lenght(),i++){ out.print(paraValues[i]+ “-”); } } } Lập trình mạng – Chương 6.2 Lập trình web với Servlet • Lấy thơng số HTTP request header: class HttpServletRequest cung cấp method để lấy thông số request header – String getHeader(header-name): lấy nội dung header-name – Enumeration getHeaderNames(): lấy tất header-name – Một số method điển hình: • • • • Cookie[] getCookies(): dãy Cookie từ client int getContentLength(): trả giá trị Content-Length int getContentType(): trả giá trị Content-Type int getRemoteUser(): giá trị username có authenticate Lập trình mạng – Chương 6.2 Lập trình web với Servlet • Lấy thơng số HTTP request header: – Lấy giá trị biến mơi trường CGI: • • • • • • • • • • QUERY_STRING: getQueryString() REMOTE_ADDR: getRemoteAddr() REMOTE_HOST: getRemoteHost() REQUEST_METHOD: getMethod() PATH_INFO: getPathInfo() SCRIPT_NAME: getServletPath() SERVER_NAME: getServerName() SERVER_PORT: getServerPort() HTTP_XXX_YYY: getHeader(“Xxx-Yyy”) … Lập trình mạng – Chương 10 6.5 Lập trình web với ASP • Cập nhật thơng tin record: strSQLUpdate = “UPDATE table SET field1=…, field2=… WHERE …” objRecordset Excute strSQLUpdate Lập trình mạng – Chương 35 LẬP TRÌNH WEB VỚI PHP • Giới thiệu PHP • Truy cập biến form • Quản lý session, cookie • Truy xuất sở liệu • Một số chức khác (tham khảo) Lập trình mạng – Chương 36 Giới thiệu PHP • Là ngơn ngữ lập trình ứng dụng web • Mã lệnh PHP nhúng vào trang HTML tương tự JSP hay ASP • Hoạt động theo chế thông dịch với PHP engine tích hợp vào web server PHP engine hỗ trợ nhiều loại web server (trên hệ điều hành khác nhau) => PHP có tính portable cao • Các web server phổ biến cài đặt PHP engine: IIS, Apache Apache PHP thường có sẵn Linux Lập trình mạng – Chương 37 Giới thiệu PHP • Cài đặt PHP Windows – Cài đặt PHP lên máy, download từ: http://www.php.net/, … – Cấu hình số thơng số cần thiết file $Windows/php.ini: • error_log = {filename} • post_max_size = 8M • file_uploads = {On|Off} • upload_tmp_dir = {directory} • session.save_path = {directory} • session.auto_start = {0|1} Lập trình mạng – Chương 38 Giới thiệu PHP • Cấu hình PHP IIS – Chọn Properties web site – Cấu hình tương tự hình bên Lập trình mạng – Chương 39 Giới thiệu PHP • Ví dụ trang PHP đơn giản PHP Hello World! Lập trình mạng – Chương 40 Giới thiệu PHP • Cú pháp PHP tương tự C Java • Được viết chèn vào mã HTML theo dạng: – – –