Thứ Hai, 28 tháng 7, 2014

Working with SAX

Chúng ta sẽ học cách sử dụng thư việc SAX :

Về cấu trúc tổng quát của thư viện này chúng ta có thể tham khảo qua bài giảng của thầy Phạm Anh Đới tại đường link này

Chúng ta bắt tay vào một số Demo nho nhỏ :

Demo 1:


Create a program to accept the tomcat-users.xml file as a command line parameter and count the number of users defined in this configuration file. At the end of processing, it requires to print the number of users on the console.
Bước một chúng ta tạo file xml

tạo class Handler

Code trong class chính

Chúng ta được kết quả như sau


Các bạn có thể tham khảo sourcecode tại đây

Demo 2:

Create the student.xml file that stores a list of registered students. Write a program for printing the name and ID of all registered students provided in student.xml.
Tạo file xml Students

tạo class Handler

Code trong file chạy chương trình

Kết quả thu được

Các bạn có thể tải source tại đây


Demo 3:


Write a program which demonstrates the use of SAX parser for a simple search in XML document. The program searches a specified user in the tomcat-users.xml file and prints an the role of the given user on search completion.
Tạo file XML

Viết Class Handler

Code trong class chính

Kết quả

Demo tại đây

Nhận xét :
-Sử dụng đơn giản
-Sử dụng ít bộ nhớ nên xử lý rất nhanh
-Tập trung vào dữ liệu đang có và dễ lọc dữ liệu

*Nhược điểm :
-Không thể tác động lên dữ liệu XML
-Sẽ gặp khó khăn khi hoạt động với cấu trúc xml lớn

Introduction to JAXP

Nội dung một lần này chúng ta sẽ giới thiệu về JAXP (Java API for XML Processing ) , chúng ta sẽ tìm hiểu về các thư viện có trong JAXP , cách quét và đọc tài liệu XML.

I. Parsing XML :
-Là chương trình giúp chúng ta lấy thông tin dữ liệu và điểu khiển dữ liệu trong xml , tức là giúp chúng ta đọc xoá sửa.

*Đặc điểm :
-Không phụ thuộc ngôn ngữ.
-Không phụ thuộc mã nguồn.
-Nó rất linh hoạt và phù hợp cho nhiều mục đích.

II. Các phương pháp dùng để đọc file XML
Có nhiều trường phái để quét file XML nhưng thường có thể được chia làm 2 loại:
* Event-Based Parsers (eg. SAX)
- Trường phái này Parser sẽ quét trên sự kiện xảy ra. Khi parser gặp một tài liệu thì nó sẽ phải xử lý như thế nào, khi gặp một thuộc tính thì nó sẽ phải xử lý như thế nào.
* Object-Based Parsers (eg. DOM)
- Trong trường phái này thì Parser sẽ tiến hành chuyển đổi file XML đó sang object và xử lý tài liệu đó.

III. So sánh giữa SAX và DOM
-SAX phù hợp để quét tài liệu lớn còn DOM phù hợp với tài liệu nhỏ.
-SAX phù hợp để lấy góc nhỏ thông tin trong tài liệu XML , DOM điều khiển cả tài liệu XML.
-SAX nhanh hơn DOM.

IV. Giới thiệu JAXP :
-Còn đây là các package của JAXP
Các bộ thư viện trong SAX được chia thành 5 nhóm :
- Interfaces làm việc với Parser
- Interfaces làm việc trong ứng dụng Application
- Các lớp của SAX
- Các lớp Java
- Các lớp hỗ trợ

V.XSLT:
-Là ngôn ngữ quan trọng để chuyển đổi file XML sang một dạng khác
- Ngôn ngữ tập tin định dạng XML dành cho việc chuyển đổi(The XML stylesheet language for Tranformations or XSLT) cho phép biến đổi một bản tài liệu sang các dạng thức dữ liệu khác.
-XSL (eXtensible Stylesheet Language) gồm 2 thành phần:
+XSL-T (Transform): chủ yếu được dùng để chuyển đổi cấu trúc văn bản XML.
+XSL-FO (Formating Object) dùng để định dạng văn bản XML.
  
NHẬN XÉT : 
XML ngày càng được ứng dụng rộng rãi vì nó có cấu trúc chặt chẽ , được ví như cơ sở dữ liệu thu nhỏ và không cần phải cấu hình , chính vì vậy chúng ta có thể dùng XML làm ứng dụng Java

Chủ Nhật, 20 tháng 7, 2014

Login Module using jsf

Apply to your assignment


tạo database


code kết nối database

managedbean 

Login.java
 Kết quả trước và sau khi đăng nhập :



Demo tại đây
Nhận xét :
-làm việc đơn giản hơn so với struts

-code dễ hiểu

-tuy nhiên còn ít dữ liệu

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

 Kết quả thu được :





Có thể download sourcecode tại đây

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.

Thứ Bảy, 19 tháng 7, 2014

Integrate Struts 2 to solve complex problem

Độc giả Club, một câu lạc bộ trực tuyến với độc giả muốn thực hiện một ứng dụng

sẽ cho phép người sử dụng để đọc một cuốn sách hay bài báo trực tuyến.

Thiết kế một thành phần điều khiển cho các ứng dụng web dựa trên Struts có tên là "trực tuyến

Book Reader Câu lạc bộ ". Ứng dụng này yêu cầu người sử dụng nhập vào các chi tiết của cuốn sách

để được đọc trực tuyến. Nếu cuốn sách theo yêu cầu của người sử dụng được tìm thấy trong các cổ phiếu sau đó

bộ điều khiển sẽ cung cấp một nút để tải về một phiên bản đọc của cuốn sách.

Nếu bộ điều khiển sẽ cung cấp một hình thức để giới thiệu một cuốn sách. Các

Khuyến nghị Mẫu nên yêu cầu các chi tiết sau đây về cuốn sách được

đề nghị:

Tiêu đề

Tác giả

Xuất bản

Chủ đề

I.Các bước làm : Các bạn tạo các class và database như sau :











các bạn có thể download mã nguồn tại đây


Thứ Sáu, 18 tháng 7, 2014

Create custom interceptor in struts 2

Mục đích tạo ra interceptor là để ngăn chặn người dùng truy xuất tài nguyên khi chưa được chứng thực.

Sau đây chúng ta sẽ làm một ứng dụng để yêu cầu khi truy xuất tới trang phải trải qua bước đăng nhập, và nếu chúng ta nhập thẳng đường link đến trang HOME thì cũng sẽ bị redirect về trang yêu cầu đăng nhập.



Chúng ta làm theo các bước như sau :

Bước 1  : Tạo cơ sở dữ liệu database theo bảng sau :
Bước 2 : Tạo 2 trang JSP là index và home :

Bước 3 : Viết code trong các trang sau :
Code trong struts.xml

Code trong class DbConnection
Home.java
Login.java
Bước 3 : Ta thu được kết quả như sau . Và chúng ta kiểm tra lại : 
Khi chưa đăng nhập
Sau khi đăng nhập
Sau khi đăng nhập được chúng ta copy đường dẫn và paste vào kiểm tra xem có vào thẳng trang home được không , nếu không được tức là đã làm đúng 

Các bạn có thể tải demo tại đây

NHẬN XÉT
-Interceptor cho bạn kiểm soát nhiều hơn so với Filter
-Nó sử dụng thuận tiện và có phần dễ dàng hơn
-Filter được áp dụng cho nhiều yêu cầu của ứng dụng web nhưng cho một nhóm nhất định
-Qua bài ta có thêm kiến thức về Interceptor và cách sử dụng của nó.
-Hỗ trợ bảo mật với Interceptor rất tốt