Lập trình java - Bài 25: Tổng quan về phát triển web với Java EE

Lập trình java - Bài 25: Tổng quan về phát triển web với Java EE

 Tổng quan về phát triển web với Java EE trong lập trình java

Mục tiêu bài học

- Giới thiệu Java EE
- Mô hình web service trên Java EE
- Web application,components, và Web container
- Cấu hình ứng dụng Web
- Giới thiệu về mẫu thiết kế MVC
- Một số web application framework

Mở đầu

  Sự phát triển như vũ bão của công nghệ thông tin, nhất là mạng Internet đã khiến cho mô hình lập trình ứng dụng thay đổi rất nhiều.

Các chương trình cần phải tương tác được với người dùng, chia sẻ tài nguyên, kết nối từ xa, phân tán dữ liệu

… Với những yêu cầu trên mô hình khách/chủ (client- server) đã ra đời và tỏ ra rất hiệu quả trong thời gian dài

  Tuy nhiên cả máy khách và máy chủ ngày càng trở nên quá tải bởi độ phức tạp và yêu cầu của người dùng. Từ đó phát sinh mô hình phát triển ứng dụng đa tầng (multi-tier).

Mục tiêu là làm cho máy khách trở nên gọn nhẹ, dễ cấu hình. Tất cả mã nguồn lõi, cài đặt, xử lý đều thực hiện trên máy chủ, do đó chương trình trở nên dễ quản lý, các máy khách luôn được phục vụ với phiên bản chương trình mới nhất

Web là một ví dụ điển hình nhất của mô hình ứng dụng đa tầng

Mô hình ứng dụng đa tầng đáp ứng được nhu cầu về mặt tốc độ, bảo mật, cũng như sự đáng tin cậy của ứng dụng

Java EE là gì

  Java EE là viết tắt của Java Platform, Enterprise Edition là nền tảng tiêu chuẩn và mở để xây dựng, phát triển các ứng dụng doanh nghiệp lớn, bao gồm: ứng dụng mạng, web, đa tầng, phân tán… J2EE là mở rộng của J2SE

Các phiên bản

J2EE 1.2 (December 12, 1999)

J2EE 1.3 (September 24, 2001)

J2EE 1.4 (November 11, 2003)

Java EE 5 (May 11, 2006)

Java EE 6 (December 10, 2009)

Java EE 7 (May 28, 2013)

  J2EE cung cấp các API cho việc phát triển ứng dụng nhằm:

Giảm thời gian phát triển ứng dụng

Giảm độ phức tạp của ứng dụng

Tăng hiệu suất ứng dụng

  Là kiến trúc ứng dụng đa tầng với ưu điểm:

Khả năng mở rộng

Khả năng truy cập

Khả năng quản lý

Mô hình kiến trúc chia làm 2 tầng:

Tầng trình diễn

Tầng nghiệp vụ

Các thành phần Java EE

Các thành phần java ee trong lập trình java

Java EE Container

java ee container trong lập trình java
Container cung cấp các dịch vụ :
Dịch vụ bảo mật (security service)
Dịch vụ giao dịch (transaction service)
Dịch vụ JNDI (JNDI lookup service)
  Java Application – component này là 1 chương trình standalone chạy bên trong Application Client container. Application Client container cung cấp những API hỗ trợ cho messaging, remote invocation, database connectivity và lookup service. Application Client container đòi hỏi những API sau: J2SE, JMS, JNDI, RIM-IIOP và JDBC. Container này được cung cấp bởi nhà cung cấp application server
Applet – Applet component là java applet chạy bên trong Applet container, chính là web browser có hỗ trợ công nghệ Java. Applet phải hỗ trợ J2SE API.
  Servlet và JSP – đây là Web-based component chạy ở bên trong Web container, được hỗ trợ bởi Web Server. Web container là một môi trường run-time cho servlet và jsp. Web Container phải hỗ trợ những API sau: J2SE,
JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC. Serlet và JSP cung cấp một cơ chế cho việc chuẩn bị, xử lý, định dạng nội dung động
Enterprise JavaBean (EJB) – EJB component là business component chạy bên trong EJB container. EJB component là phần nhân, cốt lõi của ứng dụng J2EE. EJB container cung cấp các dịch vự quản lý transaction, bảo mật, quản lý trạng thái, quay vòng tài nguyên (resource pooling). EJB container phải hỗ trợ những API sau: J2SE, JMS, JNDI, JTA, JavaMail, JAF, RIM-IIOP và JDBC.

 Web components

Web components: Servlet hoặc JSP (cùng với JavaBean và custom tags)
Các web components chạy trên 1 web container
Các web container phổ biến: Tomcat, Resin
Web container cung cấp các dịch vụ hệ thống (system services) cho các Web components
Request dispatching, security, và quản lý vòng đời
  Web Application là 1 gói triển khai, gồm:
Web components (Servlet và JSP)
Tài nguyên tĩnh như images
Helper classes (sử dụng bởi web components)
Thư việc Libraries
Deployment desciptor (web.xml)

Web Application

Web Application có thể được tổ chức thành:
Phân cấp các thư mục và files ( dạng chưa đóng gói)
File *.WAR: dạng đóng gói ( bên trong có phân cấp ), sử dụng khi muốn triển khai trên một remote machine
Cấu hình ứng dụng web:
Thông số cấu hình được đặc tả trong file web.xml (Web Applications Deployment Descriptor)
Cấu hình ứng dụng web trong lập trình java

Alias Path

Alias path trong lập trình java

Chú ý

Những vấn đề cần lưu ý đối với Alias path trong lập trình java

Tham số khởi tạo và ngữ cảnh (Context and Initialization Parameters)

Tham số khởi tạo và ngữ cảnh trong lập trình java

Event Listeners

Event Listeners trong lập trình java

Filter Mappings

Filter Mappings trong lập trình java

Error Mappings

Error Mappings trong lập trình java

Referencs

Referencs trong lập trình java

Mẫu thiết kế phần mềm (Design Pattern)

Một design pattern là một giải pháp chung cho một vấn đề thông thường trong công nghiệp phát triển phần mềm
Đưa ra mô tả và cách giải quyết vấn đề trong các trường hợp khác nhau
Design Pattern là cách giải quyết vấn đề được chuẩn hóa cho việc phát triển ứng dụng
Một số Design Pattern
OOP
Connection pooling
Observer pattern
MVC

Quá trình phát triển của kiến trúc ứng dụng Web

Quá trình phát triển của kiến trúc ứng dụng Web trong lập trình java

MVC 1: Page Centric

Page Centric trong lập trình java

Page Centric trong lập trình java

MVC 2: Server Centric

Server Centric trong lập trình java

Web Application Framework 

-  Dựa trên kiến trúc MVC Model 2
- Hầu hết các ứng dụng Web phải cung cấp các chức năng 
- Nhận ( receive ) và gửi tiếp ( Dispatching ) HTTP requests 
- Gọi các phương thức từ tầng model 
- Tổng hợp và chọn ra các views trả về cho client 
- Cung cấp các classes và interfaces cho lập trình viên sử dụng / mở rộng
- Phân tách tầng presentation và các business logic thành các Components 
- Cung cấp 1 điểm điều khiển trung tâm
- Cung cấp các tính năng mở rộng 
- Dễ dàng kiểm thử unit ( unit - testing ) và bảo trì 
- Nhiều công cụ hỗ trợ 
- Ổn định 
- Có cộng đồng hỗ trợ mạnh mẽ 
• Đơn giản hóa chế độ đa ngôn ngữ ( internationalization )
• Đơn gián hóa việc validate đầu vào
- Frameworks đang phát triển mạnh mẽ 
- JSP / Servlets vẫn còn khó sử dụng 
- Frameworks định nghĩa các components chuẩn , cho phép tái sử dụng . 
- Frameworks còn chỉ rõ cách thức phối hợp các components trong 1 ứng dụng

1 số Web Application Framework 

Apache Struts I and II
Spring Framework MVC
JavaServer Faces
Echo
Tapestry
Wicket

ĐĂNG NHẬN XÉT

Previous Post Next Post