Monday, July 28, 2014

Introduction to JAXP


1. Định nghĩa : 
JAXP viết tắt của : Java API for XML Processing được coi là một API trong lập trình Java sử dụng XML. Nó có khả năng phân tích và sử dụng các dữ liệu dưới dạng XML.

2 . Phân tích cú pháp XML : 
XML parsers là những chương trình mà có nhiệm vụ phân tích và sử dụng  dữ liệu trong trang XML.
Các đặc điểm nổi trội của XML parsers : 
              - Ngôn ngữ độc lập 
              - Mã độc lập 
              - Tính linh hoạt cao 
              - Phù hợp hơn với nhiều mục đích sử dụng 


JAXP chia XML prasers làm 2 loại là : 
  + Event-Based Parsers : Giao diện phân tích API đơn giản dành cho XML ( ví dụ như SAX)
  + Object-Based : Giao diện phân tích dạng Mô hình đối tượng tài liệu (ví dụ như DOM) 

Tìm hiểu thêm về giao diện DOM : là giao diện rất dễ hiểu , DOM phân tích toàn bộ tài liệu XML và kiến thiết một cấu trúc hoàn chỉnh đại diện cho bản tài liệu, trong bộ nhớ, bằng cách dùng các lớp để mô hình hóa các khái niệm
Tìm hiểu thêm về giao diện SAX : Bộ phân tích SAX được gọi là SAXParser và được tạo bằng javax.xml.parsers.SAXParserFactory. Khác với bộ phân tích DOM, bộ SAXParser không tạo ra một hình thức đại diện của tài liệu XML trong bộ nhớ và vì thế nó hoạt động nhanh hơn, ít tốn bộ nhớ hơn. Thay vào đó, bộ phân tích SAXParser thông báo cho các trình khách cấu trúc của tài liệu XML bằng cách gọi các hàm callbacks, nghĩa là, bằng cách gọi các phương pháp của trường hợp Bản mẫu:Javadoc:SE đã được cung cấp cho bộ phân tích.

 + DOM chỉ tích hợp để dùng với các tài liệu nhỏ còn SAX có thể dùng để đọc các tài liệu lớn
 + DOM phù hợp cho việc đọc toàn bộ 1 trang XML còn SAX thì chia nhỏ nó ra
 + DOM thực hiển nhiệm vụ của mình khá chậm so với SAX

XSLT : là ngôn ngữ tập tin dạng XML cho phép chuyển đổi các dạng tài liệu sang các loại dữ liệu khác.Định dạng muốn chuyển sang thường có thể là là một tài liệu XML hoặc không; bạn có thể chuyển đổi dữ liệu XML sang bất cứ dạng gì bằng cách tạo ra các bảng định kiểu XSLT và thực hiện chuyển đổi dữ liệu. Nếu bạn muốn thay đổi định dạng đích, bạn chỉ việc thay đổi bảng định kiểu XSLT và thực hiện việc chuyển đổi lần nữa. Điều này rất hiệu quả cho những người không phải là lập trình viên, ví dụ như nhà thiết kế, họ có thể thay đổi XSLT để có được kết quả như ý.

Sunday, July 20, 2014

JSF Page comunication using param / query string

Develope a web application to show products in one page and product details in other page :


Chúng ta làm theo các bước như sau : 
Tạo database
Thêm các thư viện sau
Tạo class Company
Code kết nối tới database
Code tìm kiếm
tạo managedbean viewdetail






Code trang index.xhtml

code trang view.xhtml

managedbean home



NHẬN XÉT :
-JSF dễ sử dụng hơn Struts
-Trong Struts, không có phụ thuộc Injection. JSF sử dụng phụ thuộc Injection.

Develop Basic Component of JSF

I.Khái niệm JSF
 - JSF là một môi trường phát triển GUI khá truyền thống, giống như AWT, SWT, và Swing. Một trong những lợi ích chính của nó là nó làm cho việc phát triển Web dễ dàng hơn bằng cách giao những công việc khó khăn cho các nhà phát triển khung công tác, chứ không phải cho các nhà phát triển ứng dụng. Cứ cho là bản thân JSF phức tạp hơn nhiều so với các khung công tác Web khác, nhưng sự phức tạp này được che giấu không để cho các nhà phát triển ứng dụng biết. Phát triển các ứng dụng Web trong JSF dễ dàng hơn nhiều so với hầu hết các khung công tác khác: nó đòi hỏi viết mã ít hơn, ít phức tạp hơn, và ít việc cấu hình hơn. 

II.Ưu điểm của JSF:

 - Tách biệt hoàn toàn giữa hành vi và cách trình bày
 - Kiểm soát tính có trạng thái (statefulness) ở mức thành phần
 - Các sự kiện dễ dàng được liên kết với mã phía máy chủ
 - Sử dụng các khái niệm thành phần UI và tầng Web (Web-tier) quen thuộc
 - Cung cấp nhiều dụng cụ của nhà sản xuất phần mềm đã tiêu chuẩn hóa
 - Sự hỗ trợ IDE tuyệt vời

III.Thành phần của JSF:

  - JavaBeans để quản lý trạng thái và hành vi của ứng dụng
  - Các thành phần GUI có trạng thái
  - Phát triển hướng sự kiện (thông qua các trình nghe-listener) giống như trong phát triển GUI truyền thống

IV.Demo
Bước 1: Tạo Database.

Bước 2: Add thư viện sqljdbc4.jar và JSF 2.2 - javax.faces.jar như hình trên.

Bước 3: Bạn có thể tạo các class như trên hình.
Bước 4: Code trong class Company.java

Bước 5: Code kết nối Database trong model.java

Bước 6: Code lấy dữ liệu của Company trong model.java

Bước 7: Code trong Home.java

Bước 8: Code trong index.html
 Và sau đây là kết quả:

V.Nhận xét
 - Giao diện ứng dụng JSF bao gồm các trang JavaServer Pages (JSP). 
 - Trang JSP có chứa các thành phần JSF để thể hiện chức năng GUI. 
 - Sử dụng các thư viện tùy biến JSF bên trong trang JSP để biểu hiện các thành phần UI.
 - JSF làm việc với JSP thông qua một cầu nối thư viện thẻ JSP.
 - JSF không giới hạn đối với HTML và HTTP.
 - Ngắn gọn và mạnh mẽ hơn Struts
 - Trang  dùng trong JSF có đuôi .jsp . Nhưng trong URL hiển thị đuôi .faces hoặc .jsf. Nên khi gọi trực tiếp sẽ bị exception.

Integrate Struts 2 to solve complex problem

Đề bài:
Bài làm:
Tạo Database
Add thư viện Struts
Hình ảnh sau khi bạn add thư viện.

Tạo Book.java

Code trong Book.java

Tạo DataAcess để kết nối với database.

Code lấy tất cả danh sách Book trong DataAcess

 Code lấy Book theo tên.

 Tạo Bookbean để lấy dữ liệu.

 Code trong index.jsp

Tạo Search.jsp

Tạo Error.jsp

Tạo WordSearch.java

Bước 12: Tạo struts.xml
Các bạn có thể tải Demo tại đây.

Nhận xét:

- Biết cách add thư viện Struts 2 
- Qua bài Demo ta hiểu rõ hơn về cách làm việc của Struts 2
- Để sử dụng nó 1 cách hiệu quả ta cần tìm hiểu kĩ trước khi làm vì Struts 2 không đơn giản.
- Nó cung cấp và thực hiện khai báo qua tập tin xml
- Struts2 hỗ trợ các gói cõ sẵn giúp cho người dùng viết code dễ dàng hơn.

Login using Interceptor in Struts2

Yêu cầu đặt ra : Làm ứng dụng Login sử dụng Interceptor trong Struts 2.
Sau đây tôi sẽ hướng dẫn các bạn làm Demo.
Bước 1: Tạo Database.
Bước 2: Tạo 1 web application với các class như trên.
Bước 3: Add thư viện Strust 2.
Bước 4: Tạo class Data Access để kết nối Database.

Bước 5: Code trong Account.java
Bước 6: Code trong Home.java
Bước 7: Code trong Login.java

Bước 8: Code trong struts.xml

Nhận xét:
- Qua bài Demo ta có thể thấy Interceptor đóng vai trò như 1 Filter nhưng 1 Interceptor cho phép chúng ta kiểm soát nhiều hơn so với Filter.
- Cách làm việc của Interceptor dễ dàng hơn so với Filter.
- Nó sẽ được gọi đến trước khi request đến action .
- Tính bảo mật trong Interceptor cao hơn.
Nhược điểm:
Interceptor : chỉ có thể được áp dụng cho 1 nhóm nhất định.
Demo các bạn có thể tải tại đây. Cảm ơn đã đọc Blog của tôi.

Friday, July 18, 2014




Ở bài này chúng ta sẽ làm quen được với những việc sau :
- Hiểu rõ hơn cách làm việc của struts (cách controller đọc và lấy dữ liệu từ file struts.xml)
- Có nhiều tag hỗ trợ và dễ sử dụng 
- Cách thêm thư viện mới là thư viện struts
- Biết thêm một cách làm với ứng dụng web
- Nhưng để làm tốt phải code tốt jsp

1 - Tạo 1 Project và nhớ chọn Struts2 : 



2 - Viết phương thức Search :

3 - Tạo 1 action mới :

4 - Viết code trong file struct.xml :

5 - Viết code trong trang index.jsp và searchComplete.jsp :

6 - Sau đó chạy ứng dụng của bạn và đây là 1 số hình ảnh demo :