TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM -------------o0o------------ GIÁO TRÌNH LẬP TRÌNH ỨNG DỤNG JAVA Tên môn học: Lập trình ứng dụng java Số tín chỉ/ĐVHT: 4TC Hệ đào tạo: Đại học chính quy Ngành: KTPM Khoa: Công nghệ thông tin Tập thể biên soạn: Tô Hữu Nguyên, Nguyễn Văn Núi, Phạm Thị Thƣơng Đơn vị công tác: Bộ môn CNPM – Khoa CNTT Năm học: 2023-2024 1 MỤC LỤC MỤC LỤC. 2 DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ. 5 DANH MỤC HÌNH VẼ. 6 CHƢƠNG 1: LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU TRONG JAVA.
Kiến trúc jdbc. Các trình điều khiển (jdbc driver). Viết chƣơng trình làm việc với csdl qua jdbc. Kiểu dữ liệu sql và kiểu dữ liệu java.
Statement và Resulset. Transaction trong JDBC. 19 CHƢƠNG 2: LẬP TRÌNH GIAO DIỆN VỚI AWT VÀ SWING. Tổng quan về lập trình giao diện trong java.
Các đối tƣợng container cơ bản. Các đối tƣợng component cơ bản. Các sự kiện cơ bản của đối tƣợng. Xử lý sự kiện.
Mở rộng các đối tƣợng component. Mở rộng các đối tƣợng container. Các đối tƣợng nâng cao của swing. 66 CHƢƠNG 3: LẬP TRÌNH SERVLET.
Tổng quan về J2EE. Tổng quan Servlet. Cấu trúc Servlets. Cài đặt môi trƣờng Servlet.
Cài đặt Web Server: Tomcat. Vòng đời (Life Cycle) của Servlet. Cấu hình Servlet. Tham số khởi tạo Servlet.
Sử dụng Annotations để khai báo servlets, Filter và listeners. Form Data trong Servlet. Phƣơng thức doGET. Phƣơng thức GET sử dụng FORM.
Client Request trong Servlet. Server Response trong Servlet. Status Code trong Servlet. Sử dụng forward và redirect trong Servlet.
Cookie trong Servlet. Session trong Servlet. Filter trong Servlet. Các phƣơng thức Servlet Filter.
Ví dụ về Servlet Filter. Ánh xạ Servlet Filter trong Web. Sử dụng nhiều Filter trong Servlet. Thứ bậc của các Filter.
Xử lý ngoại lệ (Exception) trong Servlet. 121 CHƢƠNG 4 : LẬP TRÌNH JSP. Java Server Pages (JSP) là gì?. Tại sao sử dụng JSP?.
Cấu trúc JSP. Tiến trình JSP. Vòng đời (Life Cycle) trong JSP. Cú pháp trong JSP.
Scriptlet trong JSP. Declarations trong JSP. Expression trong JSP. Comment trong JSP.
Directive trong JSP. Action trong JSP. Các đối tƣợng ẩn (Implicit) trong JSP. Điều khiển luồng trong JSP.
Directive trong JSP. page Directive trong JSP. Include Directive trong JSP. Taglib Directive trong JSP.
Action trong JSP. <jsp:include> Action trong JSP. <jsp:useBean> Action trong JSP. <jsp:setProperty> Action trong JSP.
<jsp:getProperty> Action trong JSP. <jsp:forward> Action trong JSP. <jsp:plugin> Action trong JSP. <jsp:element>, <jsp:attribute>, <jsp:body>.
<jsp:text> Action trong JSP. Đối tƣợng ẩn (Implicit) trong JSP. Đối tƣợng request trong JSP. Đối tƣợng response trong JSP.
Đối tƣợng out trong JSP. Đối tƣợng session trong JSP. Đối tƣợng application trong JSP. Đối tƣợng config trong JSP.
Đối tƣợng pageContext trong JSP. Đối tƣợng page trong JSP. Client Request trong JSP. Server Response trong JSP.
Status Code trong JSP. Xử lý Form trong JSP. Phƣơng thức GET. Phƣơng thức POST.
Thƣ viện thẻ chuẩn - Standard Tag Library (JSTL) trong JSP. JavaBeans trong JSP. Custom Tags trong JSP. Expression Language (EL) trong JSP.
Cú pháp đơn giản cho JSP EL .Toán tử cơ bản trong EL. Hàm trong JSP EL. Xử lý ngoại lệ (Exception) trong JSP. Debug trong JSP.
Bảo mật trong JSP. 215 4 DANH MỤC TỪ VIẾT TẮT VÀ THUẬT NGỮ Từ viết Tên tiếng Anh Giải thích tắt JDBC Java Database Connectivity Kết nối cơ sở dữ liệu Java API Application Programming Interface Giao diện lập trình ứng dụng UI User Interface Giao diện ngƣời dùng AWT Abstract Window Toolkit Bộ công cụ lập trình giao diện java JFC Java Foundation Class Các lớp cơ sở của Java Nền tảng phát triển và triển khai ứng J2EE Java 2 Platform, Enterprise Edition dụng java chuyên nghiệp. EL JSP Expression Language Ngôn ngữ biểu thức nhúng trong JSP Tên công nghệ phát triển ứng dụng JSP JavaServer Pages web trên java MVC Model-View-Controller Tên một hệ điều hành JSTL Java Standard Tag Library Thƣ viện thẻ tiêu chuẩn Java 5 DANH MỤC HÌNH VẼ Hình 1: 1Kiến trúc JDBC .10 Hình 1: 2 Các lớp và giao diện cơ bản trong JDBC.11 Hình 1: 3 Các trạng thái của Transaction .23 Hình 2: 1 Java Foundation Class.32 Hình 2: 2 interfaces lắng nghe sự kiện .58 Hình 2: 3 Kiến trúc MVC của SWING .60 Hình 2: 4 Các lớp cơ bản trong SWING: .62 Hình 2: 5 Các đối tƣợng cơ bản khác của java SWING .64 Hình 2: 6 Các đối tƣợng nâng cao của SWING .66 Hình 3: 1 Cấu trúc Servlets .72 Hình 3: 2 Cài đặt Tomcat .74 Hình 3: 3 Vòng đời của Servlet.75 Hình 3: 4 Sơ đồ cấu trúc vòng đời của Servlet .78 Hình 3: 5 Kết quả chƣơng trình Hello Servlet .80 Hình 3: 6 Forward trong Servlet .110 Hình 3: 7 Redirect trong Servlet .111 Hình 3: 8 Servlet Filter .117 Hình 4: 1 JSP Container .130 Hình 4: 2 Tiến trình JSP .131 Hình 4: 3 Vòng đời của JSP .132 Hình 4: 4 Kết quả chƣơng trình Hello World JSP .134 6 DANH MỤC BẢNG BIỂU Bảng 1: 1 Bảng chuyển đổi từ kiểu dữ liệu SQL sang Java.16 Bảng 1: 2 Bảng chuyển đổi từ kiểu dữ liệu Java sang SQL.17 Bảng 2: 1 So sánh SWING và AWT.60 Bảng 3: 1 Các thông tin Header từ trình duyệt .93 Bảng 3: 2 Các phƣơng thức của HttpServletRequest.96 Bảng 3: 3 Các trƣờng Header .101 Bảng 3: 4 Các phƣơng thức thiết lập Response Header trong Servlet .103 Bảng 3: 5 Các HTTP Status code và thông báo tƣơng ứng .108 Bảng 3: 6 các phƣơng thức để thiết lập HTTP Status code trong Servlet .109 Bảng 3: 7 Các phƣơng thức xử lý cookie trong servlet .113 Bảng 3: 8 Các phƣơng thức của đối tƣợng HttpSession .116 Bảng 3: 9 Các phƣơng thức Servlet Filter .117 Bảng 3: 10 Các thuộc tính Error/Exception .123 Bảng 4: 1 Comment trong JSP .137 Bảng 4: 2 Thẻ directive trong JSP .137 Bảng 4: 3 Các JSP action .138 Bảng 4: 4 Các đối tƣợng ẩn trong JSP .139 Bảng 4: 5 Các toán tử trong JSP .143 Bảng 4: 6 Các thẻ directive trong JSP.144 Bảng 4: 7 Các thuộc tính liên kết với page Directive .145 Bảng 4: 8 Các Action trong JSP.147 Bảng 4: 9 Các thuộc tính liên quan với include action trong JSP .148 Bảng 4: 10 Các thuộc tính liên kết với useBean action trong JSP .149 Bảng 4: 11 Các thuộc tính liên kết với setProperty action trong JSP .150 Bảng 4: 12 Các thuộc tính liên kết với getProperty action trong JSP .151 Bảng 4: 13 Các tham số liên kết với forward action trong JSP .152 Bảng 4: 14 Các đối tƣợng ẩn trong JSP .156 Bảng 4: 15 Các phƣơng thức của đối tƣợng out .157 Bảng 4: 16 Các thông tin header từ trình duyệt .160 Bảng 4: 17 Các phƣơng thức của HttpServletRequest.163 7 Bảng 4: 18 Tên và giá trị tƣơng ứng của HTTP Header Request trong JSP .165 Bảng 4: 19 Các trƣờng Header từ trình duyệt .167 Bảng 4: 20 Các phƣơng thức của HttpServletResponse trong JSP .169 Bảng 4: 21 Các HTTP Status code và các thông báo tƣơng ứng .174 Bảng 4: 22 Các phƣơng thức sử dụng để thiết lập HTTP Status code trong chƣơng trình JSP .175 Bảng 4: 23 Các thẻ Core Tags trong JSTL .185 Bảng 4: 24 Các thẻ trong nhóm Formatting Tags trong JSTL .186 Bảng 4: 25 Các thẻ SQL Tags trong JSP .187 Bảng 4: 26 Các thẻ trong nhóm XML Tags trong JSTL.188 Bảng 4: 27 Các JSTL Functions .190 Bảng 4: 28 Các phƣơng thức truy nhập thuộc tính của JavaBean .190 Bảng 4: 29 Các thuộc tính của Custom Tag trong JSP .199 Bảng 4: 30 Các toán tử cơ bản trong EL .202 Bảng 4: 31 Các đối tƣợng ẩn của EL .203 Bảng 4: 32 Các phƣơng thức quan trọng trong lớp Throwable .207 8 CHƢƠNG 1: LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU TRONG JAVA Mục tiêu: Cung cấp cho sinh viên kỹ năng lập trình cơ sở dữ liệu trong java, thực hiện kết nối và tƣơng tác các hệ quản trị cơ sở dữ liệu khác nhau, sử dụng thành thạo các JDBC API giúp các ứng dụng Java có thể kết nối và thực hiện các thao tác truy vấn và xử lý dữ liệu. Nội dung: Kiến trúc JDBC Driver JDBC Kết nối và quản lý kết nối.
Thực hiện truy vấn SQL. Xử lý kết quả. Quản lý giao dịch 1. Kiến trúc jdbc JDBC (Java Database Connectivity, java.*) là một thƣ viện chuẩn dùng để truy cập dữ liệu quan hệ từ ứng dụng bằng ngôn ngữ truy vấn sql, một vài hệ cơ sở dữ liệu phổ biến nhƣ nhƣ Access, MS SQL, Oracle, … Kiến trúc của JDBC gồm 2 tầng: 9 Hình 1: 1Kiến trúc JDBC + JDBC API: có nhiệm vụ chuyển các câu lệnh SQL cho bộ quản lý trình điều khiển JDBC + JDBC Driver API: thực hiện nhiệm vụ liện hệ với trình điều khiển của hệ quản trị cơ sở dữ liệu cụ thể.
Các lớp và giao diện cơ bản trong JDBC API. 10 Hình 1: 2 Các lớp và giao diện cơ bản trong JDBC 1. Các trình điều khiển (jdbc driver) Trình điều khiển JDBC là đoạn chƣơng trình, do chính cầu hệ quản trị CSDL cụ thể thực hiện các câu lệnh SQL. nhà xây dựng hệ quản trị CSDL hoặc do nhà cung ứng thứ ba cung cấp, có khả năng yêu Danh sách các trình điều khiển JDBC cho các hệ quản trị CSDL khác nhau đƣợc Sun cung cấp và cập nhật liên tục tại địa chỉ: http://industry.com/products/jdbc/drivers.
Các trình điều khiển JDBC đƣợc phân làm 04 loại khác nhau. -Loại 1: Bridge Driver kết nối với các hệ CSDL thông qua cầu nối ODBC, dùng trong ngày đầu Java xuất hiện, ngày nay không còn phổ biến do có nhiều hạn chế. Nó cung cấp kèm trong bộ J2SE với tên: sun. -Loại 2: Native API Driver: chuyển các lời gọi của JDBC API sang thƣ viện hàm (API) tƣơng ứng với từng hệ CSDL cụ thể.
Trình điều khiển do nhà xây dựng hệ CSDL cung cấp. -Loại 3: JDBC-Net Driver: chuyển các lời gọi JDBC API sang một dạng chuẩn độc lập với các hệ CSDL, và sau đƣợc chuyển sang lời gọi của hệ CSDL cụ thể bỡi 1 chƣơng trình trung gian. Trình điều khiển của các nhà cung ứng thứ 3 thƣờng thuộc loại này. Lợi thế của trình điều khiển loại này là không cần cung cấp mã lệnh kèm theo và có thể sử dụng cùng một trình điều khiển để truy cập đến nhiều hệ CSDL khác nhau.
11 -Loại 4: Native Protocol Driver: chuyển các lời gọi JDBC API sang mã lệnh của hệ CSDL cụ thể.