1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web

40 2,7K 23
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Tác giả Phạm Văn Hòa
Người hướng dẫn ThS. Nguyễn Công Nhật
Trường học Đại học Vinh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2012
Thành phố Vinh
Định dạng
Số trang 40
Dung lượng 1,52 MB

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

Nội dung

Rất nhiều dự án lớn đã ra đời từ cộng đồng mã nguồn mở, có thể kể đến một số framework nổi tiếng như: Struts,Hibernate, Spring, JSF… Ở Việt Nam, phát triển các ứng dụng Web là hướng đi đ

Trang 1

LỜI CẢM ƠN - -

Suốt quá trình học tập trong trường Đại học Vinh vừa qua, chúng em đã đượccác thầy cô cung cấp và truyền đạt tất cả kiến thức quý giá nhất Ngoài ra, chúng em cònđược rèn luyện một tinh thần học tập và rèn luyện độc lập, sáng tạo Đây là tính cách hếtsức cần thiết để có thể thành công khi bắt tay vào nghề nghiệp tương lai

Em xin chân thành cảm ơn Ban giám hiệu trường Đại học Vinh, ban chủ nhiệmkhoa Công nghệ thông tin, cùng các thầy cô giáo đã tận tình giảng dạy, trang bị cho emnhững kiến thức cần thiết trong những năm học tại trường Và quãng thời gian đó thậthữu ích làm em trưởng thành lên rất nhiều khi chuẩn bị ra trường đó là những hànhtrang không thể thiếu trong công việc sau này

Em xin chân thành cảm ơn ThS Nguyễn Công Nhật đã tận tình quan tâm, giúp

đỡ và hướng dẫn em trong suốt thời gian làm đồ án để em hoàn thành tốt đồ án tốtnghiệp này

Mặc dù đã cố gắng trong quá trình thực tập nhưng do kinh nghiệm thực tế vàtrình độ chuyên môn chưa được nhiều nên em không tránh khỏi những thiếu sót em rấtmong được sự chỉ bảo, góp ý chân thành từ các thầy, cô giáo cùng tất cả các bạn

Em xin chân thành cảm ơn!

Vinh, ngày 10 tháng 12 năm 2012

Sinh viên thực hiện

Phạm Văn Hòa

Trang 2

MỞ ĐẦU

I Đặt vấn đề, lý do lựa chọn đề tài

Ngày nay, ngành công nghệ thông tin đang phát triển như vũ bão và đi vào mọimặt của đời sống, kinh tế, xã hội của con người Đóng góp vào sự phát triển đó, vai tròcủa Web ngày càng trở nên quan trọng và là một công cụ đắc lực dẫn tới mọi thànhcông trong nhiều lĩnh vực trọng điểm Với sự bùng nổ của truyền thông như hiện nay thìWeb là phương thức lan truyền thông tin nhanh chóng, hiệu quả và kinh tế nhất Rấtnhiều tập đoàn sản xuất phần mềm lớn như IBM, Microsoft, Sun MicroSystem … đãtham gia vào lĩnh vực xây dựng và phát triển các ứng dụng Web Tuy nhiên, các ứngdụng Web phát triển nhanh và mạnh mẽ như hiện nay không thể không kể đến một cộngđồng, đó là cộng đồng mã nguồn mở Sự đóng góp của họ là vô cùng lớn lao với mụcđích cao cả là phát triển công nghệ và phục vụ cộng đồng Rất nhiều dự án lớn đã ra đời

từ cộng đồng mã nguồn mở, có thể kể đến một số framework nổi tiếng như: Struts,Hibernate, Spring, JSF…

Ở Việt Nam, phát triển các ứng dụng Web là hướng đi đầy tiềm năng và hứa hẹncho tất cả những ai yêu thích công nghệ thông tin nói chung và những kỹ sư phần mềmnói riêng

Với tư cách là một kỹ sư phần mềm tương lai cùng với niềm đam mê công nghệ

Web, đặc biệt là các công nghệ mã nguồn mở, em đã chọn cho mình đề tài “Tìm hiểu công nghệ Struts 1 trong xây dựng ứng dụng Web”.

II Mục tiêu

Hiểu sâu, hiểu rõ về Struts 1 Framework Một công nghệ mà hiện đang được

sử dụng rất nhiều tại các công ty phát triển phần mềm lớn ở Việt Nam Hy vọng đây sẽ

là 1 nghiên cứu hữu ích, ko chỉ cho những người mới làm quen với lập trình web, màcòn giúp cho những người đang tìm hiểu về Struts, đang phát triển ứng dụng web vớiStruts tích lũy thêm kiến thức

III Nội dung nghiên cứu

Tìm hiểu chi tiết về Struts Framework Từ cơ sở lý thuyết đến cách thức triển khai một ứng dụng sử dụng Struts Framework

IV Phương pháp nghiên cứu

- Tự tìm hiểu qua sách, và các bài báo

- Phân tách nhỏ dần các thành phần của Framework

- Giải quyết các vấn đề mang tính nguyên tử

- Tổng hợp các kết quả lại thành một cái nhìn sâu, rộng về Framework

MỤC LỤC

Trang 3

MỤC LỤC IIIDANH MỤC HÌNH ẢNH IV

I.2.1 Java Servlet 7 I.2.2 Java Server Page (JSP) 9 II.2.2 Struts 1 Framework 16

Trang 4

DANH MỤC HÌNH ẢNH

16 Hình 16 Cấu trúc ứng dụng phần Controller và Model 35

Trang 5

CHƯƠNG I: GIỚI THIỆU TỔNG QUAN I.1 NGÔN NGỮ LẬP TRÌNH JAVA VÀ CÔNG NGHỆ WEB JAVA

Java là một ngôn ngữ lập trình do hãng Sun phát triển từ đầu những năm 90 đãtrở thành một ngôn ngữ lập trình hướng đối tượng rất được ưa chuộng trong những nămgần đây Java được sử dụng phổ biến trên toàn thế giới nhằm đáp ứng các yêu cầu phát

Trang 6

triển ứng dụng trên mạng phục vụ cho nhiều người dùng với những môi trường thực thiphần mềm khác nhau

Java là một ngôn ngữ lập trình hoàn chỉnh được thiết kế theo hướng đối tượngvới đầy đủ các tính chất quan trọng của ngôn ngữ lập trình hướng đối tượng:

Java bao gồm các bộ phận:

- Máy ảo Java: JVM

- Bộ công cụ phát triển: J2SDK

- Các đặc tả chi tiết kĩ thuật (specifications)

- Ngôn ngữ lập trình (programming language)

Công nghệ Java được chia làm ba bộ phận:

- J2SE: Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứngdụng trên desktop và định nghĩa các phần thuộc nhân của Java

- J2EE: Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứngdụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server) Bộ phận hayđược nhắc đến nhất của công nghệ này là công nghệ Servlet/JSP: sử dụngJava để làm các ứng dụng web

- J2ME: Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụngJava chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay,robo và những ứng dụng điện tử khác

Như vậy nói đến công nghệ Web Java chúng ta nói đến J2EE

J2EE là một khung ứng dụng Web hoạt động hiệu quả J2EE chỉ hỗ trợ ngôn ngữlập trình Java và trong tương lai có lẽ cũng không có ngôn ngữ lập trình nào được hỗ trợthêm bởi kiến trúc này Nhưng khung ứng dụng J2EE và ngôn ngữ Java có tính khảchuyển cao Một chương trình viết bởi Java được thực thi trên máy ảo Java (Java VirtualMachine) thay vì trực tiếp trên hệ điều hành cụ thể Do đó, mã chương trình có thểchuyển từ một hệ điều hành này sang một hệ điều hành khác (có hỗ trợ JVM) để thựcthi một cách dễ dàng

Kiến trúc đa tầng trong ứng dụng J2EE:

Trang 7

Hình 1: Kiến trúc đa tầng trong ứng dụng J2EE

Các thành phần:

- Client-tier chạy trên máy client

- Web tier, Business tier (là Java Servlet và Java Server Pages) chạy trên J2EEserver

- EIS (Enterprise information system)-tier chạy trên EIS server

I.2 TRƯỚC KHI STRUTS 1 RA ĐỜI

I.2.1 Java Servlet

I.2.1.1 Tổng quan Java Servlet

Servlet được tạo ra vào năm 1997, Servlet là các thành phần đối tượng nhúngtrên trình chủ Web server thực hiện xử lý yêu cầu và sinh ra các trang Web động trả vềmáy khách

Java Servlet là công nghệ nền tảng cho các công nghệ khác để tạo ra các ứngdụng Web có tính tương tác cao mà giao diện người dùng được sinh ra ở phía server.Một servlet là một lớp của Java xử lý động các yêu cầu và xây dựng các trả lời Mặc dùservlet có thể dùng để trả lời bất kỳ một yêu cầu nào nhưng chúng thường dùng để hỗtrợ cho các ứng dụng Web

Servlet là một thành phần ứng dụng Web không phụ thuộc vào hệ nền Về bảnchất thì Servlet là một chương trình Java (chỉ cần nạp một lần vào máy ảo) thường được

sử dụng để chạy nền trên các máy ảo Java Khi có một yêu cầu từ trình duyệt (Browser),máy chủ (server) sẽ phát lệnh thực hiện Servlet tương ứng, kết quả trả về của Servlet sẽđược máy chủ xử lý và trả về cho trình duyệt dưới dạng các trang HTML

Trang 8

Hình 2: Java Servlet trong kiến trúc J2EE

I.2.1.2 Mô hình Servlet Response and Request

Hình 3: Mô hình Servlet Response and Request

Nhiệm vụ của Servlet:

- Nhận Client Request (hầu hết ở dạng HTTP Request)

- Trích xuất thông tin từ Request

- Xử lý nghiệp vụ (Truy cập cơ sở dữ liệu, …)

- Tạo và gửi trả Response cho Client (hầu hết ở dạng HTTP Response) hoặc Forward cho Servlet hoặc trang web khác

- Request là những thông tin được gửi từ Client đến Server

- Response là những thông tin được gửi từ Server đến Client

I.2.1.3 Vòng đời của một Servlet

Trang 9

Hình 4: Vòng đời Servlet

I.2.2 Java Server Page (JSP)

Công nghệ JSP kế thừa tất cả các kỹ thuật động của công nghệ Java Servlet,nhưng nó lại cung cấp một cách tiếp cận tự nhiên hơn trong việc tạo ra các thành phầnWeb tĩnh, JSP có thể kết hợp giữa công nghệ sinh trang HTML tĩnh với công nghệ độngsinh ra các trang HTML JSP là công nghệ lập trình Web phía máy chủ của Java, JSPcho phép truy xuất, xử lý đơn giản, giúp cho lập trình viên xử lý dễ dàng

Đặc trưng của công nghệ JSP:

- Cho phép trộn giữa mã Java và các thẻ HTML

- Xây dựng các đối tượng phía máy chủ

- JSP sử dụng các truy xuất và xử lý đơn giản như : trình bày giao diện, địnhdạng trang HTML, triệu gọi các Javabean, servlet khác …

Nguyên tắc:

- JSP script được viết lồng vào các trang HTML

- Khi có yêu cầu client, JSP Engine sẽ dịch JSP script thành mã Java

- Java Compiler dịch Java code thành bytecode

- Bytecode chạy trên máy ảo Java

Trang 10

Hình 5: JSP trong kiến trúc J2EE

Với những lợi thế và những đặc điểm của mình dựa trên hướng mã nguồn mở vànhất là với sự ra đời của các framework nổi tiếng như : Struts, Hibernate, Spring, JSF,AJAX dựa trên nền tảng của công nghệ Java đã khuấy động lên một cuộc cách mạngtrong lĩnh vực lập trình ứng dụng Web : “Chỉ trong một tương lai không xa, tất cả cácứng dụng phần mềm đều là ứng dụng Web”

CHƯƠNG II: STRUTS 1 FRAMEWORK II.1 MÔ HÌNH MVC VÀ MÔ HÌNH JSP

II.1.1 Mô hình lập trình MVC

II.1.1.1 Tổng quan

Mô hình MVC (Model - View - Controller) là một kiến trúc phần mềm hay môhình thiết kế được sử dụng trong kỹ thuật phần mềm Nó giúp cho các developer táchứng dụng của họ ra 3 thành phần khác nhau Model, View và Controller Mỗi thành phần

có một nhiệm vụ riêng biệt và độc lập với các thành phần khác

Trang 11

Hình 6: Mô hình MVC

Để thiết kế một một ứng dụng web, người ta có thể sử dụng công nghệ Jsp hoặcJava Servlet Tuy nhiên trên thực tế để tận dụng những ưu điểm, hạn chế những khuyếtđiểm của cả hai công nghệ trên một ứng dụng web thường được thiết kế dựa trên cả haicông nghệ Cùng với mô hình MVC tạo nên một nền tảng phát triển ứng dụng mạnh mẽ

mà các công nghệ ra đời sau này đều được phát triển trên nền tảng đó (Struts, Spring,

…)

Hình 7: Sự kết hợp Jsp, Java Servlet và MVC

Trang 12

- Model: Bao gồm tất cả các thông tin trạng thái của hệ thống Các thông tinđược cung cấp trong các đối tượng hay các Bean.

- View: Bộ phận thể hiện giao diện trực quan với người dùng Do Jsp đảmnhiệm

- Controller: Bao gồm các Java Servlet, làm nhiệm vụ tạo nên các điều khiểnlogic trong ứng dụng

II.1.1.2 Định nghĩa từng thành phần trong MVC

- Là một ánh xạ của thế giới thực, mô tả các thực thể mà hệ thống quản lý

- Thực hiện các truy vấn trên cơ sở dữ liệu

- Những thông tin đầu vào và những chỉ thị người dùng được truyền tới View

và Model nhờ việc thực hiện các Action

- Controller cũng có trách nhiệm dựa vào những thông tin đầu vào và các kếtquả xử lý nghiệp vụ hệ thống để quyết định đầu ra là trang nào trong View

- Ánh xạ giữa các Action đến các tài nguyên của ứng dụng

3 View

- Lấy dữ liệu từ Model và biểu diễn đến người dùng

- Biểu diễn các đầu vào, đầu ra của ứng dụng

- Hiển thị kết quả xử lý nghiệp vụ hệ thống

- Có thể truy xuất tới Model Đây là sự mềm dẻo của mô hình MVC

- Việc truy xuất đến Model được thực hiện nhờ các câu lệnh truy vấn

II.1.1.3 Mối quan hệ giữa các thành phần trong MVC

- View và Controller : Controller có nhiệm vụ tạo ra hoặc lựa chọn View

- Model và Controller : Controller dựa vào Model Nếu Tại Model có một sựthay đổi thì có thể sẽ dẫn theo sự thay đổi ở Controller

- Model và View : View dựa vào Model Nếu tại Model có một sự thay đổi thì

có thể sẽ dẫn theo sự thay đổi ở View

II.1.1.4 Mô hình cộng tác MVC

Trang 13

4: redirect to appropriate view

2: Retrieve Data 1: Post

Hình 8: Mô hình cộng tác MVC

II.1.1.5 Các ưu điểm của mô hình MVC

- Phát triển phần mềm: Có tính chuyên nghiệp hóa, có thể chia cho nhiều nhómđược đào tạo nhiều kỹ năng khác nhau, từ thiết kế mỹ thuật cho đến lập trìnhđến tổ chức database

- Bảo trì: Với các lớp được phân chia theo như đã nói, thì các thành phần củamột hệ thống dễ được thay đổi, nhưng sự thay đổi có thể được cô lập trongtừng lớp, hoặc chỉ ảnh hưởng đến lớp ngay gần kề của nó, chứ không phát tánnáo loạn trong cả chương trình

- Mở rộng: Với các lớp được chia theo ba lớp như đã nói, việc thêm chức năngvào cho từng lớp sẽ dễ dàng hơn là phân chia theo cách khác Tiện về bug lỗi,kiểm soát code, workflow dễ dàng hơn và nhiều người có thể tham gia pháttriển cùng trên 1 module

II.1.1.6 Các nhược điểm của mô hình MVC

- Đối với dự án nhỏ: Cồng kềnh, tốn thời gian phát triển

- Tốn thời gian trung chuyển DTO (Data Transfer Object) giữa các layers

II.1.2 Mô hình JSP

II.1.2.1 Mô hình Jsp 1

Một mô hình lập trình web mà công nghệ Jsp được sử dụng một cách toàn phần.Cho mọi khía cạnh của việc phát triển Từ trình bày giao diện đến xử lý nghiệp vụ

Trang 14

Hình 9: Mô hình Jsp 1

Đặc trưng:

- Ứng dụng web bao gồm một loạt các trang Jsp có liên quan tới nhau

- Yêu cầu của máy khách được xử lý bởi trang Jsp Jsp xử lý mọi khía cạnh củaứng dụng như: trình bày giao diện, điều khiển, xử lý logic hệ thống

- Trang Jsp truy xuất cơ sở dữ liệu thông qua các Java Bean để có được thôngtin tạo trang tương ứng đến cho người dùng

Việc phát triển ứng dụng web sử dụng phần tử script, các thẻ tạo bởi lập trìnhviên, và một ngôn ngữ script Trang tiếp theo được lựa chọn được chỉ định bởi các siêuliên kết hoặc Action của việc Submit form

Hình 10: Mô hình Request - Response Jsp 1

Ưu điểm:

- Với cách thiết kế của Jsp 1, nó phù hợp với những ứng dụng nhỏ

- Thích hợp với các ứng dụng nhỏ, có luồng xử lý đơn giản

- Tách biệt các trang hiển thị từ nội dung

Hạn chế:

- Để thay đổi tên của một trang Jsp có thể phải thay đổi ở rất nhiều nơi

- Khó khăn để sửa đổi ứng dụng, nếu ứng dụng phức tạp thì một lượng codejava lớn bị nhúng vào trong trang Jsp

- Không thích hợp với ứng dụng lớn, phức tạp

II.1.2.2 Mô hình Jsp 2

Trang 15

Ứng dụng web mà các trang Jsp chỉ được sử dụng cho mục đích tạo nên giaodiện người dùng cho ứng dụng, còn thành phần xử lý nghiệp vụ của ứng dụng được đặt

ở các Java Servlet

Hình 11: Mô hình Jsp 2

Đặc trưng:

- Được thiết kế dựa trên mô hình MVC

- Một sự kết hợp thông minh của Jsp, Java Servlet, và Java Bean Jsp chỉ sửdụng cho mục đích hiển thị, Java Servlet điểu khiển, xử lý các yêu cầu banđầu, một phần xử lý dữ liệu, thiết lập các Bean, sau đó chuyển tiếp kết quảvào một hoặc nhiều trang Jsp khác nhau

- Java Servlet phục vụ ứng dụng như một người bảo vệ, cung cấp cho ứngdụng các dịch vụ phổ biến như: chứng thực, ủy quyền, đăng nhập, điều khiểnlỗi…

- Java Servlet như một bộ điều khiển trung tâm, hoạt động như một máy trạngthái hoặc một bộ điều khiển sự kiện để quyết định các xử lý logic nghiệp vụphù hợp với các yêu cầu

Hình 12: Mô hình Request – Response Jsp 2

Ưu điểm:

- Dễ dàng hơn cho việc phát triển, bảo trì, và mở rộng

- Thích hợp với những ứng dụng lớn, phức tạp

Trang 16

Hạn chế:

- Phức tạp hơn cho việc thiết kế

II.2 STRUTS FRAMEWORK

II.2.1 Lịch sử hình thành

Struts nguồn gốc được tạo ra bởi Craig R McClanahan và sau đó được chuyểngiao cho dự án Jakarta của Apache Software Foundation (AFS) vào năm 2000 Vàothá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ênhoà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ônngữ 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ầngWeb 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ôngphả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 gianphá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ặcmodule 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ộtcá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 giaodiện, xử lý và truy xuất cơ sở dữ liệu

Struts hiện có hai phiên bản chính, đó là Struts 1 xx và 2.0x Struts 1 xx đượccô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 Struts 2.0x,

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ênnghiệ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

II.2.2 Struts 1 Framework

Struts 1 được thiết kế dựa trên mô hình MVC Dùng để xây dựng các ứng dụngweb sử dụng sử dụng Java Servlet và Jsp Ứng dụng Struts chạy được trên nhiều nềntả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 nhanhchó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

- 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

Trang 17

- 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

II.2.3 Kiến trúc Struts 1

strut-config.xml

ActionForm

8: Get View Information

5: Establish bean state, then place in session or request object

4: Retrieve Data

6: Establish Form State

1: Post

3: Invoke mapped Action Bean

7: redirect to appropriate view

2: Get Mapped

Action

Hình 14: Sơ đồ làm việc cộng tác của Struts 1

Trang 18

Controller là trung tâm điều hành của luồng ứng dụng, nó ủy quyền cho các bộ

xứ lý thích hợp gọi là các Action

Các Action có thể sử dụng các thành phần của Model

Model đóng gói các trạng thái hoặc logic nghiệp vụ

Điều khiển được chuyển tiếp cho Controller hoặc View phù hợp

Struts bao gồm ba thành phần chính:

- Servlet controller (Controller)

- Jsp hay mọi công nghệ hiển thị nào khác (View)

- Application Business Logic ở một dạng bất kỳ phù hợp với ứng dụng (Model)Tuy nhiên, Struts tập trung chủ yếu vào phần Controller Có sự độc lập giữaModel và View Người phát triển có thể sử dụng bất kỳ công nghệ Model và View nào

File cấu hình của Struts (struts-config.xml) chứa các Action mapping Ánh xạURL với các Action Controller sử dụng các mapping này cho hai mục đích chính: trả vềcác HTTP Request cho Action của ứng dụng, xác định điều hướng trang

II.2.3.1 Controller

Giống như một Switch trong kiến trúc MVC Mọi Request đều phải đi quaController Chịu trách nhiệm điều khiển luồng cho các xử lý Request (action mapping)bằng cách đọc file cấu hình của ứng dụng để xác định luồng điều khiển

Hình 15: Các thành phần của Controller

Trong đó, Struts đã cung cấp sẵn thành phần Action Servlet(org.apache.struts.action.ActionServlet) Cần phải cấu hình Servlet mapping cho Servletnày trong file web.xml

Các cấu hình liên quan đến Struts khác được tạo lập trong file struts-config.xml.File này làm nhiệm vụ mapping URL của Request đến Action cụ thể

Như vậy nhiệm vụ của lập trình viên là:

Trang 19

- Viết lớp Action (kế thừa từ lớp org.apache.struts.action.Action có sẵn trongStruts Framework) cho mỗi Request có thể nhận được Trong đó phải ghi đèphương thức execute().

- Viết Action mapping trong file cấu hình ứng dụng struts-config.xml

- Cập nhật file web.xml, nhằm thực hiện mapping cho ActionServlet

II.2.3.2 Model

Model được chia làm hai thành phần:

- Internal state: Trạng thái trong của hệ thống

- Business logic: Các phương pháp thay đổi các trạng thái đó

Internal state của Model có thể được biểu diễn bằng:

II.2.4 Xây dựng thành phần Model

II.2.4.1 JavaBeans và phạm vi

Trong một ứng dụng web Các JavaBeans có thể được lưu trữ và truy cập từ cácphạm vi khác nhau Mỗi phạm vi đều có những quy tắc riêng cho vòng đời của nó cũngnhư khả năng có thể truy cập của các bean được lưu trữ tại đây

Java Server Page (Jsp) định nghĩa các phạm vi của nó bằng những từ như sau:(Những khái niệm tương ứng được định nghĩa trong Servlet trình bày trong dấu ngoặc)

- Page: Các bean có thể được truy cập trong một trang, trong vòng đời củaRequest hiện tại (Các biến cục bộ trong phương thức service())

- Request: Các bean có thể được truy cập trong một trang Jsp cũng như bất kỳtrang hoặc Servlet nào được included trong trang Jsp này, hoặc được Forward

từ nó (Thuộc tính Request)

Trang 20

- Session: Các bean có thể được truy cập trong các trang Jsp và các Servlettrong session của một User, trên một hoặc nhiều Request (Thuộc tínhsession).

- Application: Các bean có thể được truy cập trong tất cả các trang Jsp hoặc cácServlet trong cả ứng dụng web (Thuộc tính Servlet context)

Một điều rất quan trọng là các trang Jsp và Servlet trong cùng ứng dụng web chia

sẻ cùng một tập các beans

II.2.4.2 ActionForm Beans

ActionForm là một tính năng quan trọng và hữu ích trong Struts Framework, đâycũng là một thành phần dễ gây nên sự hiểu nhầm cho người sử dụng Strust Framework.Thông thường, ActionForm thường là một thành phần của Controller nhưng vì nó được

sử dụng để mô hình dữ liệu, nên có những nét đồng nhất với Model

Khi xây dựng một form hiển thị tới người dùng, Strust yêu cầu phải xây dựngmột ActionForm đi kèm form đó Chính vì vậy mà nó mới có tên gọi là ActionForm.Tuy nhiên, một ActionForm có thể được sử dụng cho nhiều form, hoặc toàn ứng dụng.Khi ActionForm được định nghĩa trong file cấu hình hệ thống struts-config.xml thìController sẽ tự động thực hiện các dịch vụ như sau trước khi gọi đối tượng Actionthích hợp:

- Kiểm tra một thể hiện của bean được định nghĩa kèm với form gửi Requesttới Controller trong phạm vi thích hợp

- Nếu như không tồn tại bean thỏa mãn, Controller tự động tạo ra một beantheo đúng định nghĩa của lập trình viên và thêm vào phạm vi thích hợp

- Với tất cả các tham số trong Request gửi tới Controller mà có tên tương ứngvới tên của một thuộc tính trong bean, phương thức setter tương ứng sẽ đượcgọi

- Sau khi được cập nhật, các ActionForm bean sẽ được truyền đến phương thứcexecute() của lớp Action Do đó các giá trị này có thể được sử dụng để tácđộng lên trang thái trong của hệ thống hoặc phục vụ cho các xử lý logicnghiệp vụ nào đó

Phải lưu ý rằng một form ở đây không đơn giản chỉ tương ứng với một trang Jspduy nhất trong giao diện người dùng Một cách sử dụng rất phổ biến là chỉ một form mà

sử dụng với nhiều trang Jsp khác nhau Điều này có những lợi ích lớn trong nhữngtrường hợp đặc biệt như tạo một wizard cho việc cài đặt một ứng dụng mới Strutskhuyến khích các lập trình viên nên tận dụng được một ActionForm bean cho nhiềutrang jsp Điều đó giúp chương trình đơn giản hơn, dễ kiểm soát hơn Khi nhà thiết kếmuốn thay đổi lại về các trường dữ liệu hiển thị thì cũng không quá phức tạp và khókhăn cho việc sửa code bên trong

Ngày đăng: 14/12/2013, 00:19

HÌNH ẢNH LIÊN QUAN

Hình 2: Java Servlet trong kiến trúc J2EE I.2.1.2. Mô hình Servlet Response and Request - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 2 Java Servlet trong kiến trúc J2EE I.2.1.2. Mô hình Servlet Response and Request (Trang 8)
Hình 4: Vòng đời Servlet - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 4 Vòng đời Servlet (Trang 9)
Hình 7: Sự kết hợp Jsp, Java Servlet và MVC - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 7 Sự kết hợp Jsp, Java Servlet và MVC (Trang 11)
Hình 6: Mô hình MVC - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 6 Mô hình MVC (Trang 11)
Hình 9: Mô hình Jsp 1 - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 9 Mô hình Jsp 1 (Trang 14)
Hình 11: Mô hình Jsp 2 - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 11 Mô hình Jsp 2 (Trang 15)
Hình 13: Kiến trúc Struts 1 - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 13 Kiến trúc Struts 1 (Trang 17)
Hình 15: Các thành phần của Controller - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 15 Các thành phần của Controller (Trang 18)
Hình 16: Cấu trúc ứng dụng phần Controller và Model - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 16 Cấu trúc ứng dụng phần Controller và Model (Trang 31)
Hình 17: Cấu trúc thư mục phần View - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 17 Cấu trúc thư mục phần View (Trang 32)
Hình 19: File cấu hình struts-config.xml - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 19 File cấu hình struts-config.xml (Trang 34)
Hình 20: Tạo lớp ActionForm - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 20 Tạo lớp ActionForm (Trang 35)
Hình 21: Tạo lớp Action - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 21 Tạo lớp Action (Trang 36)
Hình 22: File tài nguyên hệ thống - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 22 File tài nguyên hệ thống (Trang 37)
Hình 24: File Resultsucess.jsp - Tìm hiểu công nghệ struts 1 trong xây dựng ứng dụng web
Hình 24 File Resultsucess.jsp (Trang 38)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w