Sunday, July 20, 2014

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 : 









        Khi người dùng gửi yêu cầu đến server , server sẽ chuyển tiếp đến Controller, sau đó tùy vào yêu cầu của người dùng thì Controller sẽ truyền dữ liệu vào action tương ứng và action sẽ trả về các giá trị tương ứng . Tiếp theo , các kết quả lấy được sẽ truyền đến View , trong code View các dữ liệu sẽ lấy từ trong value stack , mọi thông tin tương tác với Struts cũng được lưu lai trong valuestack.

Mô hình MVC của Struts2 :


Struts2 framework features:

       - POJO forms và POJO actions : Với Struts2 , các bạn có thẻ sử dụng POJO để nhận vào các hình thức đầu vào khác nhau
       - Tag support: các thẻ tag trong Struts đã được cải thiện, các thẻ mới cho phép viết ít mã hơn
       - AJAX support : Struts đã được phát triển hơn nhờ web 2.0 , và cũng đã tích hợp hỗ trợ AJAX bằng cách tạo các thẻ AJAX
       - Easy Intergration : Tích hợp với các khuôn khổ khác như SiteMesh,Spring và Tiles  giờ sẽ dễ hơn
       - Template Support : Giúp đỡ tạo ra cách sử dụng Template.
       - Plugin Support : Các hành vi của  Struts2 có thể tăng cường và bổ sung với việc dùng plugin.
       - Easy to modify tags : Tag đánh dấu trong Struts2 ,có thể được tinh chỉnh bằng cách sử dụng mẫu Freemaker. Không cần JSP hoặc kiến thức java.Chỉ với HTML cơ bản, XML , CSS là có thể chỉnh sửa được cái thẻ
  • Ta thấy Struts 2 có những ưu điểm nổi trội hơn rất nhiều so với Struts 1 :
    - Code config của struts 2 ít hơn rất nhiều so với Struts 1
    - Làm Tag dễ dàng
    - Ta có thể đo thông tin của ứng dụng chạy như thế nào
    - Tích hợp các công cụ để phát triển (Plugin..)
    - Đặc điểm quan trọng là nó giúp ta mở rộng (tích hợp template, tích hợp các thành phần khác dễ dàng)
    - Hỗ trợ Ajax để làm web 2.0 rất đa dạng và tuyệt vời

Wednesday, July 16, 2014

Basic Component of Struts 2



 1 . Làm việc với action : 
         - Là component của server.
         - Là một container cho phép gọi tất cả các xử lí logic, bussiness để xử lí request của người dùng. Nó sẽ tương tác trực tiếp với các model, cũng như cung cấp dữ liệu cho View.

 2 . Làm việc với  Interceptor : 
         -  Interceptor được sử dụng tương tự như servlet filter. Interceptor được gọi trước khi action được gọi và sau khi action xử lí xong.
         -  Interceptor là một phần rất quan trọng trong Struts2 nó được cấu hình để thực hiện các chức năng như workflow, validation, upload file,…

 3 . Custom một Interceptor :
         - Ngoài những interceptor trên thì người dùng cũng có thể tạo ra những interceptor cho chính họ. Trong xwork cung cấp cho chúng ta một Interface Interceptor. Interface này có 3 phương thức chính là:
 + init(): Phương thức được gọi đúng một lần sau khi Interceptor được tạo ra.                     intercept(): phương thức được gọi mỗi khi action được invoke và Intercept này sẽ thực hiện trước và sau khi action execute.
 + destroy: phương thức gọi khi interceptor bị hủy . Thực hiện giải phóng tài nguyên.
         - Trong xwork cũng cung cấp cho chúng ta một class abstract AbstractInterceptor lớp này implement từ Interface Interceptor. Nó cung cấp cho chúng ta 2 phương thức init() và destroy() rỗng.
  4 . The value stack : là nơi chứa tất cả các thông tin cần thiết.

  5 . The OGNL viết tắt của (The object graph navigation language)  : giúp lấy dữ liệu từ value stack. Ngoài ra nó còn giúp chuyển đổi và truyền dữ liệu.


  6.  Validation : cung cấp khả năng validation các dữ liệu.

Framework and Struts



I. Framework :

   1 - Khái niệm của Framework :
       - Framework là tập hợp của các interface ,class java giúp phát triển một ứng dụng.
       - Một framework cung cấp các phương thức sử dụng ở nhiều trường hợp khác nhau.
       - Vai trò của một framework, framework cung cấp sẵn các công cụ, các phương thức cho một công việc nào đó cụ thể.
  2 - Đặc điểm của một framework :
       - Dễ dàng nâng cấp và bảo trì.
       - Dễ dàng nâng cấp , sử dụng và tái chế

II. Struts 2 :

  1 - Khái niệm Struts 2 :
     -  Struts 2 là một open source java-based web application framework
     -  Struts 2 là một framework có sử dụng mô hình MVC. 

  2 - Vòng đời của Struts 2 : 
     - Khi người dùng có 1 request lên server. Thì request sẽ chuyển đến ActionMapper sau đó nó sẽ đi qua các filter.
     - Sau đó nó sẽ đọc file struts.xml, tùy thuộc vào config trong file struts.xml. ActionMapper sẽ chuyển đến các Action tương ứng.
     - Trước khi gọi Action thì nó sẽ gọi ra các interceptor nếu có. Sau đó nó gọi đến Action thật sự và nó trả về resuilt.
     - Sau khi có Resuilt nó sẽ định hướng đến View, sau đó nó tiếp tục đi qua các interceptor và trả về Response cho người dùng.
 3 - Mô hình kiến trúc Struts 2 :



 NHẬN XÉT : 
         - Struts 2 là 1 framework dựa trên Struts 1 và là bản nâng cấp của struts 1 nên với Struts 2 việc định nghĩa các thành phần trở nên đơn giản và rành mạch hơn.
         - Struts 2 có sử dụng mô hình MVC nên code rất rành mạch , dễ sửa và tìm lỗi.
         - Struts 2 hay có nhiều lỗi lằng nhằng ở việc đặt tên package và add các thư viện





* Bước 1 : Download Struts (link có thể tìm thấy trên Google bạn có thể chọn bản phù hợp vs máy bạn) 

* Bước 2 : Add Plugin : 

* Bước 3 : Chọn 3 file vừa tải về r chọn add :
 
* Bước 4 :Chọn Restart IDE Now để hoàn thành quá trình cài đặt :



- Do được xây dựng dựa trên mô hình MVC nên Struts thừa hưởng tất cả những ưu điểm của mô hình MVC tùy nhiên nó cũng có 1 số mặt hạn chế.