1. Trang chủ
  2. » Công Nghệ Thông Tin

Lập trình Java

66 1,4K 8
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 66
Dung lượng 1,64 MB

Nội dung

Lập trình Java

Trang 1

MỘT SỐ VẤN ĐỀ VỀ CÔNG NGHỆ JAVA

Nguyễn Xuân Trường Phòng Nghiên cứu phát triển và Đảm bảo chất lượng

Hà Nội, 01 / 2007

Trang 2

BẢNG GHI NHẬN THAY ĐỔI

Trang 3

MỤC LỤC

1 Giới thiệu 5

2 Một số vấn đề chung về Java 5

2.1 Ngôn ngữ Java 5

2.1.1 Lịch sử phát triển 5

2.1.2 Đặc điểm chính 5

2.1.3 Các ứng dụng Java 6

2.1.4 Sự phát triển của Java 7

2.1.5 Chuẩn bị phát triển ứng dụng với Java 7

2.1.6 Tổ chức chương trình 7

2.2 IDEs thông dụng 7

2.2.1 Vai trò của IDEs 7

2.2.2 Các loại IDEs thông dụng cho Java 8

2.2.3 Lựa chọn IDEs 9

2.3 Các tiện ích, công cụ hỗ trợ 9

2.3.1 Apache Ant 9

2.3.2 Apache Maven 10

2.3.3 Test tools 11

2.4 Đóng gói, tạo lập bộ cài đặt ứng dụng Java 11

2.5 Vấn đề an toàn bảo mật trong Java 12

2.5.1 Kiến trúc 12

2.5.2 Mã hóa 12

2.5.3 Hạ tầng mã khóa công khai 12

2.5.4 Chứng thực 13

2.5.5 Bảo mật trên đường truyển 13

2.5.6 Điều khiển truy nhập 13

2.6 Database 13

2.6.1 PostgreSQL 14

2.6.2 MySQL 14

2.7 Server 15

2.7.1 Server 15

2.7.2 Apache Tomcat 15

2.7.3 Jboss 16

2.8 Hỗ trợ kiểm soát chất lượng (Convention, Test, CVS) 19

2.8.1 Java Convention 19

Trang 4

2.8.2 CVS 20

2.8.3 Testing 20

2.9 Về máy ảo Java JVM 21

2.9.1 Định nghĩa JVM 22

2.9.2 Các vấn đề với JVM 22

3 Tổng quan về một số ứng dụng Java 22

3.1 Desktop application 22

3.1.1 Đặc điểm ứng dụng Desktop 22

3.1.2 Lựa chọn component cho ứng dụng Java Desktop 23

3.1.3 Đóng gói và triển khai ứng dụng 24

3.2 Web application 24

3.2.1 Đặc điểm ứng dụng Web 24

3.2.2 Tổ chức ứng dụng Web 24

3.2.3 Triển khai ứng dụng Web 25

3.3 J2EE application 26

3.3.1 Đặc điểm ứng dụng J2EE 26

3.3.2 Tổ chức ứng dụng J2EE 26

3.3.3 Triển khai ứng dụng J2EE 27

3.4 J2ME application 28

3.4.1 Đặc điểm ứng dụng J2ME 28

3.4.2 Tổ chức ứng dụng J2ME 28

3.4.3 Triển khai ứng dụng J2ME 28

3.5 Distributed application 28

4 Tổng quan về một số công nghệ, Framework 28

4.1 Servlet / JSP 28

4.1.1 Tổng quan 28

4.1.2 Servlet 28

4.1.3 JSP 29

4.1.4 Quan hệ Servlet, JSP 30

4.2 JavaScript, CSS, Ajax 30

4.2.1 JavaScript 30

4.2.2 CSS 31

4.2.3 Ajax 32

4.3 AWT, Swing 34

4.3.1 AWT 34

4.3.2 Swing 34

Trang 5

4.3.3 AWT vs Swing 36

4.4 Mô hình MVC 36

4.4.1 Mô hình ứng dụng Web với Servlet, JSP 37

4.4.2 Mô hình MVC 38

4.5 Struts 39

4.5.1 Struts và MVC 39

4.5.2 Đặc điểm của Struts 40

4.5.3 Cấu hình ứng dụng Struts 41

4.6 EJB 43

4.6.1 EJB trong kiến trúc J2EE 43

4.6.2 Khi nào sử dụng EJB 43

4.6.3 Cài đặt EJB 44

4.6.4 Phân loại EJB 45

4.7 Spring 48

4.7.1 Đặc điểm của Spring 49

4.7.2 Các thành phần của Spring 49

4.8 Hibernate 51

4.8.1 Giới thiệu về Hibernate 51

4.8.2 Kiến trúc Hibernate 52

4.8.3 Phát triển ứng dụng với Hibernate 53

4.9 Web Services 54

4.9.1 Lịch sử hình thành Web Services 54

4.9.2 Kiến trúc Web Services 54

4.9.3 Các thành phần Web Services 56

4.9.4 Web Services trong công nghệ Java 59

4.10 Portal 59

4.10.1 Sự hình thành Portal 59

4.10.2 Định nghĩa & đặc điểm của Portal 60

4.10.3 Các loại Portal 61

4.10.4 Portal với công nghệ Java 62

5 Tài liệu tham khảo 65

Trang 6

1 Giới thiệu

Java is an island of Indonesia and the site of its capital city, Jakarta

Do not lose time here Please go ahead and read my report right now ☺

Sơ khởi của Java là dự án "Oak", thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử

do James Gosling và các đồng nghiệp tại Sun phụ trách Được xây dựng trên nền tảng của C/C++ sau khi bỏ đi các đặc tính phức tạp, Java là ngôn ngữ hướng đối tượng thuần túy và độc lập với hệ nền, đặc biệt phù hợp với việc xây dựng các hệ thống hoạt động trên môi trường internet

Java đi từ chỗ một ngôn ngữ lập trình đã trở thành một nền tảng công nghệ Cùng với NET của MicroSoft, Java trở thành một trong hai công nghệ chủ yếu cho việc phát triển phần mềm hiện nay Các phiên bản chính thức được phát hành của Java (từ Wiki):

• JDK 1.1.4 (Sparkler) September 12, 1997

JDK 1.1.5 (Pumpkin) December 3, 1997 JDK 1.1.6 (Abigail) April 24, 1998 JDK 1.1.7 (Brutus) September 28, 1998 JDK 1.1.8 (Chelsea) April 8, 1999

• J2SE 1.2 (Playground) December 4, 1998

J2SE 1.2.1 (none) March 30, 1999 J2SE 1.2.2 (Cricket) July 8, 1999

• J2SE 1.3 (Kestrel) May 8, 2000

J2SE 1.3.1 (Ladybird) May 17, 2001

• J2SE 1.4.0 (Merlin) February 13, 2002

J2SE 1.4.1 (Hopper) September 16, 2002 J2SE 1.4.2 (Mantis) June 26, 2003

• J2SE 5.0 (1.5.0) (Tiger) September 29, 2004

• Java SE 6 (1.6.0) (Mustang) December 11, 2006

• Java SE 7 (1.7.0) (Dolphin) anticipated for 2008

2.1.2 Đặc điểm chính

• Kế thừa từ C/C++ sau khi loại bỏ các đăc tính phức tạp: đa kế thừa, con trỏ, quản lý bộ nhớ,…

Trang 7

• Hướng đối tượng thuần túy

• Độc lập với hệ nền, thông dịch ra bytecode chạy trên JVM, "Write One, Run Any Where" (Debug any where, :d)

• Hỗ trợ cho các ứng dụng chạy trên mạng, ứng dụng phân tán

a J2SE

Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng dụng trên desktop và định nghĩa các phần thuộc nhân của Java

b J2EE

Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng qui mô xí nghiệp, chủ yếu

để chạy trên máy chủ (server)

c J2ME

Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robot và những ứng dụng điện tử khác.

Trang 8

2.1.4 Sự phát triển của Java

Java vẫn đang chiếm thị phần lớn nhất, nhưng có sự đi lên rất mạnh mẽ của các ngôn ngữ khác

Chuẩn bị phát triển ứng dụng với Java

2.2.1 Vai trò của IDEs

Các môi trường phát triển tích hợp thường bao gồm:

Một trình soạn thảo mã (source code editor): dùng để viết mã, hỗ trợ tính năng tự động sinh

mã (code generator)

Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter)

Trang 9

• Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện liên kết (linking), và có thể chạy chương trình một cách tự động

• Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi

• Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản

• Các công cụ nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ họa (GUI)

• Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp (class browser), trình quản lí đối tượng (object inspector), lược đồ phân cấp lớp (class hierarchy diagram),

để sử dụng trong việc phát triển phần mềm theo hướng đối tượng

Việc sử dụng các môi trường phát triển tích hợp giúp người phát triển tăng tính hiệu quả và giảm thời gian thực hiện công việc của mình Ngoài ra, người mới học cũng có thể tận dụng những tiện ích của các môi trường phát triển tích hợp để giảm bớt thời gian học của mình, vì những cấu hình, những dòng lệnh phức tạp (mà nếu không có môi trường phát triển tích hợp phải thực hiện bằng tay) đều đã được che dấu và tự động hóa

2.2.2 Các loại IDEs thông dụng cho Java

IDE Developer Lastest

BEA

3.2.1 / October,

2006

Windows

$1500 (Standard),

$4500 (Advanced Edition)

JBuilder Borland

6 (2006) / September,

JDeveloper Oracle

10 g (10.1.3) / January,

2006

Cross-platform Free

- Hỗ trợ mạnh J2EE (EJB, Struts), đặc biệt phù hợp cho ứng dụng sử dụng công nghệ Oracle

NetBeans Sun

5.5 / October 27,

2006

Cross-platform Free

- Hỗ trợ nhiều ứng dụng: Desktop, Web, Enterprise, Mobile

Trang 10

Free

- Là IDE trên Linux không chỉ cho Java (C, Pascal, PHP, Ruby, SQL,…)

Eclipse Eclipse

Foundation

3.2.1 / September

2.2.3 Lựa chọn IDEs

Xu hướng phổ biến hiện nay là lựa chọn các IDEs mã nguồn mở: Eclipse, NetBeans, JDeveloper

2.3.1 Apache Ant

Một dự án rất thành công và nổi tiếng của Apache (ant.apache.org)

Ant là một tiện ích dùng để compile, build các dự án phần mềm Java phức tạp Khi các application chỉ có một số lưọng ít các file thì có thể compile các source code bằng Java compiler như bình thường Nhưng trong các dự án lập trình phức tạp như web applicaiton hay J2EE application, cần nhiều các sources khác nhau thì việc quản lý, cập nhật mối liên hệ giữa các sources này trở nên phức tạp Lúc đó Ant giúp bạn quản lý và xử lý nhiệm vụ đó

Ant sử dụng cú pháp XML để build file (file build.xml), định nghĩa các resources, targets, dependences, tasks, do vậy nó có tính độc lập và mềm dẻo trên nhiều platform khác nhau

Khả năng customization của Ant khá lớn cho phép người sử dụng khai thác nhiều chức năng mở rộng khác của Ant, xây dựng JAR, WAR file, tích hợp CVS, Unit Test

Để sử dụng Ant:

• Download Ant (hiện đã có phiên bản 1.7.0 - Dec 19 2006)

• Thiết lập ANT_HOME trong biến môi trường, %ANT_HOME%\bin trong path

• Thực thi build file để compile, build ứng dụng (build.xml)

Ví dụ về Ant build file build.xml:

Trang 11

Trong một số IDEs (ví dụ: Eclipse, JBuilder, JDeveloper) có support Ant trực tiếp như một plugin,

có thể view, edit, execute Ant build file ngay trong workspace

2.3.2 Apache Maven

Cũng là một dự án thành công và nổi tiếng của Apache (maven.apache.org)

Tương tự như Ant, Maven cũng là công cụ compile, deploy đồng thời được cải tiến từ Ant với tính năng quản lý dự án (!)

Maven có những ưu điểm sau so với Ant:

• Có tính kế thừa các file build qua từng dự án Trong khi với Ant, người phát triển phải viết lại các build file (cho dù là thao tác copy - past)

• Có tính kế thừa các file build giứa nhiều người phát triển khác nhau

• Hay đơn giản Maven là công cụ bổ sung cho người làm việc với Java trong khi không muốn dùng Ant (thêm sự lựa chọn)

/*

http://www-128.ibm.com/developerworks/java/library/j-maven/

http://www.devx.com/java/Article/17204/0/page/1

Trang 12

*/

2.3.3 Test tools

Chi tiết hơn tại Phần 2.8

• JUnit:Test framework nổi tiếng của Java Các test framework khác đều dựa vào JUnit JUnit được tích hợp cho hầu hết các IDE thông dụng như Eclipse, JBuilder, JDeveloper, NetBeans,

• HttpUnit: Dưa trên JUnit dùng để test web-tier như html, jsp,

2.4 Đóng gói, tạo lập bộ cài đặt ứng dụng Java

Tùy theo từng loại hình ứng dụng: Desktop, Web, Enterprise, Mobile (Phần 3) mà có các cách đóng gói ứng dụng khác nhau:

Loại ứng dụng File đóng gói Công cụ đóng gói Triển khai ứng dụng

- Tạo file JAR bằng các chương trình nén phổ biến:

WinRar, WinZip, Chú ý cấu trúc file JAR (META-INF)

- IDE hỗ trợ

- Chương trình installer thương mại chuyển nghiệp:

InstallAnywhere, iInstallShield, nstall4j,

- Chương trình installer miễn phí: IzPack

- Chạy như file EXE thông thường (javaw.exe)

- Chạy từ dòng lệnh

- Chạy ứng dụng Desktop qua Web sử dụng Java Web Start

- Đóng gói bằng tay để tạo file WAR sử dụng các thẻ

<target> trong các file build.xml (ví dụ dùng Ant)

- Sử dụng IDE để tạo lập file WAR

- Deploy lên Web Server (bằng tay, hoặc IDE hỗ trợ)

- Đóng gói bằng tay để tạo file EAR sử dụng các thẻ <target>

trong các file build.xml (ví dụ dùng Ant)

- Sử dụng IDE để tạo lập file EAR

- Deploy lên J2EE Server (bằng tay, hoặc IDE hỗ trợ)

J2ME (cancel)

Trang 13

2.5 Vấn đề an toàn bảo mật trong Java

• Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java

• Lớp thứ ba được đảm bảo bởi trình thông dịch Chúng kiểm tra xem bytecode có đảm bảo các qui tắc an toàn trước khi thực thi

• Lớp thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống

Java platform cung cấp một tập các hàm API đảm bảo tính bảo mật của các ứng dụng Java bao gồm: Mã hóa (cryptography), Hạ tầng mã khóa công khai (public key infrastructure), Chứng thực (authentication), Bảo mật trên đường truyển (secure communication) và Điều khiển truy nhập (access control)

Package: java.security, javax.crypto

2.5.3 Hạ tầng mã khóa công khai

Hạ tầng mã hóa công khai (Public Key Infrastructure - PKI) là một giải pháp bảo mật có nhiều tối ưu

so với phương pháp bảo mật đối xứng, PKI có liên quan mật thiết tới chữ ký số

Java Platform cung cấp hai công cụ built-in cho các thao tác với khóa, chứng thực và lưu trữ khóa:

1 keytool sử dụng cho việc tạo lập và quản lý khóa:

• Tạo cặp khóa công khai / khóa cá nhân

Trang 14

• Hỗ trợ chuẩn X.509 (hiển thị, xuất, nhập)

• Giao tiếp với các CAs

2 jarsigner sử dụng cho việc ký hoặc kiểm tra chữ ký trong các file JAR

Package: java.security.KeyStore, java.security.cert.CertStore, java.security.Key

2.5.4 Chứng thực

Kiểm tra định danh của user trong các ứng dụng Java (Khác với Authorization - Kiểm tra quyền) thông qua module đăng nhập

Java Platform cung cấp các modules built-in sau cho thao tác chứng thực:

1 Krb5LoginModule sử dụng giao thức Kerberos

2 JndiLoginModulesử dụng account trong LDAP hoặc NIS

3 KeyStoreLoginModule sử dụng key store

Package: javax.security.auth.login, javax.security.auth.spi.LoginModule

2.5.5 Bảo mật trên đường truyển

Dữ liệu cần bảo mật được bảo vệ trên đường truyền trong các ứng dụng Java bới các chuẩn truyền dữ liệu trên mạng:

2.5.6 Điều khiển truy nhập

Điều khiển truy cập trong các ứng dụng Java được chia thành bốn nội dung:

1 ClassAccess

Quy tắc truy cập vào các thành phần trong các lớp: public, protected, private, no-defined

(Tập trung vào Driver)

Có sẵn các connector driver cho hầu hết các loại Database

Trang 15

Tùy theo quy mô, yêu cầu của ứng dụng, yêu cầu từ khách hàng, mà lựa chọn Database nào cho các ứng dụng Java Sử dụng phổ biến nhất là các Database mã nguồn mở, miễn phí như PostgreSQL, MySQL

PostgreSQL hỗ trợ Unicode ngay từ những phiên bản đầu tiên Phiên bản 8.x (hiện nay là 8.2.3 - March 12, 2007) đã có bản chạy trên Windows, có hỗ trợ quản trị giao diện GUI

Một số đặc điểm chính của PostgreSQL:

• Là hệ quản trị CSDL quan hệ và hướng đối tượng

• Cú pháp được chuẩn hóa theo chuẩn SQL92, và có nhiều tính năng của SQL99

• Mã nguồn mở BSD licence

• Xử lý các giao dịch dựa trên MVCC (multi-version concurrency control), cho phép hoạt động với hiệu năng cao hơn

• Hỗ trợ đa ngôn ngữ, đa nền

• Có thể mở rộng từ phía người dùng với nhiều gói tính năng trên Internet: định nghĩa kiểnu

Một số đặc điểm chính của MySQL:

• Là hệ quản trị CSDL quan hệ

• Mã nguồn mở GPL licence

• Nhanh, tin cậy, dễ dàng sử dụng

• Hoạt động trong ứng dụng Client/Server hoặc ứng dụng nhúng

• Đa ngôn ngữ, đa nền

Trang 16

• Là thành phần quan trọng của các ứng dụng LAMP (Linux, Apache, MySQL, and PHP)

Để kết nối với MySQL, download Driver và khai báo với các thông số sau:

Dưới đây sẽ giới thiệu sơ lược về hai Server đặc trưng nhất: Tomcat cho các ứng dụng web, và Jboss cho các ứng dụng J2EE

2.7.2 Apache Tomcat

a Sơ lược

Apache Tomcat cũng là một dự án thành công của Apache (tomcat.apache.org)

Là một dạng web server, Tomcat cung cấp môi trường web container cho việc thực thi các ứng dụng Java dưới dạng JSP/Servlet theo đặc tả của Sun

Là một web server mã nguồn mở, độc lập hệ nền, Tomcat nhỏ gọn và có tính ổn định cao, mang đầy đủ các đặc tính cần có của một máy chủ ứng dụng web

Trang 17

c Cấu trúc thư mục

• bin: Script cho thao tác bật/tắt server Đối với Windows sử dụng file bat, đối với OS kiểu Linux sử dụng file sh

• common: Các file thư viện jar

• conf: Các file cấu hình chính của Tomcat server Quan trọng nhất là server.xml, web.xml

• logs: Log file

• server: File jar

• shared

• temp

• webapps: Thư mục chứa các ứng dụng web được triển khai

• work: Các servlet được thực thi từ JSP

Trang 18

như WebService, EJB, Hibernate,… Bản thân JBoss liên quan tới nhiều dự án như JBoss AS, Hibernate, Tomcat, JBoss Message, JBoss Portal,…

JBoss đã được Red Hat mua lại vào tháng 04 năm 2006 Hiện tại đã phát hành phiên bản 4.0.5 vào

• Distributed caching (using JBoss Cache, a standalone product)

• Distributed deployment (farming)

• Enterprise JavaBeans version 3

c Cấu trúc thư mục

Cấu trúc thư mục của JBoss sau khi cài đặt như sau:

Trang 19

• bin: script cho thao tác bật và tắt server JBoss cũng như khởi tạo, khai báo một vài thông số

hệ thống Đối với Windows sử dụng file bat, đối với OS kiểu Linux sử dụng file sh

• client: file cấu hình, file jar cần thiết cho hoạt động của ứng dụng Java phía Client

• docs: file XML DTD (Document Type Definition) định nghĩa một vài tham số cho JBoss, ví

dụ file cấu hình cho truy cập Database

• lib: Các file jar cần thiết cho các chức năng nền, cốt lõi của JBoss Không nên thêm mới file jar khác vào thư mục này

• server: Mỗi thư mục con ở đây tương ứng với một server với các cấu hình khác nhau Cấu hình mặc định được khởi tạo là default Muốn khởi tạo server khác, thực hiện lệnh: run -c

<tên cấu hình>, ví dụ: run -c all sẽ khởi tạo server với cấu hình trong thư mục all

JBoss cung cấp 3 cấu hình server với các dịch vụ khác nhau:

- minimal: Hạn chế một số ít dịch vụ J2EE, không có WebContainer, EJB, JMS

Trang 20

- default: Là cấu hình mặc định được sử dụng Cung cấp những dịch vụ căn bản, thiết yếu nhất cho J2EE, không bao gồm JAXR, IIOP, Clustering

- all: Cung cấp tất cả các dịch vụ, bao gồm cả RMI/IIOP

Người phát triển có thể tự định nghĩa một dịch vụ của riêng mình

Ví dụ về cấu hình server default

• conf: jboss-service.xml cho biết các dịch vụ của server default Có thể thêm các file cấu hình cho các dịch vụ này

• data:

• deploy: Bao gồm những dịch vụ, những ứng dụng của server default Các ứng này được triển khai bằng cách copy các file (war, jar, ear) vào trong thư mục deploy JBoss server hỗ trợ tính năng hot-deployment

• lib: Các file jar cho cấu hình của server, ví dụ: cấu hình kết nối Database (Driver)

• log: Log file sử dụng Jakarta Log4j

• tmp: Temporary content

• work: Sử dụng cho mục đích dịch các file JSP của Tomcat

Các thư mục data, log, tmp, work chỉ được tạo ra khi server được chạy ít nhất một lần

Trang 21

chỉnh sửa, tối ưu ứng dụng nhanh chóng và hiệu quả hơn Java convention có thể chia thành các nội dung:

1 Coding convention

http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html

2 Tổ chức cấu trúc ứng dụng Java một cách hợp lý

• Java BluePrints: http://java.sun.com/blueprints/code/projectconventions.html

3 Đảm bảo tuân thủ quy trình

2.8.2 CVS

CVS - Concurrent Versions System, hệ thống quản lý phiên bản Đề cập tới công cụ giúp lưu trữ các phiên bản của các tài nguyên trong quá trình phát triển sản phẩm của dự án phần mềm Một sản phẩm của dự án phần mềm phải trải qua nhiều giai đoạn khác nhau: requirement, design, development, deployment Để lưu trữ, quản lý phiên bản các sản phẩm đó có nhiều công cụ CVS

hỗ trợ Đối với ứng dụng Java, các hệ thống CVS phổ biến hiện nay:

• IBM Rational ClearCase: Là sản phẩm thương mại trong bộ IBM Rational, không những quản lý phiên bản mã nguồn, file văn bản mà còn quản lý được phiên bản các file định dạng khác: file thiết kế UML, file mô hình hóa requirement,

• Các công cụ CVS quản lý phiên bản của source code, ví dụ: SmartCVS, TortoiseCVS, WinCVS,

Sử dụng CVS:

• Cấu hình & cài đặt CVS Server

• Cấu hình & cài đặt CVS Client

• Phải khai báo gói thư viện junit.jar trong classpath

• Sử dụng JUnit kết hợp với Ant

• Tích hợp JUnit với IDE

b HttpUnit

http://www.httpunit.org

Trang 22

HttpUnit là một thư viện nguồn mở của Java được dùng để tương tác với các server HTTP Với HttpUnit, chương trình Java của bạn có thể truy xuất trực tiếp đến server mà không cần thiết phải

sử dụng đến trình duyệt

HttpUnit cung cấp các API để phân tích HTML, nhận thông tin của biểu mẫu trang web, theo dõi các siêu liên kết, thiết lập cookie và thực hiện các tác vụ khác có liên quan đến trình duyệt web Ngoài ra nó cũng gồm cả một thư viện để thao tác trực tiếp đến servlet, đôi khi không cần thiết phải khởi động web server Thông thường chúng ta sử dụng kết hợp HttpUnit và JUnit để viết các test JUnit định nghĩa các framework dùng để kiểm tra, và các phương thức testXXX() của bạn sẽ sử dụng các hàm API của thư viện HttpUnit để truy cập và kiểm tra trang web

Một số vấn đề khi sử dụng HttpUnit:

• Khai báo thư viện httpunit.jar, Tidy.jar

• Sử dụng HttpUnit kết hợp với Ant

2.9 Về máy ảo Java JVM

Một trong những đặc điểm nổi bật của Java là " Write One, Run Any Where " Khả năng cơ động này có được nhờ sự giúp đỡ của máy ảo Java (JVM - Java Virtual Machine) giúp cho Java độc lập với phần cứng và hệ điều hành Tính độc lâp của chương trình viết bằng ngôn ngữ Java được thể hiện ở mức mã nguồn và mức nhị phân

Ở mức mã nguồn, người lập trình cần mô tả kiểu cho mỗi biến Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau Java có riêng một thư viện các lớp cơ sở Vì vậy chương trình Java được viết trên một máy có thể dịch và chạy trơn tru trên các loại máy khác

mà không cần viết lại

Tính độc lập ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nhiều nền (phần cứng, hệ điều hành) khác mà không cần dịch lại mã nguồn Tuy vậy cần có phần mềm hoạt động như một trình thông dịch tại máy thực thi, phần mềm đó chính là máy ảo Java

Môi trường phát triển của Java được chia làm hai phần: Trình biên dịch và trình thông dịch Không như C hay C++, trình biên dịch của Java chuyển mã nguồn thành dạng bytecode độc lập với phần cứng mà có thể chạy trên bất kỳ CPU nào

Trang 23

Nhưng để thực thi chương trình dưới dạng bytecode, tại mỗi máy cần phải có trình thông dịch của Java hay còn gọi là máy ảo Java Máy ảo Java chuyển bytecode thành mã lệnh mà CPU thực thi được Ta có JVM dành cho PC IBM, Mac,

2.9.1 Định nghĩa JVM

Máy ảo Java là một phần mềm dựa trên cơ sở máy tính ảo Nó có tập hợp các lệnh logic để xác định các hoạt động của máy tính Người ta có thể xem nó như một hệ điều hành thu nhỏ Nó thiết lập các lớp trừu tượng cho: Phần cứng bên dưới, hệ điều hành, mã đã biên dịch

Trình biên dịch chuyển mã nguồn thành tập các lệnh của máy ảo mà không phụ thuộc vào phần cứng cụ thể Trình thông dịch trên mỗi máy sẽ chuyển tập lệnh này thành chương trình thực thi Khi các ứng dụng Java (sau khi dịch, các ứng dụng viết bằng Java sẽ có phần mở rộng là class) thực hiện, JVM tiến hành phân tích mã trong class đó thành bộ lệnh của JVM rồi thực hiện giống như máy tính PC thao tác với các ứng dụng thông thường Bởi vậy, các class sau khi dịch có thể được thực hiện trên bất kỳ hệ điều hành nào thông qua máy tính ảo JVM Hiện tại, JVM được xây dựng cho hầu hết các hệ điều hành và hệ xử lý hiện có, điều này có nghĩa là các ứng dụng viết bằng Java có đầy đủ điều kiện để phát triển

2.9.2 Các vấn đề với JVM

• Tập lệnh thực thi dưới dạng bytecodes, các class

• Các thư viện của Java đảm nhận nhiệm vụ chuyển các lớp class của ứng dụng sang các class của JVM (Trình Class Loader)

• Quản lý bộ nhớ và dọn rác

• JVM vs JIT (Có sẵn trong một số ứng dụng Browser)

• Việc thực thi thông qua JVM ảnh hưởng tới tốc độ của Java? (Cấu hình phần cứng hỗ trợ)

• Ứng dụng ổn định

• Không phụ thuộc nền (đặc điểm chung của các ứng dụng Java)

• Giao diện đồ họa được cải tiến đáng kể, dễ bảo trì

• Nhiều tools, components, plugin open source hỗ trợ

• Phát triển nhanh vì có nhiều IDE hỗ trợ mạnh

Trang 24

3.1.2 Lựa chọn component cho ứng dụng Java Desktop

Component là một bộ các lớp cho phép chúng ta tạo GUI và chấp nhận các nhập liệu của người dùng thông qua bàn phím và chuột Component cung cấp các thành phần khác nhau để tạo GUI hiệu quả và lôi cuốn người sử dụng Các thành phần cơ bản của Component là:

• Container: Để chứa các components

• Component: Label, Tab, Button, TextField, Frame,

Trang 25

b Swing

Cũng là một thành phần trong JFC và mang đầy đủ những đặc điểm của AWT Nhưng Swing là một thư viện vô cùng mạnh mẽ, có nhiều cải tiến so với AWT với các components ở cấp độ cao hơn Swing được Sun khuyển cáo sử dụng cho các ứng dụng Desktop

c SWT

Là sản phẩm của IBM Cũng là thư viện mạnh mẽ nhưng không được dùng nhiều bằng Swing

d Các components khác

- Thinlet: Đây là thư viện nhỏ nhất trong tất cả các thư viện GUI (thư viện chỉ 36KB, không kế thừa

từ Swing hay AWT, chạy rất nhanh, source code chỉ có 1 file duy nhất), components cũng hạn chế, thường được sử dụng cho applet nhưng viết bằng XML

Đặc điểm chung của các ứng dụng web dựa trên Java:

• Nhiều framework, server hỗ trợ

• Nhiều IDE hỗ trợ

• Components, plugin phong phú

• Triển khai dễ dàng, thuận lợi hơn do chỉ phải cài đặt chủ yếu trên các máy Server (Ưu thế chung của các ứng dụng web)

• Các công nghệ để sử dụng trong ứng dụng web có thể đơn giản như HTML, JSP/Servlet đến những công nghệ mang tính nâng cao và phức tạp hơn như CSS, JavaScript, Ajax

3.2.2 Tổ chức ứng dụng Web

Các thành phần điển hình của ứng dụng web bao gồm: Servlet, JSP, HTML, Image Bên cạnh các thành phần căn bản đó thì một ứng dụng web trên Java có thể được xây dựng trên một framework (ví dụ như struts), khi đó còn cần các thư viện của framework đi kèm: taglib, xml configuration, Các thành phần này của ứng dụng được tổ chức theo cấu trúc thư mục như sau:

Trang 26

• Thư mục gốc chứa các file JSP, HTML, Image Tất nhiên các file này cũng có thể tổ chức trong các thư mục riêng biệt để dễ dàng quản lý Ví dụ: các file HTML chứa riêng trong thư mục html, các file Image chứa riêng trong thư mục images, các file JSP chứa trong thư mục jsp,…

• Thư mục gốc cũng chứa một thư mục đặc biệt WEB-INF, bao gồm file mô tả ứng dụng web (web.xml), các class Servlet trong thư mục classes, các thư viện jar trong thư mục lib

3.2.3 Triển khai ứng dụng Web

Phần 2.4

File war (Web Archive Component) dùng để đóng gói các thành phần trong ứng dụng web Java

Để triển khai ứng dụng, người phát triển chỉ cần copy file war vào thư mục triển khai tương ứng của các Web Server: Tomcat, Jboss,

Trang 27

Hỗ trợ triển khai từ các IDE thông dụng

Tuy nhiên J2EE không phải là chìa khoá vạn năng cho mọi loại ứng dụng vì bản thân nó cồng kềnh, đắt tiền, đòi hỏi người phát triển phải có nhiều kinh nghiệm J2EE cũng không phải là một loại mì

ăn liền Nó chỉ cung cấp những vật liệu cần thiết với đầy đủ lời chỉ dẫn

• J2EE là một tập hợp nhiều thành phần công nghệ ra đời vào những thời điểm khác nhau:

Từ những thành phần căn bản của ứng dụng web (JSP/Servlet), đến công nghệ phức tạp hơn như EJB

• Theo đặc tả ban đầu của Sun, J2EE là sự kết hợp của các công nghệ Servlet/JSP và EJB

• Hiện nay các framework như Struts, Spring, Hibernate, cũng được coi là một thành phần của ứng dụng J2EE (tranh luận)

• Ranh giới giữa Web app và J2EE không thật rõ ràng khi một ứng dụng web được tổ chức theo mô hình MVC (như Struts) cũng có thể được coi như là một ứng dụng J2EE?

• J2EE Container, J2EE Server: Hỗ trợ đầy đủ các thành phần J2EE (JBoss, Orion, )

• Có nhiều IDE hỗ trợ phát triển ứng dụng J2EE

3.3.2 Tổ chức ứng dụng J2EE

J2EE là nền tảng ứng dụng do Sun đề xuất Theo Sun, cấu trúc điển hình của một ứng dụng J2EE bao gồm Web components và EJB components Các thành phần đó được mô tả trong cấu trúc thư mục như sau:

Trang 28

• WAR: Đóng gói các thành phần web của ứng dụng J2EE

• JAR: Đóng gói các thành phần EJB của ứng dụng J2EE

• Thành phần mô tả ứng dụng: application.xml

Các thành phần trong ứng dụng j2EE có thể được tổ chức thành nhiều tầng, mỗi tầng đảm nhận các vai trò độc lập nhằm thuận lợi cho mục đích phát triển trong một nhóm, và thuận lợi cho hoạt động chỉnh sửa, bảo trì,

Với Sun, EJB là hạt nhân của ứng dụng J2EE Tuy nhiên có thể sử dụng nhiều công nghệ khác để thay thế cho vai trò của EJB mà vẫn đảm bảo ứng dụng tuân theo cấu trúc j2EE ví dụ như Spring

3.3.3 Triển khai ứng dụng J2EE

Phần 2.4

File ear (Enterprise Archive Component) là chuẩn để đóng gói các thành phần J2EE bao gồm cả Web components và EJB components Do vậy trong file ear đã được đóng gói cả file war, jar và thành phần mô tả ứng dụng J2EE (application.xml)

Để triển khai ứng dụng, người phát triển chỉ cần copy file ear vào thư mục triển khai tương ứng của các J2EE Server: Jboss,

Hỗ trợ triển khai từ các IDE thông dụng

Trang 29

Vào thời điểm các công nghệ J2EE hiện nay chưa ra đời, Servlet/JSP là giải pháp cho các ứng dụng web động phức tạp, độc lập hệ nền và cần độ tin cậy cao thay cho các ứng dụng web động CGI có nhiều hạn chế

Một ứng dụng web xây dựng dựa trên Servlet/JSP phải chạy trên WebServer có Container hỗ trợ Java Servlet/JSP, Tomcat là một WebServer điển hình cho loại Container này

Servlet và JSP có quan hệ mật thiết với nhau Trong một ứng dụng web, về nguyên tắc có thể chỉ

sử dụng hoàn toàn các Servlet, hoàn toàn JSP, hoặc kết hợp cả hai để đảm nhận tất cả các nhiệm vụ: giao diện người dùng, xử lý nghiệp vụ hoặc kết nối CSDL, Nhưng để phát huy tối đa ưu điểm của từng công nghệ, người phát triển thường sử dụng JSP ở tầng Presentation, Servlet ở tầng Business, kết nối CSDL Chi tiết về Servlet, JSP được trình bày dưới đây:

4.1.2 Servlet

a Đặc điểm

Servlet là loại kịch bản được nạp và thực thi ở phía Server tại trình chủ WebServer Servlet tiếp nhận yêu cầu từ phía Client, thực hiện xử lý nghiệp vụ và trả kết quả về cho Client:

Trang 30

• Servlet có nhiều ưu điểm, mềm dẻo hơn CGI

• Servlet độc lập hệ nền do được viết trên ngôn ngữ Java

• Mỗi Servlet là một lớp Java, được viết tuân thủ theo chuẩn của ngôn ngữ Java

• Servlet chỉ cần nạp một lần, và sau đó đáp ứng duy trì các dịch vụ, không phải nạp lại

• Servlet được bảo mật cùng với WebServer

b Các vấn đề liên quan tới Servlet

• WebServer hỗ trợ Servlet (Tomcat)

• Vòng đời Servlet: initialization, Service, Destruction

• Giao thức HTTP (Request/Response, POST/GET Method)

• Servlet Configuration: Khởi tạo một số thông tin cấu hình cần thiết cho Servlet, cho ứng dụng web

• Servlet Context: Khởi tạo một số tham số cho Servlet, cho ứng dụng web

• Thư viện hỗ trợ: javax.servlet,*; javax.servlet.http.*;

4.1.3 JSP

a Đặc điểm

JSP ra đời nhằm cải tiến hạn chế của Servlet trong vấn đề thiết kế giao diện của ứng dụng Bản thân JSP là các trang HTML có nhúng mã Java để thực hiện các thao tác nghiệp vụ, kết nối CSDL, Khác với trang web truyền thống được WebServer gửi trực tiếp cho Client, các trang JSP phải được thi hành thông qua Engine (JSP Container), ở đó các mã Java được tách ra, xử lý, kết quả chuyển thành HTML trước khi trả về cho Client

Thực tế mọi trang JSP đều được dịch sang Servlet và được thực thi trong WebServer, đây chính là mối quan hệ mật thiết giữa Servlet và JSP như đã đề cập ở trên

Các đặc điểm nổi bật của JSP:

• Mang đầy đủ những ưu điểm của ngôn ngữ Java

• Mang đầy đủ những ưu điểm của Servlet

Trang 31

• Giúp cho quá trình phát triển, triển khai, bảo trì ứng dụng Web được dễ dàng hơn

• Đơn giản quá trình phát triển với các thẻ, thư viện: taglib, bean,

b Các vấn đề liên quan tới JSP

• WebServer hỗ trợ JSP (Tomcat)

• Vòng đời JSP: Init, Service, Destroy

• Giao thức HTTP (Request/Response, POST/GET Method)

• Các thẻ JSP

• Sử dụng taglib trong JSP >> độc lập design giao diện

• Các đối tượng "ngầm" trong JSP

4.1.4 Quan hệ Servlet, JSP

a Sự khác nhau

• Phong cách viết mã: Pure Java <> Nhúng mã Java

• Servlet phải dịch sang class, JSP được WebServer đảm nhận

• JSP chỉ là một phiên bản đơn giản của Servlet, được compile ra Servlet

• JSP mềm dẻo hơn Servlet

JavaScript là ngôn ngữ dưới dạng script có thể gắn với các file HTML Nó không được biên dịch

mà được trình duyệt diễn dịch Không giống Java phải chuyển thành các mã dễ biên dịch, trình duyệt đọc JavaScript dưới dạng mã nguồn

Tuy không phải là ngôn ngữ hướng đối tượng do không hỗ trợ các lớp, không có tính kế thừa nhưng JavaScript cũng được viết dựa trên các đối tượng Và giống như Java, JavaScript độc lập với hệ nền, nó có thể chạy trên bất cứ OS nào có trình duyệt hỗ trợ nó

Trang 32

• Kiểm tra dữ liệu ở phía Client Việc kiểm tra dùng JavaScript như vậy sẽ nhanh chóng, tăng tốc độ ứng dụng nhưng cần chú ý đến khả năng hỗ trợ JavaScript của trình duyệt

• Nâng cao tính mỹ thuật của trang web nhờ các hiệu ứng do JS tạo ra

Các vấn đề liên quan:

• Mô hình đối tượng khi sử dụng JavaScript (DOM, JDOM, )

• Xử lý sự kiện của các đối tượng form

Việc dùng CSS sẽ giúp cải thiện tốc độ tải trang web đáng kể Trình duyệt sẽ chỉ tải file CSS về máy client một lần, những lần sau các trang web sử dụng file CSS này sẽ lấy ngay tại client Việc tập trung toàn bộ định nghĩa thuộc tính vào file CSS giúp cho đoạn mã HTML trở nên ngắn gọn, rõ ràng đồng thời giúp giảm kích thước của trang web

CSS có thể khai báo ngay trong file HTML nhưng thông thường CSS được khai báo trong một hay nhiều file (.CSS) thành các class Các đối tượng trong trang web muốn sử dụng class nào thì khai báo trong thuộc tính class Điều này tăng tính mềm dẻo khi dùng file CSS, ta có thể thay đổi màu sắc, giao diện của những trang web một cách nhanh chóng thông qua việc chỉnh sửa những thuộc tính trong file CSS

Khai báo CSS:

Sử dụng CSS:

Trang 33

Các vấn đề liên quan:

• Các thuộc tính của đối tượng Form (tham khảo tại W3C)

4.2.3 Ajax

a Khái niệm về Ajax

Ajax là thuật ngữ công nghệ được nhắc tới nhiều trong một vài năm gần đây xung quanh các vấn

đề liên quan tới thế hệ Web2.0, chính xác là từ tháng 2 năm 2005 sau bài viết nổi tiếng của Jesse James Garrett trên trang Adaptive Path Nhưng thực sự Ajax không phải là một công nghệ, nó là

sự kết hợp của nhiều công nghệ với mỗi thế mạnh riêng của mình để tạo nên sức mạnh chung của Ajax

Đúng như tên viết tắt của mình, AJAX - " Asynchronous JavaScript and XML ", cũng có tài liệu cho rằng "Asynchronous JavaScript+CSS+DOM+XMLHttpRequest" là sự kết hợp của các công nghệ sau:

• Thể hiện web theo tiêu chuẩn XHTML và CSS;

• Nâng cao tính năng động và phản hồi bằng DOM (Document Object Model );

• Trao đổi và xử lý dữ liệu bằng XML và XSLT;

• Truy cập dữ liệu theo kiểu bất đồng bộ (asynchronous) bằng XMLHttpRequest;

• Và tất cả các kỹ thuật trên được liên kết lại với nhau bằng JavaScript

Tất cả tạo thành một bộ công cụ cho phép tăng tốc độ ứng dụng web bằng cách chia nhỏ dữ liệu trên trang web thành nhiều phần và load lại phần thông tin cần thay đổi, thay vì tải đi tải lại toàn bộ trang web

"Mọi thao tác của người sử dụng sẽ gửi lệnh JavaScript tới bộ xử lý AJAX, thay vì tạo ra một yêu cầu HTTP (HTTP request) và truy vấn tới máy chủ", Jesse James Garrett đã ghi trong bài viết đầu tiên định nghĩa về thuật ngữ này "Nếu cần gì từ server, như tải về bổ sung mã giao diện hay nhận

dữ liệu mới, AJAX sẽ truyền yêu cầu tới máy chủ một cách không đồng bộ, thông thường sử dụng XML, mà không làm gián đoạn sự tương tác của người dùng với ứng dụng web"

b Mô hình hoạt động của Ajax

Với mô hình ứng dụng Web cổ điển, khi người dùng có một cần thay đổi dữ liệu trên trang Web, yêu cầu thay đổi được gửi về server dưới dạng HTTP request (hay còn gọi postback), server sẽ xử

lý yêu cầu này và gửi trả lại trang HTML khác thay thế trang cũ Qui trình này được mô tả là chờ và tải lại (click-wait-and-refresh)

Ngày đăng: 16/08/2012, 15:07

Xem thêm

HÌNH ẢNH LIÊN QUAN

BẢNG GHI NHẬN THAY ĐỔI - Lập trình Java
BẢNG GHI NHẬN THAY ĐỔI (Trang 2)
BẢNG GHI NHẬN THAY ĐỔI - Lập trình Java
BẢNG GHI NHẬN THAY ĐỔI (Trang 2)
Tùy theo từng loại hình ứng dụng: Desktop, Web, Enterprise, Mobile (Phần 3) mà có các cách đóng gói ứng dụng khác nhau:  - Lập trình Java
y theo từng loại hình ứng dụng: Desktop, Web, Enterprise, Mobile (Phần 3) mà có các cách đóng gói ứng dụng khác nhau: (Trang 12)
• conf: Các file cấu hình chính của Tomcat server. Quan trọng nhất là server.xml, web.xml •  logs: Log file  - Lập trình Java
conf Các file cấu hình chính của Tomcat server. Quan trọng nhất là server.xml, web.xml • logs: Log file (Trang 17)
• client: file cấu hình, file .jar cần thiết cho hoạt động của ứng dụng Java phía Client - Lập trình Java
client file cấu hình, file .jar cần thiết cho hoạt động của ứng dụng Java phía Client (Trang 19)
J2EE là nền tảng ứng dụng do Sun đề xuất. Theo Sun, cấu trúc điển hình của một ứng dụng J2EE bao gồm Web components và EJB components - Lập trình Java
2 EE là nền tảng ứng dụng do Sun đề xuất. Theo Sun, cấu trúc điển hình của một ứng dụng J2EE bao gồm Web components và EJB components (Trang 27)
b. Các vấn đề liên quan tới Servlet - Lập trình Java
b. Các vấn đề liên quan tới Servlet (Trang 30)
• Mô hình đối tượng khi sử dụng JavaScript (DOM, JDOM,...) •  Xử lý sự kiện của các đối tượng form  - Lập trình Java
h ình đối tượng khi sử dụng JavaScript (DOM, JDOM,...) • Xử lý sự kiện của các đối tượng form (Trang 32)
b. Mô hình hoạt động của Ajax - Lập trình Java
b. Mô hình hoạt động của Ajax (Trang 33)
c. Nhược điểm của Ajax - Lập trình Java
c. Nhược điểm của Ajax (Trang 34)
Với mô hình ứng dụng Web sử dụng Ajax, thay vì phải tải cả trang web thì với ứng dụng chỉ cần tải về phần của trang Web được thay đổi nội dung - Lập trình Java
i mô hình ứng dụng Web sử dụng Ajax, thay vì phải tải cả trang web thì với ứng dụng chỉ cần tải về phần của trang Web được thay đổi nội dung (Trang 34)
4.4. Mô hình MVC - Lập trình Java
4.4. Mô hình MVC (Trang 37)
4.4.2. Mô hình MVC - Lập trình Java
4.4.2. Mô hình MVC (Trang 39)
Là phần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa..., để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác  khác đối với dữ liệu trong hệ thống - Lập trình Java
ph ần giao diện với người dùng, bao gồm việc hiện dữ liệu ra màn hình, cung cấp các menu, nút bấm, hộp đối thoại, chọn lựa..., để người dùng có thể thêm, xóa, sửa, tìm kiếm và làm các thao tác khác đối với dữ liệu trong hệ thống (Trang 40)
4.5.3. Cấu hình ứng dụng Struts - Lập trình Java
4.5.3. Cấu hình ứng dụng Struts (Trang 42)
Spring Context làm ột file cấu hình để cung cấp thông tin ngữ cảnh của Spring. Spring context cung cấp các service như  JNDI access, EJB integration, e-mail, internalization (i18N), validation, và  scheduling functionality, truyền sự kiện, resource-loadin - Lập trình Java
pring Context làm ột file cấu hình để cung cấp thông tin ngữ cảnh của Spring. Spring context cung cấp các service như JNDI access, EJB integration, e-mail, internalization (i18N), validation, và scheduling functionality, truyền sự kiện, resource-loadin (Trang 51)
• Sử dụng các tài liệu XML để cấu hình kết nối dữ liệu và mapping giữa các lớp đối tượng Java và các bảng trong CSDL  - Lập trình Java
d ụng các tài liệu XML để cấu hình kết nối dữ liệu và mapping giữa các lớp đối tượng Java và các bảng trong CSDL (Trang 52)
Được hình thành từ SessionFactory, Session thể hiện nội dung được duy trì của Hibernate - Lập trình Java
c hình thành từ SessionFactory, Session thể hiện nội dung được duy trì của Hibernate (Trang 53)
• Mỗi bảng trong CSDL quanh ệt ương ứng với một lớp đối tượng của ứng dụng, do đó cần có một Bean cho mỗi bảng trong CSDL  - Lập trình Java
i bảng trong CSDL quanh ệt ương ứng với một lớp đối tượng của ứng dụng, do đó cần có một Bean cho mỗi bảng trong CSDL (Trang 54)

TỪ KHÓA LIÊN QUAN

w