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
Câu lạc bộ đọc sách ". Ứ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 không điều khiển nên cung cấp một hình thức để giới thiệu một cuốn sách. các mẫu đề nghị 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ả
+ công bố
+ Tiêu đề
+ Đánh giá độc giả trên thang điểm từ 1 đến 5.
Kết quả thu được :
Trang struts ta code như sau :
Ta khao báo Các lớp load thông tin database :
doạn code lấy thông tin search dữ liệu trong db :
Tạo booklist để show ra list book sau khi search :
Thứ Bảy, 19 tháng 7, 2014
Thứ Sáu, 18 tháng 7, 2014
Create web application system Login using struts 2
Phương án giải quyết :
Vấn đề đặt ra yêu cầu ta tạo 1 web application có chức năng login nên ta phải tạo ra database chứa thông tin của các tài khoản login vào :
Sau đó tạo project use struts 2 đã được hướng dẫn ở bài này
Add lib jdbc4 và JSTL để kết nối database
Tạo class Authenticate.java để liên kết đọc thông tin của database :
lớp validate có chức năng là check login để đọc thông tin từ db và lấy thông tin acc. ta code như sau :
boolean st = false;
try {
String sql ="select * from Account where auser=? and apass=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
st = rs.next();
} catch (Exception ex) {
System.out.println(ex);
}
return st;
}
ta khai báo class account khai báo các kiểu dữ liệu như sau :
-Một Interceptor đóng vai trò như một Filter nhưng dễ dàng trong việc sử dụng hơn
-Nếu bạn muốn chuyển tiếp các yêu cầu đối với một số module cụ thể, Interceptor là nơi tốt nhất để viết mã của bạn để chuyển hướng các yêu cầu cho một module cụ thể.
-Filter được áp dụng cho tất cả các yêu cầu của các ứng dụng web, Nhưng, Interceptor được áp dụng cho một nhóm nhất định.
Vấn đề đặt ra yêu cầu ta tạo 1 web application có chức năng login nên ta phải tạo ra database chứa thông tin của các tài khoản login vào :
Sau đó tạo project use struts 2 đã được hướng dẫn ở bài này
Add lib jdbc4 và JSTL để kết nối database
Tạo class Authenticate.java để liên kết đọc thông tin của database :
lớp validate có chức năng là check login để đọc thông tin từ db và lấy thông tin acc. ta code như sau :
boolean st = false;
try {
String sql ="select * from Account where auser=? and apass=?";
PreparedStatement ps = conn.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
st = rs.next();
} catch (Exception ex) {
System.out.println(ex);
}
return st;
}
ta khai báo class account khai báo các kiểu dữ liệu như sau :
Tiếp theo bạn tạo 2 class Home.java và Login.java trong package aa.ui như sau :
Bạn viết đến các action trong file struts.xml như sau
Bạn viết code giao diện của trang home và login :
đây chỉ là giao diện mẫu, bạn có thể ghép giao diện của mình vào
Kết quả thu về :
Nhận xét :
-Một Interceptor đóng vai trò như một Filter nhưng dễ dàng trong việc sử dụng hơn
-Nếu bạn muốn chuyển tiếp các yêu cầu đối với một số module cụ thể, Interceptor là nơi tốt nhất để viết mã của bạn để chuyển hướng các yêu cầu cho một module cụ thể.
-Filter được áp dụng cho tất cả các yêu cầu của các ứng dụng web, Nhưng, Interceptor được áp dụng cho một nhóm nhất định.
Features architech disadvantage advantage
Mô hình MVC 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.
- 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.
Các Struts 2 framework features bao gồm :
- POJO forms and POJO actions.
- Template Support : Hỗ trợ để tạo ra quan điểm sử dụng các template
- Tag support : đã được cải thiện các thẻ hình thức và các thẻ mới cho phép các nhà phát triển viết mã ít hơn.
- AJAX support : công nghệ Web 2.0 , và tích hợp hỗ trợ AJAX vào sản phẩm bằng cách tạo ra các thẻ AJAX, có chức năng tương tự như các thẻ Struts 2 tiêu chuẩn.
- Easy Integration : Tích hợp với các khuôn khổ khác như Spring, Tiles và SiteMesh
- Profiling : cung cấp hồ sơ hợp để gỡ lỗi và hồ sơ của ứng dụng. Thêm vào đó, Struts cũng cung cấp tích hợp gỡ lỗi với sự giúp đỡ của xây dựng trong công cụ gỡ lỗi.
Các Struts 2 disadvantage bao gồm :
- Bigger learning curve
- Poor documentation
- Less transparent
Một số framework khác có thể dùng :
- Cocoon
- Webwork
- Jarkata Velocity
-Stxx
- JSF
- Spring
So sánh Struts 2 với Struts 1 :
Nhận xét :
-Cơ chế hoạt động của struts 2 tương tự như mô hình mvc của struts 1 nhưng điểm khác biệt lớn nhất là dữ liệu được lấy trực tiếp từ action để đưa lên view nên đỡ lằng nhằng hơn so với struts 1
- Dễ dàng tích hợp và sửa đổi các thẻ
- Dễ dàng tích hợp và sửa đổi các thẻ
- 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
Thứ Tư, 16 tháng 7, 2014
Sử dụng Struts để làm module 2
Yêu cầu đề bài : Tạo ra một ứng dụng web dựa trên Struts có tên là "BookSearch". Trang chỉ mục nên được hiển thị một danh sách các cuốn sách có sẵn và cũng cung cấp một liên kết đến một trang Tìm kiếm Sách. Từ trang tìm kiếm sách người dùng có thể tìm kiếm một cuốn sách cụ thể bằng cách đề hoặc theo tên tác giả của cuốn sách. Sau khi thực hiện các hoạt động tìm kiếm, các trang tìm kiếm sẽ được hiển thị lại với một danh sách bảng hiển thị tên cuốn sách, tác giả, giá cả, và mô tả phù hợp với người dùng.
Hướng giải quyết :
Module đã được giải quyết ở bài trước. bài này ta sẽ chỉ sửa lại để ứng dụng web dựa trên framework vừa mới được học là Struts.
Ở bài này tôi vẫn sẽ sử dụng database đã có ở phần trước là :
Để làm được ta add thư viện struts2cor-2-3-15 và jstl1.2.1 bằng cách click chuột trái vào foder libraies rồi chọn Add libary...
Nếu add đúng bạn sẽ được kết quả là :
Vào new file chọn Struts2 => Struts2 config... như trong hình để tạo class struts.xml.
Trong trang struts này ta code như sau :
Kết quả thu được :
Khi ta chọn search chức năng search sẽ hoạt động :
Nhận xét về Struts :
- Dễ dang sửa lỗi hơn so với cách làm trước.
- Cần tim hiểu kĩ hơn
Hướng giải quyết :
Module đã được giải quyết ở bài trước. bài này ta sẽ chỉ sửa lại để ứng dụng web dựa trên framework vừa mới được học là Struts.
Ở bài này tôi vẫn sẽ sử dụng database đã có ở phần trước là :
Để làm được ta add thư viện struts2cor-2-3-15 và jstl1.2.1 bằng cách click chuột trái vào foder libraies rồi chọn Add libary...
Nếu add đúng bạn sẽ được kết quả là :
Vào new file chọn Struts2 => Struts2 config... như trong hình để tạo class struts.xml.
Trong trang struts này ta code như sau :
Kết quả thu được :
Khi ta chọn search chức năng search sẽ hoạt động :
Nhận xét về Struts :
- Dễ dang sửa lỗi hơn so với cách làm trước.
- Cần tim hiểu kĩ hơn
Thứ Ba, 15 tháng 7, 2014
Basic component of struts 2
Bài này ta sẽ nghiên cứu về các thành phần cơ bản của Struts 2 bao gồm :
- Làm việc với action
- Làm việc với Interceptor
- Tạo ra một Interceptor
- Result / Result Type
- The Value Stack
- The OGNL
+ 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.
+ 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,…
Các Interceptor được dựng sẵn :
+ Custom một Interceptor :
- Làm việc với action
- Làm việc với Interceptor
- Tạo ra một Interceptor
- Result / Result Type
- The Value Stack
- The OGNL
+ 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.
+ 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,…
Các Interceptor được dựng sẵn :
Interceptor
|
Tên
|
Alias Interceptor | alias |
Chaining Interceptor | chain |
Checkbox Interceptor | checkbox |
Cookie Interceptor | cookie |
Conversion Error Interceptor | conversionError |
Create Session Interceptor | createSession |
Debugging Interceptor | debugging |
Execute And Wait Interceptor | execAndWait |
Exception Interceptor | exception |
File Upload Interceptor | fileUpload |
I18N Interceptor | i18n |
Logger Interceptor | logger |
Message Store Interceptor | store |
Model Driven Interceptor | modelDriven |
Scoped Model Driven Interceptor | scopedModelDriven |
Parameters Interceptor | params |
Prepare Interceptor | prepare |
Scope Interceptor | scope |
Servlet Config Interceptor | servletConfig |
Static Parameters Interceptor | staticParams |
Roles Interceptor | roles |
Timer Interceptor | timer |
Token Interceptor | token |
Token Session Interceptor | tokenSession |
Validation Interceptor | validation |
WorkFlow Interceptor | workflow |
Parameter Filter Interceptor | N/A |
Profiling Interceptor | profiling |
+ 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.
+ The value stack : là nơi chứa tất cả các thông tin cần thiết.
+ 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.
+ Validation : cung cấp khả năng validation các dữ liệu.
+ Validation : cung cấp khả năng validation các dữ liệu.
Bài viết được tham khảo bời nguồn sau đây !
framework and struts fix
Mục tiêu của bài : tìm hiểu những kiến thức căn bản nhất về struts 2. Bao gồm :
1/ Hiểu rõ ràng 1 framework là gì
2/Định nghĩa, chi tiết về Struts 2
+ Khái niệm , đặc điể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ể.
+ Đặ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ế
+ Struts 2 là gì?
- 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.
+ 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.
Mô hình Struts 2 được biểu hiện rất chi tiết trong hình
1/ Hiểu rõ ràng 1 framework là gì
2/Định nghĩa, chi tiết về Struts 2
+ Khái niệm , đặc điể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ể.
+ Đặ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ế
+ Struts 2 là gì?
- 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.
+ 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.
Mô hình Struts 2 được biểu hiện rất chi tiết trong hình
+ Nhận xét về Struts 2 :
- 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
Cài đặt struts 2 plugin trên netbeans
Khái quát : Struts là một Framework của netbeans, nó 2 được xây dựng trên nền tảng mô hình MVC nên nó thừa hưởng được các ưu điểm của mô hình đó
Cách cài đặt :
Tải Struts 2 ở trang này sau đó giải nén và khởi động netbeans.Trong netbeans ta chọn Tools => Plugins
Ờ mục download, chọn add plugin rồi đưa đến đường link vừa down vào giải nén. Chọn 3 file org-netbean-...... rồi ấn install.
Đăng ký:
Bài đăng (Atom)