1. Trang chủ
  2. » Công Nghệ Thông Tin

CÔNG NGHỆ PHẦN MỀM:STRUCT 2 FRAMEWORK VÀ HIBERNATE

21 438 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 88,92 KB
File đính kèm Struts2Example.zip (11 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

báo cáo này sẽ cung cấp những kiến thức căn bản về:  Struts1  Struts 2  So sánh Struts 1 và Struts 2  Hibernate các phiên bản  Hibernate 4 một trong các ngôn ngữ lập trình được sử dụng phổ biến đó là Java, là một ngôn ngữ lập trình hướng đối tượng mang nhiều ưu thế vượt trội. Song đó cùng với sự phát triển thì có rất nhiều công nghệ ra đời hỗ trợ lập trình Java. Trong đó Struts 2 đang là một framework đang được sử dụng mạnh mẽ, sẽ là tối ưu hơn hẳn nếu sử dụng kết hợp với Hibernate 4.0. Đề tài tập trung nghiên cứu về Struts 2 và Hibernate 4.0 framework, qua đó xây dựng website bán điện thoại online. để làm nổi bật lên ưu điểm của các công nghệ này

Trang 1

Tp Hồ Chí Minh, ngày tháng năm

(kí và ghi họ tên)

Trang 2

TÓM TẮT

Công nghệ thông tin là một ngành ngày càng phát triển mạnh mẽ trên thế giới, theo xu hướng phát triển đó thì có nhiều ngôn ngữ lập trình ra đời để đáp ứng cho nhu cầu phát triển đó, thì một trong các ngôn ngữ lập trình được sử dụng phổ biến đó là Java, là một ngôn ngữ lập trình hướng đối tượng mang nhiều ưu thế vượt trội Song đó cùng với sự phát triển thì có rất nhiều công nghệ ra đời hỗ trợ lập trình Java Trong đó Struts 2 đang là một framework đang được sử dụng mạnh mẽ, sẽ là tối ưu hơn hẳn nếu sử dụng kết hợp với Hibernate 4.0 Đề tài tập trung nghiên cứu về Struts 2 và Hibernate 4.0 framework, qua đó xây dựng website bán điện thoại online để làm nổi bật lên ưu điểm của các công nghệ này.Với các công nghệ mà chúng em nghiên cứu, báo cáo này

sẽ cung cấp những kiến thức căn bản về:

Trang 3

MỤC LỤC

Trang 4

Chương 1: Tổng Quan

Lý do chọn đề tài

Trong lập trình hướng đối tượng, java là một ngôn ngữ phát triển rất mạnh và

có những ưu điểm vượt trội so với C# Vì thế, nhóm em chọn theo hướng ngôn ngữ java, tìm hiểu những công nghệ mới và xây dựng chương trình ứng dụng trong tiểu luận chuyên ngành này, mở ra hướng phát triển sau này trong việc thực hiện khóa luận tốt nghiệp

1.1 Công nghệ sử dụng.

Trong phạm vi đề tài này, nhóm chúng em sử dụng những công nghệ chính như:

 Struts2 Framework

 Hibernate 4 FrameworkTrên nền các phần mềm lập trình:

1.4 Mục tiêu nghiên cứu

 Nghiên cứu và viết báo cáo về kiến thức căn bản Struts2, Hibernate 4

Trang 5

CHƯƠNG 2: NỘI DUNG NGHIÊN CỨU

2.1 Strust 1

Struts nguồn gốc được tạo ra bởi Craig R McClanahan và sau đó được chuyển giao cho dự án Jakarta của Apache Software Foundation (AFS) vào năm 2000 Vào tháng 6 năm 2001, Struts đã phát hành phiên bản 1.0 Sau đó, có rất nhiều người đã tham gia đóng góp cả về mã nguồn và tài liệu cho dự án và Struts ngày càng trở nên hoàn thiện hơn Struts là một framework mã nguồn mở được phát triển trên nền tảng của ngôn ngữ Java, JSP nhằm mục đích tạo ra một thành phần chuẩn trong việc thiết kế ở tầng Web sử dụng MVC dựa trên nền tảng của J2EE Với Struts, người lập trình sẽ không phải quan tâm đến việc xây dựng mô hình MVC như thế nào mà chỉ cần cấu hình và chạy tầng hiển thị của

dự án, điều này cho phép giảm thiểu chi phí đào tạo, thời gian phát triển dự án nhanh hơn và cho phép hệ thống chạy ổn định trên các nền và hoặc module tích hợp khác nhau Với Struts ta có thể tách làm 3 tầng làm việc riêng biệt một cách dễ dàng, thích hợp cho một dự án lớn, không bị nhập nhằng giữa việc tạo giao diện, xử lý và truy xuất cơ sở dữ liệu Struts 1 xx được công nhận như một framework phổ biến nhất trong Java, Struts 1 xx đủ chín muồi và là một giải pháp tốt cho nhóm phát triển để giải quyết các vấn đề chung nhất

Ưu điểm: Struts 1 được thiết kế dựa trên mô hình MVC Dùng để xây dựng các ứng dụng web sử dụng sử dụng Java Servlet và Jsp Ứng dụng Struts chạy được trên

nhiều nền tảng, dễ học, dễ sử dụng, có kèm các thư viện thẻ cho việc phát triển ứng dụng nhanh chóng hơn Struts cho phép các lập trình viên:

- Phát triển ứng dụng web Jsp/Servlet theo mô hình MVC

- Sử dụng các đối tượng có sẵn của Framework trong file cấu hình Xml

- Sử dụng các mẫu thiết kế xây dựng sẵn của Framework

Trang 6

- Sử dụng nhiều tính năng nâng cao (Validation, …)

Những thuận lợi khi sử dụng:

- Struts đảm nhiệm những phần phức tạp nhất khi xây dựng ứng dụng MVC

- Dễ học, dễ sử dụng

- Nhiều tính năng được hỗ trợ

- Nhiều công cu hỗ trợ của bên thứ 3

- Hỗ trợ một thư viện thẻ cực kỳ hữu dụng

- Tích hợp với Tiles Framework

Nhược điểm : Khó tìm hiểu, khó chuẩn hóa và đánh giá Struts khó áp dụng các phương pháp khác

Trang 7

2.2 Strust2.

2.2.1 Giới thiệu về Strust 2

- Vào tháng 12/2005,Struts và webwork framework đã được kết hợp với nhau để phát triển nên Struts 2 Framework Struts 2 Framework rất thích hợp và dễ dàng

mở rộng để phát triển các ứng dụng web với mức độ khác nhau

- Trang chủ: http://struts.apache.org/2.x/

- Struts 2.0x ra đời kế thừa nền tảng của webwork framework, được tổ chức như một nền làm việc chuyên nghiệp với web, nhằm giải quyết các vấn đề phức tạp, mang tính nghiệp vụ cao, khắc phục các nhược điểm của struts 1

Struts 2 Framework đơn giản hóa hơn mô hình Struts 1 Framework và hỗ trợ việc xây dựng ứng dụng Web theo mô hình MVC2 với những tiện ích hơn phiên bản trước như

là rút gọn tập tin cấu hình hay sử dụng Annotation thay thế cho tập tin cấu hình

- Các bạn có thể sử dụng Eclipse hoặc Netbean IDE 8.0 kết hợp Tomcat 8.0 (tốt hơn nên dùng bản mới)

- Apache Struts 2 requires:

Trang 8

- Tự động chuyển đổi kiểu dữ liệu chuỗi truyền thống trong tham số request parameter thành các đối tượng lớp dữ liệu java => tiết kiệm được thời gian và công sức cho các lập trình viên

- Cung cấp các thẻ tag,các themes và templates giúp cho việc làm giao diện GUI trở nên dễ dàng,nhanh lẹ và tăng tính tái sử dụng

- Tính mở rộng (Extensibility) cao thông qua việc hỗ trợ các plug-in

- Hỗ trợ portal

- Hỗ trợ AJAX

- Dễ dàng tích hợp với Spring framework và Hibernate

2.2.3 Kiến trúc của Strust 2 Framework

Hình 0 Kiến trúc Struts2 Framework.

Action ContextCleanUp filter: sử dụng khi tích hợp với các công nghệ khác như SiteMesh Plugin

FillerDispatcher: sử dụng ActionMapper để xác định Action nào được triệu gọi Nếu Action được yêu cầu triệu gọi thì FilterDispatcher ủy nhiệm việc điều khiển lại cho ActionProxy

Trang 9

ActionProxy: Sử dụng bộ phận quản lý cấu hình file (Configuration Files manager), được khởi tạo từ file struts.xml Sau đó ActionProxy tạo ra một ActionInvocation, thực thi xử lý triệu gọi bộ chặn (Interceptors) nếu nó được cấu hình và sau đó triệu gọi Action ActionInvocation tìm kiếm Action thích hợp, thực thi Action, và xác định các View, JavaBeans tương ứng để lấy dữ liệu xử lý Sau đó nó triệu gọi việc sinh ra trang các JSP hoặc các mẫu để kết xuất dữ liệu trả về.

Các Interceptor được thực thi một lần nữa theo thứ tự ngược lại Việc trả về kết quả cuối cùng thông qua các bộ lọc được cấu hình trong file web.xml Nếu bộ lọc

ActionContextCleanUp được cấu hình, thì FilterDispatcher không dọn dẹp

ThreadLocal ActionContext Nếu bộ lọc ActionContextCleanUp không có thì

FilterDispatcher sẽ dọn dẹp tất cả các ThreadLocal tồn tại

2.2.4 Luồng xử lý dữ liệu trong Strust2

Hình 2.2.4-1 Luồng xử lý dữ liệu Struts2.

a Người sử dụng gửi yêu cầu đến server để yêu cầu một số tài nguyên của ứng dụng

b Bộ điều khiển lọc (FilterDispatcher) xem xét yêu cầu và sau đó xác định một Action thích hợp

c Các bộ chặn (Interceptors) được ứng dụng: các cấu hình bộ chặn

áp dụng cho các chức năng chung như: luồng công việc, thẩm định, tải file … được tự động ứng dụng vào yêu cầu

d Thực thi Action: sau khi phương thức action được thực thi để thực hiện các hoạt động liên quan đến cơ sở dữ liệu như sắp xếp hoặc nhận dữ liệu từ cơ sở dữ liệu

Trang 10

e Sinh kết quả

f Sau đó kết quả yêu cầu được trả về thông qua bộ chặn theo chiều ngược lại Kết quả trả về cho phép chúng ta thực hiện thu dọn hoặc thêm quá trình xử lý

g Hiển thị kết quả cho người sử dụng: việc điều khiển cuối cùng được trả về cho trình chứa servlet, nó sẽ gửi kết quả trả về cho trình duyệt của người sử dụng

object và xử lý validation nếu cần

Dùng các thuộc tính trong Action class

để đón nhận giá trị nhập từ Form và thực hiện xử lý cùng với validation nếu cần

Action bắt buộc implement Action

interface

Action class không cần bắt buộc implement Action interfaceAction là một Singleton pattern Duy

nhất một instance của Action đón nhận

để xử lý mọi request

Một Instance của Action sẽ đón nhận một request khác nhau

Gây khó khăn cho người dùng khi

cung cấp một hệ thống quá nhiều taglib

Cung cấp một taglib duy nhất đảm bảo đầy đủ các thành phần hỗ trợ xử lý từ đơn giản đến nâng cao

Chia thành module để chuyển đổi thao

tác và đòi hỏi kết hợp của

switchAction để tạo sự kết hợp giữa

các thành phần khi làm việc theo nhóm

Sử dụng cơ chế interceptor để đảm bảo tích hợp nhiều thành phần và nâng cấp ứng dụng một cách uyển chuyển linh hoạt, đặc biệt là tích hợp mà không làm ảnh hưởng các thành phần có sẵn khi làm việc theo nhóm

Hình 2.2.5 Sự khác nhau giửa Struts2 và Struts1.

Trang 11

Sự khác nhau trên, với những ưu điểm của struts 2 so với struts 1 làm cho struts 2 trở thành công cụ hữu ích cho các nhà thiết kế phần mềm Web hiện tại và tương lai.

2.3 Hibernate 4 Framework

2.3.1 OMR Framework

Framework là một khái niệm trong phát triển phần mềm dùng để chỉ những “cấu trúc

hỗ trợ được định nghĩa” mà trong đó những dự án phần mềm khác có thể được sắp xếp vào đó và phát triển

ORM (Object Relational Mapping) framework là một cơ chế cho phép người lập trình thao tác với database một cách hoàn toàn tự nhiên thông qua các đối tượng Lập trình viên hoàn toàn không quan tâm đến loại database sử dụng như Phpmyadmin, SQL,…

2.3.2 Tổng quan về Hibernate

Hibernate là một framework cho persistence layer, là một dịch vụ lưu trữ và truy vấn

dữ liệu quan hệ mạnh mẽ và nhanh chóng Hibernate giúp người phát triển các Class dùng để lưu trữ dữ liệu theo cách thức hướng đối tượng: association, inheritance, polymorphism, composition và collections Hibernate cho phép thực hiện các câu truy vấn dữ liệu bằng cách sử dụng ngôn ngữ SQL mở rộng của Hibernate – Hibernate Query Language (HQL) hoặc là ngôn ngữ SQL nguyên thuỷ cũng như là sử dụng các API

Không giống như các persistence layer khác, Hibernate không che giấu đi sức mạnh của ngôn ngữ SQL mà Hibernate còn đảm bảo việc truy vấn cơ sở dữ liệu một cách mạnh mẽ dễ dàng khi thao tác với SQL truyền thống Đặc biệt nó còn cung cấp thêm một ngôn ngữ hổ trợ truy vấn đơn giản và tiện dụng hơn, giúp cho người phát triển ứng dụng có thêm lựa chọn, đó là Hibernate Query Language Và điều quan trọng hơn nữa là Hibernate được license theo LGPL (Lesser GNU Public License) Theo đó, bạn

có thể thoải mái sử dụng Hibernate trong các dự án open source hoặc các dự án thương mại

Các tính năng của Hibernate:

Trang 12

• Hibernate cung cấp ba đầy đủ tính năng tiện ích truy vấn: Hibernate Query Language, Hibernate Criteria Query API và các truy vấn tự nhiên.

• Bộ lọc để làm việc với dữ liệu tạm thời ,vùng dữ liệu hoặc các dữ liệu được phân quyền

• Nâng cao khả năng truy vấn với API: với sự hỗ trợ đầy đủ cho các phép chiếu ,phép kết hợp và phép chọn

• Kiểm soát được thời gian chạy: thông qua JMX hoặc Java API, bao gồm cả bộ đệm trình duyệt ở mức thứ cấp

• Hỗ trợ IDE Eclipse, bao gồm một bộ Eclipse plug-in để làm việc với

Hibernate , bao gồm biên tập liên kết, tương tác với mẫu truy vấn, công cụ nhận lại cấu trúc cơ sở dữ liệu

• Hibernate là miễn phí theo LGPL: Hibernate có thể được dùng để phát triển phân phối các ứng dụng miễn phí

• Hibernate có thể mở rộng: Hibernate mang lại hiệu năng cao và kiến trúc 2 lớp của nó có thể được sử dụng trong môi trường tập trung

• Giảm thời gian phát triển ứng dụng: Hibernate làm giảm thời gian phát triển các ứng dụng vì nó hỗ trợ thừa kế, đa hình, thành phần và các framework trong java

Hibernate XML cho phép liên kết dữ liệu được biểu diễn như XML và POJOs thay thế cho nhau

Trang 13

2.3.3 Kiến Trúc Hibernate.

Bảng 0 Kiến trúc Hibernate

Trang 14

Hibernate tạo ra một thể hiện của Entity Class ( Java class ánh xạ với các bảng trong database) để duy trì dữ liệu cho Database, Đối tượng đó được gọi là Transient Object, chưa được kết hợp với session , hoặc chưa tồn tại trong database Để duy trì một đối tượng cho database, phải khởi tạo một thể hiện của Session Factory

interface Session factory là một singleton instance áp dụng Factory design pattern Session factory đọc hibernate.cfg.xml file và dùng Transaction Factory và

ConnectionProvider, nó áp dụng các cài đặt cấu hình trong Database

Mỗi database connection trong hibernate được tạo ra bằng việc khởi tạo một thể hiện của session interface Mỗi session đại diện cho một kết nối đến Database Và một đối tượng session được tạo ra từ một đối tượng Session Factory

Session Factory (org.hibernate.SessionFactory):là khái niệm về việc lưu trữ dữ liệu duy nhất và thread safe Bởi các đặc tính đó, nhiều threads có thể truy cập nó một cách đồng thời và các session sẽ được yêu cầu, và sẽ không thay đổi bảng ánh xạ của một database cụ thể SessionFactory sẽ được built trong khoảng thời gian

startup

Session (org.hibernate.Session) : dùng để lấy kết nối vật lý đến một database Đối tượng Session khá gọn nhẹ và được thiết kế để được khở tạo mỗi lần có tương tác với database Persistent objects được lưu và rút trích thông qua đối tượng Session Đối tượng session không nên tồn tại quá lâu vì nó không đảm bảo tính chất thread safe

Persistent objects and collections: các java class có kiến trúc gần giống với các table trong databse, và có các đối tượng hoặc thể hiện sẽ được lưu trử vào database được xem là các persistent classes Hibernate sẽ làm việc tốt hơn nếu các lớp đó tuân theo một số quy luật đơn giản được biết đến như là mô hình Plain Old Java Object (POJO) Các Persistent objects sẽ được lưu xuống database thông qua việc

hibernate xác định các bảng tương ứng với các trường được liên kết thông qua file ánh xạ

Trang 15

Transient and detached objects and collections: một thể hiện của Persistent class mà hiện tại không có liên quan gì đến org.hibernate.Session Nó có thể được khởi tạo bởi ứng dụng và chưa persisted, hoặc nó được khởi tạo bằng việc đóng

org.hibernate.Session

Transaction: là một đối tượng single-thread, vòng đời ngắn, được ứng dụng dùng để xác định một đơn vị công việc Nó trừu tượng hoá ứng dụng từ các giao dịch nền JDBC, JTA hoặc CORBA

Để tạo nên ứng dụng Hibernate, có ba điều cần phải có, đó là:

1 Persistence Class:

Persistence class là một Plain Old Java Object hay POJO model Một POJO là tương tự như một JavaBean, có những getter và setter để truy câp các thuộc tính của nó là những instance variable (biến thực thể) Persistence class có những đặc điểm dưới đây:

 Nó là thay thế hướng đối tượng cho bảng ở cơ sở dữ liệu

 Các thuộc tính của bảng trở thành những instance variable của

persistence class.

 Kiểu dữ liệu của các instance variable là domain của các thuộc tính.

 Đối tượng của persistence class thay hế cho hàng của bảng.

Trang 16

dụng để xác định bảng mà lớp thay thế Ví dụ để ánh xạ một bản mang tên ORDERS thành một persistence class với tên đầy đủ là

com.someorg.persist.Order sẽ như dưới đây:

<class name=”com.someorg.persist.Order” table=”ORDERS”>…</class>

• ID : Thành phần này sử dụng để ánh xạ khóa chíh của table thành một instance variable của class Thành phần cột con của id có thể sử dụng

để ánh xạ thành biến tương ứng Giá trị của khóa chính có thể tự động tạo ra được công bố ở đây Thành phần generator có thể được sử dụng

để nói cho Hibernate một lớp sẽ được sử dụng ở đâu để tự động tạo id, hoặc id được gán bởi ứng dụng.

<id name="id" type="string" unsaved-value="null">

<column name="id" sql-type="char(32)" not-null="true"/>

là ứng dụng bản thân nó sẽ cung cấp giá trị cho khóa chính.

• Property : thành phần này, thuộc về các cột thành phần con của nó, ánh

xạ những thuộc tính khác (hoặc các côt thành những instance variable của persistence class Thuộc tính name của property chứa tên của biến như một giá trị Thuộc tính name của thành phần column chứa tên của cột mà instance variable được ánh xạ Các thuộc tính length và sql-type trỏ đến độ dài và kiểu dữ liệu của cột

Ngày đăng: 07/01/2017, 19:48

HÌNH ẢNH LIÊN QUAN

Hình 0  Kiến trúc Struts2 Framework. - CÔNG NGHỆ PHẦN MỀM:STRUCT 2 FRAMEWORK VÀ HIBERNATE
Hình 0 Kiến trúc Struts2 Framework (Trang 8)
Hình 2.2.4-1  Luồng xử lý dữ liệu Struts2. - CÔNG NGHỆ PHẦN MỀM:STRUCT 2 FRAMEWORK VÀ HIBERNATE
Hình 2.2.4 1 Luồng xử lý dữ liệu Struts2 (Trang 9)
Hình 2.2.5 Sự khác nhau giửa Struts2 và Struts1. - CÔNG NGHỆ PHẦN MỀM:STRUCT 2 FRAMEWORK VÀ HIBERNATE
Hình 2.2.5 Sự khác nhau giửa Struts2 và Struts1 (Trang 10)
Bảng 0 Kiến trúc Hibernate - CÔNG NGHỆ PHẦN MỀM:STRUCT 2 FRAMEWORK VÀ HIBERNATE
Bảng 0 Kiến trúc Hibernate (Trang 13)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w