Thursday, July 17, 2014

Components of Struts 2 (Thành phần của Struts 2)

 1. Giới thiệu về Struts 2:

   - Apache Struts là một mã muốn mở được sử dụng để phát triển trên nền Java EE Web.
   - Được phát triển trên nền tảng của mô hình MVC.
   - Có các tập hợp thư viện và công cụ thích hợp để phát triển ứng dụng.



Minh họa về sơ đồ hoạt động của Struts


- Đặc điểm của nó là: tách biệt các thành phần (View, Model).
- Và các thành phần phụ thuộc ít với nhau.
- Giúp phát triển tầng giao diện Java Web trên mô hình MVC.

* Ưu và nhược điểm:

 Dù các thành phần trong Struts có thể dễ dàng và rành mạch hơn nhưng đôi khi chúng ta hay gặp lỗi nhỏ trong việc đặt tên các package trong project.

Trích từ bài viết: Framework and Struts

2. Cách hoạt động:

Ngày hôm nay chúng ta sẽ tìm hiểu hơn về cách làm việc và hoạt động, cách sử dụng Struts và một số diễn biến liên quan.

  a. Implementing Actions (Cách thực hiện với Actions)


- Khi người dùng (User hoặc Client) muốn gửi yêu cầu của mình lên server một câu lệnh nào đó thì phải họ sẽ phải gửi yêu cầu đến một actions tuỳ vào giá trị trả về. Tiếp theo, View sẽ trả về giá trị hiển thị với đúng yêu cầu từ chính người dùng

- Actions trong trường hợp này sẽ đóng vai trò xử lí các thông tin mà tương tác với người dùng.

 - Trong câu trên khi nhắc tới yêu cầu từ người dùng sẽ được truyền tới đâu? Thì đó chính là tới Controller, tại đây nó sẽ sẽ đọc thông tin từ Struts.xml để biết được thông tin cấu trúc config của Struts. 

 - Nếu giải quyết xong nó sẽ gọi đến actions, tùy thuộc vào giá trị trả về thì controller sẽ hiển thị thông tin tương ứng với yêu cầu người dùng qua View.

   b. Implementing Interceptor (Thực hiện với Interceptor) 



- Interceptor đóng vai trò và hoạt động gần tương tự như một filter. (Filter là gì?)

- Interceptor được gọi đến trước khi thông tin đi đến một actions.

- Chúng ta có thể tự tạo interceptor cho từng actions riêng biệt.


   c. Value Stack

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



  d. Object-Fraph Navigation (OGNL)

Object-Fraph Navigation (OGNL) , nói đơn giản thì đây là một ngôn ngữ mạnh mẽ để giúp chúng ra có thế lấy dữ liệu.


  - OGNL có thể giúp bạn gửi dữ liệu và chuyển đổi.

  - OGNL có định dạng giống với một ngôn ngữ ở JSP.




  e.  Type Conversion và Validation


-Struts2 có thể hỗ trợ việc validation cho người dùng (Client) và Server.

-Nó sẽ cung cấp và thực hiện khai báo qua tập tin xml.


3. Nhận xét:

  Như đã nhắc ở trên, Struts 2 giống với mô hình MVC, có chăng là sự thay đổi ở các thành phần. Và như mình đã nhắc ở trên, khả năng hỗ trợ và ứng dụng của Struts 2 trong việc thiết kế giao diện thực sự rất tuyệt vời.

Framework and Struts

A. Giới thiệu về Framework:

* Giới thiệu:

  - Framework là một tập hợp của các thư viện mà chúng cho phép bao gồm nhiều class, interface giúp phát triển nhiều ứng dụng Java web.
 
  - Framework tốt có thể cung cấp cho các lập trình viên nhiều chức năng tốt để có thể sử dụng ở nhiều ứng dụng Web khác nhau.

Minh họa cho Framework


 - Mỗi  Framework sẽ có nhiều Class làm cho các khái niệm cụ thể dễ dàng hơn.
 - Framework cung cấp những mẫu thiết kế ,nó sẽ giúp việc sử dụng dễ dùng và dễ bảo trì hơn trước.
 - Đáng chú ý là mỗi Class có thể tái sử dụng nhiều lần khi sử dụng Framework.


   * Ưu điểm 

     - Các Class được viết riêng biệt theo từng chức năng rõ ràng
     - Khả năng tái sử dụng cao
     - Giảm thiểu ràng buộc giữa các thành phần trong ứng dụng.

   * Nhược điểm 

  - Dễ dàng sử dụng nhưng thời gian phát triển ứng dụng lâu hơn.
  - Khó khăn trong việc phát triển mở rộng ứng dụng nếu không có mẫu thiết kế.



B. Giới thiệu về Struts:

Ta đã biết cách cài đặt Struts thông qua bài viết: Hướng dẫn cài đặt Struts2.

 * Giới thiệu:

   - Apache Struts là một mã muốn mở được sử dụng để phát triển trên nền Java EE Web.
   - Được phát triển trên nền tảng của mô hình MVC.
   - Có các tập hợp thư viện và công cụ thích hợp để phát triển ứng dụng.



Minh họa về sơ đồ hoạt động của Struts


- Đặc điểm của nó là: tách biệt các thành phần (View, Model).
- Và các thành phần phụ thuộc ít với nhau.
- Giúp phát triển tầng giao diện Java Web trên mô hình MVC.

* Ưu và nhược điểm:

 Dù các thành phần trong Struts có thể dễ dàng và rành mạch hơn nhưng đôi khi chúng ta hay gặp lỗi nhỏ trong việc đặt tên các package trong project.

C. Nhận xét:

Framework and Struts rất quan trọng trong việc thiết kế giao diện, do đó chúng ta cần phải tập trung chú ý tới phần này. Vì sau này mỗi ứng dụng đều cần phải có giao diện mà chúng hiện tại đóng vai trò thiết thực.

Install Struts2 Plugin for Netbeans (Hướng dẫn cài đặt Struts2)

Apache Struts 2 là một mã muốn mở được sử dụng để phát triển trên nền Java EE Web, vì là của hãng thứ ba nên chúng ta phải tự tay cài đặt nó.



Các bước hướng dẫn cài đặt và sử dụng Struts2 trong NetBeans



Truy cập trang Struts2, chọn phiên bản mà mình đang sử dụng ở NetBeans và tải về.



Giải nén folder và có những file trên



Bật chế độ Plugins trong NetBeans, (tại Tools - Plugins)



Chọn các file đã giải nén trước đó để Add vào (Chọn Downloaded -  Add Plugins)



Chọn hết rồi Install



Nhấn Next và cứ tiếp tục để Install




Đã xong, nhấn Finish để khởi động lại NetBeans kết thúc quá trình




Sử dụng Struts2 trong Project


Khi tạo một Project như bình thường sẽ có thêm lựa chọn Struts2 trong đó




* Nhận xét:

Struts 2 được sử dụng để phát triển trong mô hình MVC nhằm cải thiện khung Struts ban đầu. Trong các bài viết sắp tới bạn sẽ thấy được rõ tầm sử dụng của Struts trong các bài tập của chúng ta.

Monday, July 14, 2014

Develop Web Using JSP Model 2

Ở bài trước chúng ta đã biết đến JSP Model 1 thì hôm nay sẽ là khái niệm về JSP Model 2, Model này có định dạng gần giống hơn với MVC.


1. Giới thiệu:

JSP model thì phù hợp với ứng dụng có độ phức tạp thấp. Do đó Sun đã tạo ra Model 2, đây là mẫu thiết kế phức tạp được sử dụng trong Java Web.

Trong các ứng dụng sử dụng Model 2, các yêu cầu từ trình duyệt của khách hàng được thông qua bộ điều khiển Controller.

Minh họa cho sơ đồ hoạt đồng của JSP Model 2

Khác với JSP Model 1, Model 2 được khuyến khích sử dụng trong các ứng dụng vừa và lớn, phức tạp càng tốt.

 * Cách hoạt động:

- Khi yêu cầu từ trình duyệt của khách hàng thì Controller (định dạng là Servlet trong Project) có nhiệm vụ xử lý các thông tin từ trình duyêt giống như nhiệm vụ của nó tại MVC.

 - Trong quá trình xử lí yêu cầu, nó sẽ khởi tạo đối tượng Java Bean ( minh họa như ảnh trên)

- Tất cả các sử lí thông tin sẽ do Controller và Java Bean đó xử lí, JSP sẽ có nhiệm vụ hiển thị những thông tin đó.


2. Thực hành:

Khởi động NetBeans IDE cài đặt sẵn trong máy:

     * Tạo mới project. (File - New Project)
     * Chọn Java Web
     * Chọn Web Application
     * Đặt tên và chọn đường dẫn lưu project.


Công việc đầu tiên đó là thêm SqlJDBC4.jar vào trong project để kết nối với database, click chuột phải vào Libraries và chọn:




Tìm đường dẫn lưu file SqlJDBC4.jar và nhấn OK để thêm vào Project



Nếu bạn chưa có nó thì có thể download lại tại đây: SqlJDBC4.jar


Database




Giao diện trang Index, lúc này bắt đầu sử dụng các code với JSP Model 2



Tạo trang JSP Product sử dụng useBean



Class Servlet ở package


Tham khảo chi tiết hơn về demo bài viết tại: Demo JSP Model 2



3. Nhận xét:

Nếu như Model 1 được sử dụng ở các bài tập nhỏ hơn thì Model thích hợp cho việc sử dụng ở các bài tập lớn, yêu cầu thiết kế chi tiết và khó khăn hơn.

Develop Web Using JSP Model 1

Bài viết ngày hôm nay sẽ đề cập tới việc tạo một Java Web cho phép sử dụng JSP Model 1, vậy JSP Model 1 là gì?

1. Giới thiệu:

Như bài viết này đã mô tả rất kĩ càng  JSP là gì?, do đó chúng ta sẽ đề cập nhanh tới JSP Model One (Model 1). 

Minh họa cho cách làm việc của JSP 

  - JSP có trách nhiệm xử lí toàn bộ các công việc liên quan tới Controller và View (trong MVC Design Pattern (Mô hình thiết kế MVC)

  - Ví dụ, bạn là người dùng (Client, User), bạn sẽ gửi yêu cầu của mình tới Controller, tại đây chúng sẽ nhận thông tin và chỉnh sửa để phù hợp với yêu cầu của bạn và trả kết quả cho View để hiển thị lại với người dùng.

  - Các trang JSP này được liên kết với nhau bởi các form có chứa html đường link hay các action.


Minh họa cho cách làm việc của JSP Model 1 trên nền Java Web


2.  Thực hành:

Để thực hiện cách nhận và trả phản hồi trong vai trò một người dùng, bây giờ chúng ta sẽ làm một ví dụ nhỏ cho phép tìm kiếm một yêu cầu (bắt buộc) trên nền Java Web. Vẫn yêu cầu phải có JDBC để kết nổi với database nhé.

Khởi động NetBeans IDE cài đặt sẵn trong máy:

     * Tạo mới project. (File - New Project)
     * Chọn Java Web
     * Chọn Web Application
     * Đặt tên và chọn đường dẫn lưu project.


Công việc đầu tiên đó là thêm SqlJDBC4.jar vào trong project để kết nối với database, click chuột phải vào Libraries và chọn:




Tìm đường dẫn lưu file SqlJDBC4.jar và nhấn OK để thêm vào Project



Nếu bạn chưa có nó thì có thể download lại tại đây: SqlJDBC4.jar


Tiếp sau đó hãy tạo một database có ghi thông tin các sản phẩm như dưới đây





Ở trang Index JSP, hãy khai báo các thông tin trên cho phép hiển thị sản phẩm trên đó, đây giống như một trang có nhiệm vụ như Controller






Ở đây có đoạn code sử dụng Java Bean cho phép hiển thị trở lại kết quả.



Khai báo thông tin của các biến có trong database




Không thể thiếu được một class có nhiệm vụ kết nối với database của mình


Khi chạy ứng dụng nó sẽ hiển thị thông tin và bạn có thể dễ dàng tìm kiếm thông tin sản phẩm đó.

Bạn có thể tham khảo demo bài viết trên: Demo JSP Model 1

3. Nhận xét:

Giống như bài trước tôi đã hướng dẫn thì đây cũng là một cách tìm kiếm thông tin sản phẩm từ Database nhưng chi tiết hơn. Do đó bạn có thể tìm kiếm một cách cụ thể hơn so với trước. 
Đây là một cách tốt để có thể giúp vào trong Assignment đợt tới.







Develop Web Using JDBC (Phát triển Web sử dụng jdbc)

Sau nhiều lí thuyết đã học thì bây giờ tôi xin hướng dẫn các bạn làm một Ứng dụng Web có sử dụng JDBC, giúp cho bạn có thể liên kết Web với database.

1. Giới thiệu về JDBC.

JDBC (Java Database Connectivity) là một phương thức để giúp cho các ứng dụng Java (ở đây là NetBeans) kết nối với các dữ liệu khác như Oracle hay SQL Server.

Điều này chắc đã có nhiều bạn từng học sẽ biết về cách hoạt động của nó tại kì trước môn Java.

Sơ đồ hoạt động liên kết giữa JDBC và Database

Mình từng làm một ví dụ về cách sử dụng JBDC ở môn trước Web Programming with Servlets and JSP:

2. Thực hành.

Khởi động NetBeans IDE cài đặt sẵn trong máy:
 
     * Tạo mới project. (File - New Project)
     * Chọn Java Web
     * Chọn Web Application
     * Đặt tên và chọn đường dẫn lưu project.


Công việc đầu tiên đó là thêm SqlJDBC4.jar vào trong project để kết nối với database, click chuột phải vào Libraries và chọn:




Tìm đường dẫn lưu file SqlJDBC4.jar và nhấn OK để thêm vào Project



Nếu bạn chưa có nó thì có thể download lại tại đây: SqlJDBC4.jar




Chuẩn bị trước Database để add vào Projects




Giao diện đơn giản ở JSP




Thêm thông tin ở file Servlet (đặt tùy ý) mà bạn đã tạo ở Package




Khai báo thông tin của các biến ở một file Class (do bạn tạo và tự đặt tên)



Còn đây là quan trọng nhất, code kết nối giữa database và project mà chúng ta đã làm quen tại các bài trước




Khi khởi chạy ứng dụng, bạn có thể tìm kiếm một thông tin ở database qua keyword trong mục tìm kiếm



Bạn có thể tham khảo demo kèm database tại đây: AWAJSusingJBDC

3. Nhận xét:

Với demo trên bạn có thể học được cách search thông tin bằng cách sử dụng JBDC kết nối với database. Demo này có thể giúp bạn trong việc làm bài tập lớn có yêu cầu sử dụng chức năng tìm kiếm nhanh.
Hi vọng điều đó sẽ giúp các bạn có thêm một chức năng hoàn hảo.


MVC Design Pattern (Mô hình thiết kế MVC)

Hôm nay chúng ta sẽ quay trở lại với mô hình MVC, đây là mô hình cho phép bạn có thể thiết kế giao diện cho ứng dụng trở nên phong phú và đẹp hơn, thậm chí có để giúp phần mềm có thể tái sử dụng, tái sử dụng ở đây là có nhiều người sẽ sử dụng của bạn hoặc bạn sẽ giúp ứng dụng có thể tuyệt vời hơn trước nhờ giao diện mới.

1. Giới thiệu:

Model–View–Controller (hay MVC) là phần mềm mô hình cho phép thiết kế giao diện người dùng. Đây là mẫu thiết kế khá phổ biến trong Java Web hiện nay, trước tiên hãy xem qua sơ đồ minh họa của MVC:

Mô hình minh họa cho MVC

* Model: Đây là nơi cho phép lưu trữ dữ liệu (hay Database) để sẵn sàng đưa thông tin.

* View: Đơn giản là phần hiển thị giao diện đối với người dùng.

* Controller: Là cầu nối kết nối giữa View và Model để người dùng tương tác với ứng dụng.



3. Mối quan hệ:

Mô hình Model–View–Controller (hay MVC) là một mối quan hệ giống với tuần hoàn, do đó luôn có sự bổ sung và hỗ trợ lẫn nhau. Chúng ta sẽ cùng hiểu qua hơn về mối quan hệ của từng đối tượng.



  * View và Controller:

Khi người dùng gửi yêu cầu (request) tới Controller thông qua View, Controller sẽ trực tiếp chuyển yêu cầu này tới Model để chờ xử lí.


Minh họa code về View, nơi bạn có thể hiển thị thông tin cho người dùng.


  * Controller và Model:

Sau khi nhận được phản hồi từ Controller, Model sẽ có nhiệm vụ chỉnh sửa, thay đổi hay bất cứ điều gì với thông tin sẵn có để có thể phục vụ đúng yêu cầu của người dùng.


Minh họa code của Controller, nơi nó sẽ lấy dữ liệu từ view 
và thay đổi rồi gửi tới Model.


  * Model và View:

Thông tin sau khi thay đổi sẽ được Model chuyển đến View để hiển thị lại thông tin với người dùng, phục vụ theo đúng yêu cầu của User.

Minh họa code cho Model, nơi bạn có thể chỉnh sửa thông tin 
để đáp ứng yêu cầu người dùng.


4. Nhận xét:

Nếu như ngày trước chúng ta không cần quan trọng về giao diện mà là cần chức năng hơn thì ngày nay, yêu cầu của người dùng cực kì khắt khe. Không chỉ đơn giản là có giao diện nữa mà nó lại phải đẹp, bắt mắt, nếu bạn không có được điều này thì ứng dụng của bạn sẽ không được người dùng đánh giá cao cũng như sử dụng nhiều.
Bài viết hôm nay nhắc lại về mô hình MVC, đây là mô hình được phổ biến để thiết kế giao diện hoàn hảo theo đúng ý bạn. Hãy tạo ra những sản phẩm tuyệt vời từ đây, chúc bạn thành công.