Tổng quan về giáo trình

Giáo trình Lập trình ứng dụng Java do tập thể tác giả Tô Hữu Nguyên, Nguyễn Văn Núi và Phạm Thị Thương thuộc Bộ môn Công nghệ Phần mềm, Khoa Công nghệ Thông tin, Trường Đại học Công nghệ Thông tin và Truyền thông biên soạn (năm học 2023–2024). Tài liệu được thiết kế phục vụ học phần chuyên ngành có thời lượng 4 tín chỉ (4TC), dành cho sinh viên hệ đại học chính quy ngành Kỹ thuật phần mềm (KTPM).

Trong chương trình đào tạo, học phần giữ vai trò cầu nối giữa kiến thức lập trình hướng đối tượng cơ bản và các kỹ thuật phát triển ứng dụng Java hoàn chỉnh, bao gồm ứng dụng máy trạm (Desktop GUI) và ứng dụng phân tán trên môi trường web theo tiêu chuẩn doanh nghiệp (J2EE).

Mục tiêu học tập (learning outcomes) của giáo trình trang bị cho người học:

  • Khả năng thiết lập kết nối, quản lý truy vấn và điều khiển giao dịch trên các hệ quản trị cơ sở dữ liệu quan hệ (MySQL, SQL Server, Oracle, Access) qua thư viện chuẩn JDBC API.
  • Kỹ năng xây dựng giao diện người dùng đồ họa và xử lý sự kiện tương tác bằng bộ công cụ AWT và Java Swing.
  • Kỹ năng phát triển ứng dụng web động phía máy chủ bằng công nghệ Servlet và JSP (JavaServer Pages), kết hợp thư viện thẻ chuẩn JSTL và ngôn ngữ biểu thức EL.
  • Khả năng kiểm soát tính toàn vẹn dữ liệu thông qua cơ chế Transaction tuân thủ các thuộc tính ACID.

Cấu trúc giáo trình gồm 4 chương được triển khai theo mô hình tích hợp: từ tầng truy xuất dữ liệu nền tảng, tầng giao diện tương tác, đến tầng dịch vụ web. Điểm đặc sắc của tài liệu là sự kết hợp giữa lý thuyết kiến trúc, mã nguồn mẫu chi tiết và hệ thống 32 bảng phân loại kỹ thuật tra cứu API.


Nội dung kiến thức cốt lõi

Các chương/chủ đề chính

  • Chương 1: Làm việc với cơ sở dữ liệu trong Java (trang 9–31): Trình bày kiến trúc JDBC 2 tầng (JDBC API và JDBC Driver API) cùng 4 loại trình điều khiển (Bridge Driver, Native API Driver, JDBC-Net Driver, Native Protocol Driver). Cung cấp quy trình 5 bước thao tác dữ liệu: nạp Driver (Class.forName), tạo kết nối (DriverManager.getConnection), thực thi truy vấn (Statement, PreparedStatement), xử lý tập kết quả (ResultSet) và đóng kết nối. Nội dung bao hàm cơ chế Transaction (ACID, commit, rollback, Savepoint), kỹ thuật thực thi theo lô (Batch Processing với addBatch, executeBatch) và xử lý ngoại lệ SQLException.
  • Chương 2: Lập trình giao diện với AWT và Swing (trang 32–66): Phân tích thư viện Java Foundation Class (JFC) và kiến trúc MVC của Swing. Hướng dẫn chi tiết các đối tượng chứa (Frame, Panel, Dialog dạng modal và non-modal), các thành phần giao diện (Label, TextField, TextArea, Button, Checkbox, Choice, List) và cấu trúc thực đơn (Menubar, Menu, PopupMenu, MenuItem). Chương chuẩn hóa mô hình xử lý sự kiện qua các giao diện lắng nghe (ActionListener, ItemListener, MouseListener, KeyListener,...).
  • Chương 3: Lập trình Servlet (trang 66–121): Giới thiệu nền tảng J2EE và môi trường máy chủ web Apache Tomcat. Phân tích vòng đời Servlet (init, service, destroy), cấu hình triển khai qua web.xml và Annotations. Trình bày việc tiếp nhận yêu cầu (HttpServletRequest), thiết lập phản hồi (HttpServletResponse), định dạng mã trạng thái HTTP (Status Code), kỹ thuật điều hướng (forward, redirect), quản lý phiên (Cookie, HttpSession), cơ chế bộ lọc (Servlet Filter) và xử lý ngoại lệ.
  • Chương 4: Lập trình JSP (trang 121–215): Mô tả cấu trúc JSP Container, tiến trình biên dịch và vòng đời JSP. Hệ thống hóa các thành phần cú pháp: Scriptlet (<% %>), Declaration (<%! %>), Expression (<%= %>), Comments, Directives (page, include, taglib) và JSP Actions (<jsp:include>, <jsp:useBean>, <jsp:setProperty>, <jsp:getProperty>, <jsp:forward>). Trình bày 9 đối tượng ẩn (Implicit Objects), thư viện thẻ chuẩn JSTL (Core, Formatting, SQL, XML Tags, JSTL Functions), ngôn ngữ biểu thức EL, JavaBeans, Custom Tags, xử lý lỗi với Throwable, kỹ thuật kiểm thử và bảo mật trên JSP.

Kiến thức nền tảng được xây dựng

  • Lý thuyết nền tảng: Mô hình kiến trúc Model-View-Controller (MVC) trong ứng dụng giao diện và ứng dụng web; nguyên lý quản lý giao dịch ACID trong hệ cơ sở dữ liệu quan hệ.
  • Nguyên lý cốt lõi: Cơ chế lập trình hướng sự kiện (Event-Driven Programming) theo mô hình Observer/Listener; cơ chế duy trì trạng thái phiên làm việc (Session Management) trên giao thức phi trạng thái HTTP; cơ chế xử lý yêu cầu theo chuỗi bộ lọc (Filter Chaining).
  • Khung công nghệ: JDBC API, thư viện đồ họa Java AWT/Swing (JFC), đặc tả Servlet API và JSP Specification thuộc nền tảng J2EE.

Kỹ năng phát triển

  • Kỹ năng kỹ thuật: Cài đặt và cấu hình máy chủ Apache Tomcat; nạp Driver CSDL; viết truy vấn tham số hóa bằng PreparedStatement; thiết kế giao diện đồ họa; xây dựng các bộ lọc Servlet Filter và viết biểu thức JSP EL.
  • Kỹ năng phân tích: Ánh xạ chính xác giữa kiểu dữ liệu SQL và kiểu dữ liệu Java; lựa chọn phương thức điều hướng thích hợp giữa forward và redirect; phân biệt cơ chế hiển thị hộp thoại modal/non-modal.
  • Kỹ năng thực hành: Xây dựng lớp giao tiếp dữ liệu theo mẫu DAO<T>; lập trình giải thuật giao dịch ngân hàng đảm bảo tính nhất quán dữ liệu; xử lý dữ liệu biểu mẫu web (Form Data) qua phương thức GET/POST.

Phương pháp giảng dạy và học tập

  • Phương pháp sư phạm: Giáo trình áp dụng phương pháp tiếp cận theo cấu trúc module kế thừa (Modular Progression). Tiến trình giảng dạy đi từ tầng dữ liệu (JDBC), qua tầng hiển thị giao diện máy trạm (AWT/Swing), đến tầng dịch vụ web phân tán (Servlet/JSP). Mỗi phần lý thuyết đều gắn kèm sơ đồ kiến trúc (như sơ đồ trạng thái Transaction, cấu trúc vòng đời Servlet, tiến trình JSP Container) và các đoạn mã nguồn có chú thích từng dòng lệnh.
  • Bài tập và tình huống thực hành: Tài liệu tích hợp hệ thống bài tập thực hành ứng dụng cụ thể ở cuối các chương:
    • Bài tập CSDL (Chương 1): Khởi tạo cơ sở dữ liệu SinhVienDataBase, xây dựng cấu trúc giao diện mẫu DAO<T> chứa đầy đủ các phương thức getAll, insert, updateC, Delete, find, findByName. Xây dựng ứng dụng quản lý giao dịch ngân hàng banking thực hiện chuyển khoản giữa tài khoản 1 và tài khoản 2, sử dụng setAutoCommit(false), commit() và rollback() để đảm bảo tính nhất quán số dư.
    • Bài tập giao diện (Chương 2): Xây dựng ứng dụng tính toán 4 phép toán (EventDemo) bằng GridLayout; ứng dụng đổi màu nền theo Choice và List đa chọn; xây dựng hệ thống thanh thực đơn đa cấp MenuDemo kết hợp PopupMenu.
    • Bài tập Web (Chương 3 & 4): Triển khai chương trình Hello Servlet, Hello World JSP, cấu hình chuỗi bộ lọc Filter và xây dựng trang web tương tác với CSDL qua JSTL SQL Tags.
  • Phương pháp đánh giá và hướng dẫn tự học:
    • Đánh giá: Dựa trên tính chính xác của mã nguồn, khả năng bẫy lỗi ngoại lệ (SQLException, Throwable) và mức độ hoàn thiện của bài tập lớn theo mô hình MVC.
    • Tự học: Sinh viên tra cứu hệ thống 32 bảng biểu để nắm vững tham số của các phương thức API, thực hành cấu hình môi trường máy chủ cục bộ và chạy thử nghiệm từng bước theo các ví dụ mẫu.

Điểm nổi bật và cập nhật

  • Cập nhật chuẩn J2EE: Giáo trình được biên soạn cho năm học 2023–2024, cập nhật phương pháp khai báo Servlets, Filters và Listeners bằng Annotations, giảm sự phụ thuộc vào tệp cấu hình XML truyền thống.
  • Chuẩn hóa kỹ thuật phân tách giao diện: Tích hợp toàn diện thư viện thẻ tiêu chuẩn JSTL (Core, Formatting, SQL, XML) và ngôn ngữ biểu thức EL. Kỹ thuật này giúp loại bỏ mã Java dạng Scriptlet nhúng trong trang giao diện, đáp ứng mô hình phân tách hiển thị và nghiệp vụ.
  • Tối ưu hóa hiệu năng hệ thống: Giáo trình hướng dẫn kỹ thuật Batch Processing (addBatch(), executeBatch()) nhằm giảm thiểu chi phí truyền thông mạng khi xử lý lượng lớn dữ liệu đầu vào (như nhập danh sách người dùng từ tệp CSV), đồng thời phân tích cơ chế điểm dừng lưu (Savepoint) trong các giao dịch phức hợp.
  • Hệ thống bảng tra cứu quy chuẩn: Cung cấp 32 bảng danh mục tra cứu kỹ thuật chi tiết, bao gồm: bảng đối chiếu kiểu dữ liệu SQL sang Java (và ngược lại), bảng mã trạng thái HTTP Status Code, bảng các trường thông tin HTTP Request/Response Header, và bảng danh mục các hàm, thẻ JSTL/EL.

Đối tượng sử dụng giáo trình

  • Sinh viên: Giáo trình phục vụ trực tiếp sinh viên đại học chính quy năm thứ 2 hoặc năm thứ 3 chuyên ngành Kỹ thuật phần mềm (KTPM) và các ngành thuộc Khoa Công nghệ Thông tin, đáp ứng khối lượng đào tạo của học phần 4 tín chỉ.
  • Điều kiện tiên quyết: Người học cần hoàn thành học phần Lập trình hướng đối tượng với Java (nắm vững lớp, đối tượng, tính kế thừa, đa hình, giao diện interface, cấu trúc try-catch) và học phần Cơ sở dữ liệu (thành thạo ngôn ngữ truy vấn SQL, thao tác bảng và ràng buộc toàn vẹn).
  • Giảng viên: Sử dụng tài liệu làm khung đề cương chi tiết cho bài giảng lý thuyết, biên soạn tài liệu hướng dẫn thực hành phòng máy và làm căn cứ xây dựng ngân hàng đề thi học phần.
  • Tự học và tham khảo: Lập trình viên có nhu cầu hệ thống hóa kiến thức nền tảng về JDBC, kỹ thuật giao diện Java Swing và kiến trúc ứng dụng web Java (Servlet/JSP) theo tài liệu học thuật chuẩn.

Câu hỏi thường gặp

  1. Giáo trình này phù hợp với ai?
    Giáo trình được biên soạn cho sinh viên đại học chính quy ngành Kỹ thuật phần mềm và Công nghệ thông tin học phần Lập trình ứng dụng Java (4 tín chỉ), cũng như người học cần nghiên cứu chuyên sâu về công nghệ Java phía máy chủ.

  2. Cần kiến thức nền nào để học?
    Người học cần có kiến thức vững về lập trình hướng đối tượng (Java OOP) và thành thạo ngôn ngữ truy vấn cơ sở dữ liệu quan hệ (SQL).

  3. Điểm khác biệt của giáo trình so với tài liệu khác là gì?
    Tài liệu bao quát liền mạch từ ứng dụng Desktop (AWT/Swing) đến ứng dụng Web (Servlet/JSP), cung cấp 32 bảng tra cứu API/HTTP chuẩn xác và hệ thống bài tập thực hành theo mẫu chuẩn công nghiệp như mô hình DAO và Transaction ngân hàng.

  4. Làm sao để tự học giáo trình hiệu quả?
    Người học cần cài đặt môi trường phát triển (Eclipse/NetBeans), máy chủ Apache Tomcat và CSDL MySQL/SQL Server, sau đó thực hành tuần tự theo các bước kết nối JDBC, lập trình giao diện và xây dựng trang JSP theo hướng dẫn từng chương.

  5. Có tài liệu bổ trợ nào kèm theo giáo trình?
    Giáo trình tích hợp sẵn danh mục từ viết tắt - thuật ngữ, danh mục 32 bảng biểu đối chiếu dữ liệu/API, hệ thống sơ đồ kiến trúc và danh mục bài tập thực hành cuối mỗi chương.


Kết luận

Giáo trình Lập trình ứng dụng Java của Bộ môn Công nghệ Phần mềm, Trường Đại học Công nghệ Thông tin và Truyền thông là tài liệu học thuật hoàn chỉnh cho học phần 4 tín chỉ. Nội dung bao quát toàn diện từ tầng lưu trữ dữ liệu (JDBC), tầng giao diện đồ họa (AWT/Swing) đến tầng phát triển ứng dụng web doanh nghiệp (Servlet/JSP). Lộ trình học tập đề xuất: nắm vững cơ chế kết nối và Transaction trong JDBC (Chương 1) $\rightarrow$ xây dựng giao diện tương tác hướng sự kiện với AWT/Swing (Chương 2) $\rightarrow$ triển khai dịch vụ máy chủ với Servlet (Chương 3) $\rightarrow$ hoàn thiện ứng dụng web MVC với JSP, JSTL và EL (Chương 4). Các công cụ hỗ trợ cần thiết khi học tập gồm có máy chủ web Apache Tomcat, các bộ JDBC Driver chuyên dụng (như MySQL Connector/J) và hệ quản trị CSDL quan hệ.