Thứ Hai, 21 tháng 7, 2014

Login Module using jsf

JSF Page comunication using param / query string

Đề bài:
Develope a web application to show products in one page and product details in other page.
Như đã biết bài trước ta đã tìm hiểu về JSF các bạn có thể xem lại tại đây.

Demo:



Tạo Database.

Thêm thư viện jsf và sqljdbc 4.
Tạo các packages và class như trên.
Code trong Company.java
Tạo class model để kết nối với Database.

Code lấy dữ liệu trong Database.

Code detail.

Code trong Home.java
Tạo trang JSF Managed Bean ViewDetail.java

Code trong index.xhtml
  
Code trong detail.xhtml

Kết quả sau khi Demo

Search


Search Complete


View Detail
Các bạn có thể tải Demo tại đây. Nhận xét: 

- JSF dễ dàng sử dụng hơn Struts.
- Struts được gắn với Struts API trong khi  JSF có thể được thực hiện trong các đối tượng Java.
- Trong Struts, không có phụ thuộc Injection. JSF sử dụng phụ thuộc Injection.
- Thẻ Struts tạo ra HTML trực tiếp còn JSF không tạo ra HTML.

- JSF là  "component" framework trong khi Struts là 1 "action" framework.

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.
Các bạn có thể tải Demo tại đây.Cảm ơn các bạn đã đọc Blog của tôi.

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.


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

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
Và sau đây là kết quả:
Trang Login
Khi đăng nhập đúng sẽ vào trang Home
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.

Thứ Tư, 16 tháng 7, 2014

Components of struts 2

Working with Action

- Khi client request đến server điều gì thì phải request đến một action. Tùy thuộc vào câu trả lời, nó sẽ đưa ra  view tương ứng .
- Action : đóng vai trò xử lý mọi tương tác với người dùng.

Action
Implementing action

 Working with Interceptor:

- Được gọi trước khi thông tin đi tới action và sau khi được xử lý trong action.
- Chỉ xử lý được với những thông tin của action, không có khả năng lọc như filter trong servlet.

The value stack:

- Là nơi chứa tất cả các thông tin mà action, view cần như session request, các thuộc tính trong action, model...


The OGNL:

- The OGNL(Object - Graph Navigation Language) là một ngôn ngữ biểu thức rất mạnh mẽ để giúp lấy dữ liệu trong Stack.

 Validations

- Struts 2 hỗ trợ việc validation cho client và server.
- Cung cấp và thực hiện khai báo qua tập tin xml.
- Struts 2 hỗ trợ các thành phần có sẵn giúp khắc phục tính phức tạp cho người viết code  validation tương tự như Struts 1 Validation Framework.


Type Conversion:

- Convert dữ liệu tương ứng từ view vào trong action và ngược lại.