Welcome to rocktonam

Friday, January 13, 2006

Hướng dẫn lập trình Struts

1. Chào mừng bạn đến với Struts
Mục đích của dự án là cung cấp một môi trường làm việc mã nguồn mở cho việc xây dựng các ứng dụng với công nghệ Java.
Lõi của Struts là tầng điều khiển (Controller) mềm dẻo dựa trên các công nghệ chuẩn như Java Servlets, JavaBeans, ResourceBundles, và XML, cũng như hàng loạt các gói Jakarta Commons . Struts khuyến khích các kiến trúc ứng dụng dựa trên tiếp cận mô hình 2 - một áp dụng của lược đồ thiết kế Model-View-Controller (MVC).
Struts chứa thành phần điều khiển Controller và tích hợp với các công nghệ khác để hỗ trợ mô hình Model và khung nhìn View. Với Model, Struts có thể tương tác với các kỹ thuật truy cập dữ liệu chuẩn như JDBCEJB , cũng như hầu hết các gói của các nhà cung cấp khác (third-party packages), giống như Hibernate, iBATIS, hoặc Object Relational Bridge. Đối với View, Struts làm việc với các JavaServer Pages , bao gồm JSTL và JSF , cũng như các mẫu Velocity Templates, XSLT, và các hệ thống trình diễn khác.
Struts framework cung cấp các hệ thống nền tảng cho các ứng dụng web chuyên nghiệp. Struts giúp bạn tạo một môi trường mở cho ứng dụng của bạn dựa trên các chuẩn và các mẫu thiết kế mang tính chất công khai rõ ràng.
Struts là một dự án của The Apache Software Foundation đặt tại website http://struts.apache.org/ .
Struts là một dự án tiên phong và hỗ trợ miễn phí. Tài liệu và danh mục mail là cách thức chính để học sử dụng về Struts. Các trang tiếp theo giúp bạn biết là có những tài nguyên nào. Vì Struts là dự án tiên phong và các tài nguyên là giới hạn, điều quan trọng là chúng tôi giúp bạn những bước đầu tiên, sau đó là bạn phải tự phát triển tiếp.

2. Hình dung đơn giản về Struts
Một ứng dụng web web application sử dụng một trình thực thi để khởi động các tài nguyên như servlets và taglibs. Trình thực thi được định dạng bằng một tài liệu XML có tên là "web.xml". Mặt khác, Struts sử dụng một file cấu hình "Struts-config.xml" để khởi tạo các tài nguyên cần thiết. Những tài nguyên này bao gồm 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ị.
Dưới đây là một file cấu hình đơn giản của Struts (struts-config.xml) áp dụng cho luồng công việc login:

    
"-//Apache Software Foundation//DTD Struts Configuration 1.2//EN"
"http://struts.apache.org/dtds/struts-config_1_2.dtd">


name="logonForm"
type="app.LogonForm"/>


path="/Welcome"
forward="/pages/Welcome.jsp"/>
path="/Logon"
forward="/pages/Logon.jsp"/>
path="/LogonSubmit"
type="app.LogonAction"
name="logonForm"
scope="request"
validate="true"
input="/pages/Logon.jsp">
name="success"
path="/pages/Welcome.jsp"/>
name="failure"
path="/pages/Logon.jsp"/>

path="/Logoff"
type="app.LogoffAction">
name="success"
path="/pages/Logoff.jsp"/>




Bạn có thể mô tả nhiều loại tài nguyên trong file cấu hình. Bạn có thể mô tả các định dạng hợp lệ cho các ActionForms trong một đặc tả XML bằng việc sử dụng Bộ kiểm tra tính hợp lệ của Struts . Một mở rộng khác gọi là Tiles, nó giúp bạn xây dựng những trang web từ các phân đoạn nhỏ hơn.
Struts là một framework mở. Mỗi lớp thực thi bằng Struts có thể thay thế bằng các lớp mặc định (Struts xây dựng sẵn). Các thuộc tính của lớp mặc định này có thể được thiết lập bằng việc sử dụng thẻ set-property của Digester (Bộ chuyển đổi các cấu hình từ XML sang Java). Đó là một lý do giải thích việc có rất nhiều các phiên bản mở rộng cho Struts. Struts cung cấp một môi trường làm việc nền tảng, nhưng bạn vẫn có thể viết các ứng dụng theo cách riêng của bạn.
Thông tin thêm về Struts và các công nghệ phía sau của Struts, xin xem Tài liệu hướng dẫn sử dụng và Tài liệu kỹ thuật .

Để được bắt đầu một cách dễ dàng hơn, tôi xin được trình bày một số khái niệm cơ bản để các bạn có thể hiểu được Struts:
1. Thế nào là mô hình 1 ?
Ngày xưa các bạn lập trình một trang jsp, php hay asp, các bạn thường đan xen các mã html cùng với các mã jsp, php, hay asp. Do vậy, có những khó khăn sau có thể gặp phải
- Người thiết kế giao diện cũng cần phải biết các ngôn ngữ lập trình, hoặc bạn phải trực tiếp thiết kế chúng.
- Việc bảo trì chúng thường rất khó khăn, vì một phần các mã chương trình lẫn lộn với mã html.
- Khi có lỗi xảy ra, việc tìm ra lỗi và định vị ỗi cũng là một vấn đề khó khăn.
- Và còn nhiều những khó khăn khác ...
Việc lập trình như trên, người ta gọi là mô hình lập trình 1, hay là mô hình lập trình cổ điển.
2. Thế nào là mô hình 2 ?
Để khắc phục các khó khăn trên, người ta đưa ra mô hình 2 hay còn gọi là mô hình MVC (Model-View-Controllor).
Tức là: Tương ứng với một trang JSP ngày xưa, bây giờ người ta tách nó ra làm ba thành phần: Mô hình - Khung nhìn - Bộ điều khiển. Các thành phần trên làm việc như sau:
- Mô hình: Mô hình là các lớp java có nhiệm vụ:
+ Nhận các yêu cầu từ khung nhìn
+ Thi hành các yêu cầu đó (tính toán, kết nối CSDL ...)
+ Trả về các giá trị tính toán cho View.
- Khung nhìn: Bao gồm các mã tương tự như JSP để hiển thị form nhập liệu, các kết quả trả về từ Mô hình...
- Bộ điều khiển: Đồng bộ hoá giữa Khung nhìn và Mô hình. Tức là với một trang JSP này thì sẽ tương ứng với lớp java nào để xử lý nó và ngược lại, kết quả sẽ trả về trang jsp nào.
Như vậy, chúng ta có thể tách biệt được các mã java ra khỏi mã html. Do vậy, nó đã giải quyết được các khó khăn đã nêu ra trong Mô hình 1. Người thiết kế giao diện và người lập trình java có thể mang tính chất độc lập tương đối. Việc debug hay bảo trì sẽ dễ dàng hơn, việc thay đổi các theme của trang web cũng dễ dàng hơn ...

3. Struts sử dụng mô hình 2 như thế nào ?
Ngày nay khi nói đến Mô hình 2 thì người ta hiểu ngay đến Struts/MVC. Các thành phần MVC tương ứng trong Struts có thể mô tả đơn giản như sau:
- Mô hình: Các lớp java
- Khung nhìn: các trang jsp hay html
- Bộ điều khiển: file struts-config.xml (đương nhiên là cả các lớp điều khiển bên trong của nó nữa, nhưng người lập trình chỉ cần hiểu file cấu hình này là cũng tạm đủ rồi).

4. Để lập trình Struts được bạn cần phải có các kiến thức gì ?
Để lập trình được Struts, bạn cần hiểu được một số công nghệ nền tảng của Struts là:
- html
- xml
- java
- taglib
- ...
Nói như vậy, chắc các thấy sợ quá đúng không ?
Tuy nhiên, nó không đáng sợ đến thế đâu, bởi vì tuỳ vào lượng kiến thức bạn thu thập được bạn có thể áp dụng vào ứng dụng của mình. Nếu bạn chưa biết nhiều, bạn có thể làm các ứng dụng với việc hỗ trợ của các công nghệ cơ bản, sau đó bạn có thể nghiên cứu tiếp để đến với các công nghệ cao hơn ...

5. Vậy thì Struts có phải là lựa chọn tốt nhất cho tất cả các dự án ?
Không. Nếu bạn cần viết các ứng dụng đơn giản thì bạn chỉ cần sử dụng các trang phía trình phục vụ như JSP hoặc Servlet (Mô hình 1).
Nhưng nếu bạn viết một ứng dụng phức tạp hơn, với rất nhiều các trang, mà cần được duy trì lâu dài, khi đó Struts có thể giúp bạn. Các thông tin về lựa chọn hoặc Mô hình 1 hoặc MVC (Mô hình 2), xem phần Understanding JavaServer Pages Model 2 architectureIssues in Struts Adoption .

1 Comments:

  • thank bạn nha ^.^ bài hay lắm ^.^

    By Anonymous Anonymous, at 12:58 PM  

Post a Comment

<< Home


 

   Copyright © 2005 rocktonam. Contact me at rocktonam@yahoo.com or rocktonam@gmail.com

   Or now you can send your massages to me [rocktonam] -->

   Ghi rõ nguồn rocktonam.blogspot.com khi phát hành lại thông tin từ trang blog này.