Tải bản đầy đủ (.pdf) (38 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.64 MB, 38 trang )

Java overview
Trang 28/66
3.4. J2ME application
3.4.1. Đặc điểm ứng dụng J2ME
J2ME (Java 2 Micro Edition) là nền tảng cho các ứng dụng nhỏ gọn, với tài nguyên, và bộ nhớ hạn
chế: Thẻ cá nhân, Mobile, PDA, Embedded system,...
3.4.2. Tổ chức ứng dụng J2ME
3.4.3. Triển khai ứng dụng J2ME
3.5. Distributed application
4. Tổng quan về một số công nghệ, Framework
4.1. Servlet / JSP
4.1.1. Tổng quan
Servlet và JSP (JavaServer Pages) là hai công nghệ căn bản đầu tiên cho việc xây dựng các ứng
dụng web động trên nền Java. Mặc dù thường được áp dụng để xây dựng các ứng dụng web đơn
giản nhưng thực tế Servlet và JSP lại là nền tảng quan trọng trong kiến trúc J2EE (sự mờ nhạt về
ranh giới giữa ứng dụng web và ứng dụng J2EE).
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:


Java overview
Trang 29/66
• 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
Java overview
Trang 30/66

• 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
b. Kết hợp Servlet, JSP
Client gửi yêu cầu tới WebServer, Servlet tiếp nhận, xử lý yêu cầu trả lại kết quả vào trong bean.
JSP truy xuất bean, gửi kết quả (HTML) tới Client.

4.2. JavaScript, CSS, Ajax
4.2.1. JavaScript
Hãng Netscape đã đưa ra ngôn ngữ script có tên là LiveScript để thực hiện chức năng đáp ứng
yêu cầu từ phía người dùng. Sau đó ngôn ngữ này được đổi tên thành JavaScript để tận dụng tính
đại chúng của ngôn ngữ lập trình Java. Mặc dù có những điểm tương đồng giữa Java và
JavaScript, nhưng chúng vẫn là hai ngôn ngữ riêng biệt.
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ó.
Hiện nay JavaScript được dùng chủ yếu nhúng trong các file HTML nhằm:
Java overview
Trang 31/66
• 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
• Validate dữ liệu
• Popup windows
• Các hàm chuẩn: alert(), confirms(), prompts()
4.2.2. CSS
CSS (Cascading Style Sheet) hiện có thể coi là các chuẩn định kiểu cho các trang web. Về căn bản
đây là một tập khai báo về thuốc tính của các đối tượng trên một trang web. Hầu như tất cả các đối
tượng trên trang web đều có thể khai báo thuộc tính, từ các label, text đến các button, table. Thuộc
tính có thể là font, size, color,...
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:
Java overview
Trang 32/66

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à nhấp-
chờ và tải lại (click-wait-and-refresh)
Java overview
Trang 33/66

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. Điều này giúp cho ứng dụng web phản hồi nhanh
hơn. Ngoài ra, điểm đặc biệt quan trọng trong công nghệ AJAX nằm ở chữ A (Asynchronous) – bất
đồng bộ – tức là client cứ gửi yêu cầu tới server và quay lại với công việc của mình mà không cần
chờ trả lời. Khi nào server xử lý xong yêu cầu, nó sẽ báo hiệu để thể hiện những thay đổi cần thiết.

c. Nhược điểm của Ajax
Mặc dù Ajax có những đặc điểm vượt trội mang tính cách mạng cho các ứng dụng web, nhưng nó
cũng có một số nhược điểm sau:
• Phím "Back" (được đánh giá rất cao trong thao tác của người sử dụng web) của trình duyệt
bị mất tác dụng, người dùng không thể lấy lại dữ liệu của trang trước đó bằng cách đơn
giản, thông thường như trước đây vẫn dùng (đã có hướng giải quyết).
• Không thể lưu lại địa chỉ web vào thư mục Favorite (Bookmark) để xem lại về sau.
• Do áp dụng lớp trung gian để giao dịch, các ứng dụng AJAX không có một địa chỉ cố định

cho từng nội dung.
• Vấn đề bảo mật khi ứng dụng có dùng Ajax
Java overview
Trang 34/66
4.3. AWT, Swing
AWT và Swing là hai components GUI dùng cho các ứng dụng Java Desktop được Sun phát triển
trong bộ thư viện JFC (
Phần 3.1.2). Phần này chủ yêu đi sâu vào các nội dung của Swing, bộ thư
viện GUI Java mạnh nhất hiện nay.
4.3.1. AWT
AWT (Abstract Window Toolkit) là bộ thư viện hỗ trợ giao diện đồ họa GUI đầu tiên của Sun. Hiện
tại AWT chỉ phù hợp cho các ứng dụng GUI đơn giản, hoặc các ứng dụng Applet.
Đặc điểm của AWT:
• Tập hợp rất nhiều thành phần GUI
• Mô hình bắt sự kiện mạnh
• Quản lý Layout, giúp cho các thành phần của ứng dụng độc lập với kích cỡ, độ phân giải
• Cung cấp các lớp truyền dữ liệu với Clipboard
• package: java.awt
Hệ thống phân cấp các thành phần trong AWT
Quản lý Layout
Xử lý sự kiện
Deploy ứng dụng
4.3.2. Swing
a. Đặc điểm
Swing ra đời sau AWT, có các đặc điểm sau:
• Mang tất cả các đặc điểm của AWT
• Mã thuần Java với các components AWT (Button, Toolbar,...)
• Bổ sung một tập các components bậc cao (ListView, TreeView, Tab,...)
• Hỗ trợ Look and Feel độc lập với OS
• package: javax.swing

b. Các Swing components
Các components trong Swing được chia thành:
• Windows: Window, Frame, Dialog,...
• Container: Các components đặc biệt có thể giữ (chứa) và quản lý các components khác
• Components thông dụng: Button, TextField, CheckBox,...
• Các components bậc cao: TreeView, ListView, DateTimePicker,...
Mỗi components là một đối tượng GUI, được tổ chức theo cấu trúc phân cấp như sau:
Java overview
Trang 35/66

c. Quản lý Layout
Quản lý Layout là việc đảm nhận quản lý thông tin về vị trí, kích thước các thành phần của ứng
dụng (trong khu vực Container). Với việc sử dụng Layout, kính thước, vị trí của các thành phần GUI
không phụ thuộc vào độ phân giải của màn hình bởi vì Layout quản lý, bố trí các components trên
Form theo một sự ràng buộc không hoàn toàn phụ thuốc vào tọa độ.

Java overview
Trang 36/66
Swing hỗ trợ các kiểu Layout sau:
• Flow Layout
• Border Layout
• Card Layout
• Grid Layout
• GridBag Layout
• Định nghĩa Layout của riêng mình
d. Xử lý sự kiện
Quản lý việc giao tiếp giữa các thành phần GUI trong ứng dụng, giao tiếp giữa người sử dụng với
các thành phần của một Form, ví dụ:
• KeyEvent: Sự kiện nhấn phím
• MouseEvent: Sự kiến nhấn chuột

• WindowEvent: Sự kiện liên quan tới Close, Open, Zoom một cửa sổ WIndow,..
• ...
Mọi sự kiện đều được kế thừa từ lớp EventObject.
e. Deploy ứng dụng
Đóng gói, triển khai ứng dụng Desktop (Phần 2.4).
4.3.3. AWT vs Swing
Components AWT Swing
Pros
- Tốc độ
- Hỗ trợ applet nhúng trên Browser
- Look and Feel của OS
- Tính thẩm mỹ cao hơn AWT, nhiều
components hơn AWT
- Look and Feel độc lập OS
Cons
- Tính cơ động không cao do một số
components phụ thuộc platform
- Không hỗ trợ một số thuộc tính như
icons, tooltip
- Một số Browser không hỗ trợ
- Tốc độ chậm hơn AWT
4.4. Mô hình MVC
Khi xây dựng ứng dụng phần mềm thì người phát triển thường tiếp cận theo cách là xây dựng ứng
dụng theo một mô hình nào đó, và mô hình này được xây dựng trước, mô hình này giúp người
phát triển không phải lo lắng về cấu trúc chương trình vì mô hình đã được dựng sẳn, họ chỉ phải
thực hiện các module nghiệp vụ. MVC là mô hình nổi tiếng cho các ứng dụng xây dựng trên nền
Java, từ các ứng dụng Web thông thường tới các ứng dụng J2EE, hay Desktop. Vai trò và ưu điểm
của MVC sẽ dễ thấy hơn nếu chúng ta xem xét tới các mô hình dành cho ứng dụng web trên
Servlet, JSP.
Java overview

Trang 37/66
4.4.1. Mô hình ứng dụng Web với Servlet, JSP
Khi xây dựng ứng dụng web bằng Servlet, JSP thì người phát triển thường dựa trên 2 mô hình sau,
tạm gọi là mô hình 1 và mô hình 2:
Hai mô hình có một số điểm khác biệt. Sự khác biệt rõ ràng nhất đó là sự khác biệt về thành phần
xử lý request.
Với mô hình 1 thì trang JSP điều khiển mọi quá trình xử lý request và đồng thời cũng là nơi hiển thị
phía client giá trị trã về của server.

Trong mô hình 1 ở trên không xuất hiện servlet trong quá trình xử lý. Request của client được gửi
trực tiếp tới trang JSP, trang JSP này có thể giao tiếp với các JavaBean hoặc một vài dịch vụ khác,
và cuối cùng nó chọn trang JSP tiếp theo cho client. Trang tiếp theo để hiển thị giá trị trã về của
server.
Trong mô hình 2, request từ phía client đầu tiên sẽ được chặn lại tại servlet, và bộ phận này người
ta gọi là servlet điều khiển. Servlet sẽ thực hiện một số xử lý ban đầu của request và cũng xác định
trang hiển thị tiếp theo. Hình sau:

Trong mô hình 2, client không bao giờ gửi trực tiếp request tới một trang JSP. Servlet điều khiển sẽ
thực hiện như là bộ phận điều khiển giao thông. Điều này cho phép servlet thực hiện xử lý theo
kiểu “front - end” – giống như là kiểm chứng và cho phép. Ta có thể hiểu, servlet như là bộ kiểm tra
request sau đó tuỳ theo kết quả mà quyết định bước xử lý tiếp theo của request. Khi quá trình xử lý
request tại servlet hoàn thành, servlet sẽ chuyển request trực tiếp tới trang JSP phù hợp. Ví dụ,
trong một ứng dụng web đơn giản, trang JSP sẽ hiển thị kết quả của trã về của servlet, kết quả đó
là các tham số trong request.
Java overview
Trang 38/66
4.4.2. Mô hình MVC
Với mô hình 2 trong các ứng dụng web ta thấy sự phân chia các bộ phận trong kiến trúc rõ ràng
hơn, đó là ba thành phần: logic nghiệp vụ, phần hiển thị, và bộ phần xử lý request. Sự phân chia
này được gọi là mô hình Model – View – Controller (MVC). Các ứng dụng (không chỉ là ứng dụng

web) xây dựng trên mô hình MVC có ưu điểm là rất dễ bảo trì và có thể mở rộng với các ứng dụng
phức tạp.
MVC là kỹ thuật được sử dụng rộng rãi trong lập trình chuyên nghiệp, đặc biệt là trong kỹ thuật làm
web, tạo cho website có khả năng linh động hơn. Thực tế có rất nhiều lập trình viên phát triển ứng
dụng của mình theo mô hình MVC dù đó là bất kỳ ngôn ngữ nào.


a. Model
Là một đối tượng hoặc tập hợp các đối tượng biểu diễn cho phần dữ liệu của chương trình, ví dụ
các dữ liệu được lưu trong cơ sở dữ liệu (CSDL) hay từ các hệ thống ứng dụng khác (như mail...).
Java overview
Trang 39/66
b. View
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.
View trong mô hình MVC của ứng dụng web bao gồm HTML và các trang JSP. Các trang HTML
được dùng với mục đích tạo ra trang tĩnh, trong khi JSP có thể tạo ra trang với nội dung tĩnh hay
động.
c. Controller
Là phần điều khiển toàn bộ logic về hoạt động của giao diện, tương tác với thao tác của người
dùng (từ chuột, bàn phím và các thiết bị ngoại vi khác) và cập nhật, thao tác trên dữ liệu theo đầu
vào nhận được và điều khiển việc chọn phần “View” thích hợp để chuyển dữ liệu tới người dùng.
Trong ứng dụng web, Controller thường được thiết kế bằng Servlet, thực hiện các nhiệm sau:
• Chặn các request từ phía client.
• Chuyển các request tới các bộ phận dịch vụ để thực hiện.
• Hoặc là gọi các toán tử nghiệp vụ hoặc là uỷ thác tới một handler khác.
• Hổ trợ lựa chọn view tiếp theo cho client.
• Trã về view cho client.
4.5. Struts

/>
4.5.1. Struts và MVC
Struts là một Framework OpenSource nổi tiếng của dự án Apache cho các ứng dụng J2EE. Được
phát triển bởi một nhóm do Craige R.McClanahan đứng đầu (Craige R.McClanahan là chuyên gia
nghiên cứu về Servlet, JSP và tham gia viết Tomcat), bản thân Struts là sự mở rộng của các
Java overview
Trang 40/66
Servlet API theo mô hình MVC. Thực tế hiện nay Struts vẫn là framework nổi tiếng nhất cho các
ứng dụng theo mô hình MVC.
Mục đích của Struts là phân tách rõ ràng các phần Model, View, Controller trong mô hình MVC.
Ứng dụng viết trên Struts dễ dàng bảo trì, mở rộng. Struts framework liên tục được cập nhật, mở
rộng cung cấp nhiều package, thư viện hỗ trợ cho người phát triển: Taglib, đa ngôn ngữ, validate
data, tempate cho ứng dụng mẫu,...

• Client Browser: Web Container tiếp nhận HTTP Request từ Client và trả về HTTP Response
• Controller: Các nhiệm vụ của thành phần Controller trong Struts bao gồm nhận đầu vào từ
client, gọi toán tử nghiệp vụ, và tìm thành phần view để trã về cho phía client. Trong Struts
framework servlet trở thành điểm trung tâm cho ứng dụng web. Servlet điều khiển sẽ ánh xạ
giữa action của user với các hàm nghiệp vụ và hổ trợ lựa chọn view trã về dựa trên thông
tin của request đã được xử lý. struts-config.xml là file cấu hình cho Controller của ứng dụng
xây dựng trên Struts
• Business Logic: Cập nhật trạng thái của Model và đảm nhận việc điều khiển, thực thi dưới
các Form trong ứng dụng
• Model: Model là các đối tượng biểu thị thông tin về các yêu cầu từ người dùng, và lưu giữ
các kết quả của các quá trình xử lý.
• View: Đối tượng View trong Struts thường là các trang JSP. Struts cung cấp một loạt các
thư viện taglib, hỗ trợ người phát triển trong việc thiết kế các trang JSP. Sự hỗ trợ của
Struts với JSP cho phép các đối tượng form trên các trang JSP được quản lý: Lấy dữ liệu,
Validate dữ liệu, Quản lý lỗi,... Các thư viện taglib thường dùng: struts-html, struts-form,
struts-bean, struts-logic, struts-template.

4.5.2. Đặc điểm của Struts
• OpenSource, cộng đồng đông đảo
• Áp dụng mô hình MVC
• Struts là framework cho ứng dụng web, không phải ứng dụng J2EE: (Triển khai theo dạng
file .WAR cho các Web Server)
• Áp dụng Struts khá dễ dàng, đơn giản: Download Struts framework (hiện là version 2.0.6 -
March 22, 2007), cấu hình ứng dụng với các thư viện (Nhiều IDE hỗ trợ)
• Bộ thư viện thẻ taglib phong phú cho JSP. Hỗ trợ validate dữ liệu, thông báo lỗi,...
Java overview
Trang 41/66
• Thuận lợi cho công tác bảo trì, nâng cấp
• Struts chỉ hướng vào tầng Controller, có quan điểm là chỉ hướng vào tầng View (Bản thân
chỉ là sự mở rộng của Servlet & JSP)
• Quan điểm về bộ thư viện taglib của Struts: phải load toàn bộ >> tốn bộ nhớ, ứng dụng
chạy chậm,...
• Struts <> JSF
• Dự án Struts đã đóng băng (hay đã hoàn thiện ở mức chín muồi)
4.5.3. Cấu hình ứng dụng Struts
Ví dụ về tổ chức của một ứng dụng dựa trên Struts:

Bên cạnh file cấu hình web.xml cho ứng dụng web thông thường, ứng dụng Struts còn có struts-
config.xml là file cấu hình để khởi tạo các tài nguyên cần thiết, bao gồm thông số kết nối CSDL các
ActionForms để lấy các yêu cầu của người dùng, ActionMappings để chỉ đến các Actions phía trình
phục vụ Server, và các ActionForward để chọn các trang hiển thị. Ngoài ra còn có các file mô tả thư
viện taglib của ứng dụng (các file .TLD).
Dưới đây là một dạng đơn giản của struts-config.xml:
• <data-sources>: Thông số kết nối CSDL
• <form-beans>: Khai báo các form của ứng dụng
Java overview
Trang 42/66

• <global-forwards>: Các trang jsp hiển thị
• <action-mappings>: Khai báo các Action
• Một số thẻ khác

×