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… Với sự phát triển mạnh mẽ và nhu cầu ngày càng “th
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
Trang 2LỜI CẢM ƠN
Lời đầu tiên, em xin cảm ơn các thầy cô trong khoa Công Nghệ Thông Tin trường Đại học Vinh, cùng quý thầy cô bộ môn trong suốt quá trình học tập tại trường,
em đã được các thầy cô cung cấp, truyền đạt và chỉ bảo nhiệt tình tất cả kiến thức nền
tảng quý giá Đặc biệt là thầy Lê Văn Tấn đã tận tình giúp đỡ và hướng dẫn em trong
quá trình hoàn thành đồ án tốt nghiệp này
Nhân đây, con cũng xin bày tỏ lòng biết ơn sâu sắc tới bố mẹ, đã nuôi dạy con nên người Xin cảm ơn bố mẹ đã luôn tin tưởng, luôn là chỗ dựa tinh thần vững chắc, giúp đỡ con trong quá trình học tập, nghiên cứu và thực hiện tốt đồ án tốt nghiệp
Bên cạnh đó, trong thời gian hoàn thành đồ án này, tôi cũng đã nhận được nhiều
sự giúp đỡ cùng những lời động viên chân thành và quý báu của bạn bè và người thân, tôi xin hết lòng biết ơn
Tuy nhiên, do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng đồ án khó tránh khỏi những thiếu sót Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của các thầy cô và các bạn
Trang 3LỜI MỞ ĐẦU
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ọi mặ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ành cô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ất nhiề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 ứng dụ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…
Với sự phát triển mạnh mẽ và nhu cầu ngày càng “tham lam” của những người
sử dụng web, các ứng dụng web ngày nay đang ngày càng lớn và phức tạp Thời gian phát triển của các ứng dụng đó cũng càng ngày càng gấp gỏp và cạnh tranh hơn, và hơn hết là khả năng bảo trì phát triển hệ thống sau khi đã được triển khai đang đóng vai trò quyết định cho sự tồn vong của hệ thống đó Vì thế việc lựa chọn một kiến trúc phù hợp cho ứng dụng của mình là một vấn đề rất quan trọng
Trong đồ án này, em sẽ nghiên cứu về Struts Framework, một công nghệ cho phép việc thiết kế các ứng dụng Web dựa trên mô hình MVC Qua đó, em sẽ xây dựng một ứng dụng nhỏ áp dụng công nghệ Struts để minh hoạ
Trang 4MỤC LỤC
LỜI CẢM ƠN 1
LỜI MỞ ĐẦU 2
Chương 1: TỔNG QUAN VỀ ĐỀ TÀI 5
1.1 Lý do chọn đề tài 5
1.2 Mục đích, ý nghĩa của đề tài 6
1.3 Tóm tắt nội dung của đồ án 6
Chương 2: TÌM HIỂU STRUTS FRAMEWORK 8
2.1 Các kiến trúc lập trình 8
2.1.1 Kiến trúc truyền thống 8
2.1.2 Kiến trúc MVC 9
2.2 Các thành phần của MVC (Model – View – Controller) 10
2.2.1 Thành phần Model 10
2.2.2 Thành phần View 10
2.2.3 Thành phần Controller 10
2.3 Các ưu, nhược điểm của mô hình MVC 10
2.4 Strust Framework 11
2.4.1 Framework là gì ? 11
2.4.2 Lịch sử hình thành Struts 12
2.4.3 Các thành phần của Struts 1 13
2.5 Kiến trúc và tiến trình hoạt động của struts 14
2.5.1 Kiến trúc của Struts 14
2.5.2 Chu trình hoạt động của Struts 15
2.7 Ưu, nhược điểm của Struts 15
2.7.1 Ưu điểm 15
2.7.2 Nhược điểm 16
Chương 3: XÂY DỰNG MÔ ĐUN TRA CỨU THÔNG TIN CHO SINH VIÊN HỆ VLVH TẠI ĐH VINH 17
3.1 Khảo sát, phân tích hệ thống 17
3.1.1 Đặc tả bài toán 17
3.1.2 Các chức năng chính 17
3.1.3 Sơ đồ thực thể liên kết 18
3.2 Thiết kế hệ thống mới 19
3.2.1 Thiết kế cơ sở dữ liệu 19
Trang 53.2.2 Thiết kế các trang chính 22
Chương 4: CÀI ĐẶT VÀ TRIỂN KHAI ỨNG DỤNG 26
4.1 Lựa chọn công cụ 26
4.1.1 Môi trường JDK 1.6 26
4.1.2 IDE-Eclipse 26
4.1.3 Web server-Apache Tomcat 7.0 26
4.1.4 Hệ quản trị CSDL SQL Server 2005 27
4.2 Triển khai ứng dụng 27
4.2.1 Khởi tạo và cấu hình struts cho eclipse 27
4.2.2 Cài đặt ứng dụng 31
KẾT LUẬN 35
i Kết quả đạt được của đề tài 35
ii Hạn chế của đề tài 35
iii Hướng phát triển của đề tài 35
TÀI LIỆU THAM KHẢO 36
Tài liệu tiếng Việt: 36
Tài liệu tiếng Anh: 36
Trang 6Chương 1: TỔNG QUAN VỀ ĐỀ TÀI
1.1 Lý do chọn đề tài
Java là một nền tảng phát triển các ứng dụng phần mềm có vị thế rất lớn trong
những năm cuối thế kỉ 20, đầu thế kỉ 21 Đánh dấu sự trưởng thành của mô hình lập trình hướng đối tượng, nó được coi là một nền tảng mang tính cách mạng trong ngành phần mềm Mô hình máy ảo đã cho phép các ứng dụng viết bằng Java có thể chạy trên nhiều hệ điều hành khác nhau Vì thế Java là ngôn ngữ vẫn được rất nhiều các nhà thiết kế lựa chọn làm ngôn ngữ phát triển chính cho hệ thống của mình
Servlet/JSP là một bộ phận của công nghệ J2EE (Java 2 Platform, Enterprise
Edition) phiên bản của Java chạy trên các máy chủ ứng dụng
Servlet API (Application Programming Interface) được phát triển dựa trên
những điểm mạnh của Java platform nhằm giải quyết vấn đề của CGI (Common Gateway Interface) và trình chủ server API Nó là một API đơn giản hỗ trợ tất cả các Web server và thậm chí các ứng dụng máy chủ dùng để kiểm tra và quản lý các công việc trên server Nó giải quyết vấn đề thực thi bằng việc thực hiện tất cả các yêu cầu như những dòng trong một xử lý, hoặc trên một hệ thống cân bằng tải (load-balancing)
sẽ là mỗi xử lý trên một server trong kết chùm cluster Các servlet dễ dàng chia sẻ tài nguyên Bạn có thể sử dụng JavaMail để đọc và gửi mail, Java DataBase Connect (JDBC) để truy cập các database, lớp File và những lớp quan hệ để truy cập hệ thống file, RMI, CORBA, Enterprise Java Beans (EJB) để truy cập các hệ thống kế thừa…
JSP (Java Server Pages) còn được biết đến với một cái tên khác là Java
Scripting Preprocessor – tạm dịch là “Bộ tiền xử lý văn lệnh Java” – là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang web một cách năng động, trong khi hồi âm yêu cầu của trình khách Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre-defined actions) vào trong nội dung tĩnh của trang Trước khi hiển thị
ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler) Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi
biên dịch mã nguồn ra tập tin class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo
mã byte code cho servlet từ trang JSP
Câu hỏi đặt ra là: Mô hình JSP/Servlet có thực sự tối ưu? nó có đủ khả đáp ứng được yêu cầu của các hệ thống lớn hay không? Em đã tìm hiểu và đưa ra một số những nhược điểm khiến nó không được ứng dụng trong việc xây dựng các hệ thống lớn:
Trang 7- Kiến trúc của JSP/servlet khá đơn giản, việc gộp các action (các hàm xử lý hành động) là điều rất không nên Bởi khi thiết kế hệ thống, các module của chương trình cần phải được sắp xếp hợp lý, các action được chỉnh sửa mà không ảnh hưởng tới giao diện hiển thị
- Ngoài ra, việc phân chia các thành phần hợp lý dựa theo mẫu thiết kế chuẩn của một hệ thống được người dùng đánh giá rất cao Sau khi hoàn thiện, nếu bản thân người dùng muốn phát triển tiếp ứng dụng của mình, họ cần có một hướng dẫn chi tiết cách sửa các thành phần trong các gói (package) Trong quá trình thiết kế một hệ thống lớn, yêu cầu phải đòi hỏi làm việc theo nhóm, để quá trình phân công công việc hợp
lý, việc phân tách các thành phần của hệ thống là cần thiết Nếu không, quá trình làm việc sẽ thường xuyên bị gián đoạn
Công nghệ Struts đã thành công trong việc tối ưu các khuyết điểm vốn có của JSP/Servlet Tính năng của nó sẽ được đề cập nhiều hơn qua nội dung sẽ trình bày sắp tới
Ở 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ẹn cho 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ềm nó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
về Struts và ứng dụng xây dựng mô đun tra cứu thông tin cho sinh viên hệ VLVH tại Đại học Vinh” Trong thời gian thực hiện đồ án, nghiên cứu và tìm hiểu công nghệ
em đã đạt được một số kết quả nhất định Đó là cơ sở quan trọng giúp em nắm bắt công nghệ và có thể làm việc tốt sau này
1.2 Mục đích, ý nghĩa của đề tài
Qua việc nghiên cứu đề tài này, chúng ta có thể hiểu Struts framework là gì, tại sao lại sử dụng Struts, khi nào thì sử dụng và Struts có những ứng dụng gì, hỗ trợ như thế nào trong mô hình MVC Đồng thời, có thể áp dụng những kiến thức được bồi dưỡng trong quá trình học tập tại trường vào công việc thực tế Từ đó tích lũy cho bản thân những kinh nghiệm quý báu mà sau này sẽ là nền tảng giúp cho việc lập nghiệp của bản thân
1.3 Tóm tắt nội dung của đồ án
Nội dung của đồ án sẽ gồm những phần sau:
Tìm hiểu kiến trúc lập trình MVC
Trang 8 Nghiên cứu, tìm hiểu công nghệ Struts Đây là các công nghệ mã nguồn mở đang được sử dụng nhiều trong lĩnh vực lập trình ứng dụng Web dựa trên ngôn ngữ Java dựa trên mô hình MVC
Áp dụng công nghệ struts để xây dựng một ứng dụng thực tế
Báo cáo đồ án tốt nghiệp được trình bày trong 4 chương:
Chương 1: Tổng quan về đề tài
Chương 2: Tìm hiểu về MVC và Struts Framework
Chương 3: Áp dụng những kiến thức đã nghiên cứu ở chương 2 để xây dựng một chương trình demo, đó là ứng dụng web cho phép tra cứu thông tin sinh viên dành cho hệ vừa làm vừa học (VLVH) tại Đại học Vinh
Chương 4: Tiến hành cài đặt và demo kết quả ứng dụng
Phần kết luận và đánh giá : Trong phần này, em xin đưa ra một số kết quả đã thực
hiện được, cũng như những khó khăn hạn chế gặp phải trong quá trình thực hiện đồ án tốt nghiệp Đồng thời đưa ra hướng phát triển của đề tài nói riêng và công nghệ Struts trong tương lai nói chung
Trang 9Chương 2: TÌM HIỂU STRUTS FRAMEWORK
response) Hay nói cách khác, người sử dụng gửi các yêu cầu và nhận phản hồi trực tiếp qua các trang JSP Mặc dù về khái niệm hết sức đơn giản, kiến trúc này không phù hợp cho việc phát triển các ứng dụng quy mô lớn vì chắc chắn một số lượng lớn các tính năng sẽ bị lặp lại trong các trang JSP (lặp lại mã nguồn) Cũng vậy, kiến trúc truyền thống tạo nên sự ràng buộc không cần thiết giữa phương thức nghiệp vụ và phương thức trình diễn (presentation logic) của ứng dụng Ví dụ, ngoài giao diện HTML, bạn có thể muốn thêm một giao diện WML cho truy nhập wireless Trong trường hợp này, việc sử dụng kiến trúc truyền thống yêu cầu sự lặp lại không cần thiết của phương thức nghiệp vụ trong các trang sử dụng HTML và WML
2.1.1.1 Ưu điểm
Đây là mô hình đơn giản nhất, thoải mái để phát triển ứng dụng Người lập trình có thể lần lượt xây dựng các trang web dựa theo chức năng đã chỉ rõ
Kiến trúc này thích hợp với những ứng dụng web có quy mô nhỏ, ít chức năng
và việc định hướng trang là đơn giản
Trang 102.1.1.2 Nhược điểm
Khó tách rời công việc viết mã cho ứng dụng (thường thuộc về vai trò của người phát triển ứng dụng Web) và nhóm xây dựng ứng dụng (thường thuộc về vai trò của người thiết kế) Khi cần thay đổi giao diện người sử dụng (công việc của người thiết kế) thì chính người lập trình gần như lại phải thực hiện toàn bộ (thay đổi mã nguồn chương trình và mã HTML)
Do các trang JSP đều xử lý đầu vào của chính mình, ứng dụng là một dãy các trang JSP hoạt động kế tiếp tuần tự nhau, kết quả trang này là đầu vào cho trang kia, nên khi thay đổi, hay mở rộng các chức năng của ứng dụng thì rất khó thực hiện hoặc thực hiện rất phức tập và tốn nhiều thời gian Do vây, kiến trúc truyền thống là cứng nhắc, không linh hoạt, không thích hợp với các dự án lớn
2.1.2 Kiến trúc MVC
Hình 2: Kiến trúc MVC
Mô hình MVC, hay cách gọi khác là Model 2, giải quyết nhiều vấn đề của mô hình truyền thống với việc cung cấp một sự phân tách rõ ràng trong ứng dụng Trong kiến trúc MVC, một Servlet trung tâm, được gọi là Controller, tiếp nhận tất cả các yêu cầu cho ứng dụng Sau đó Controller sẽ xử lý yêu cầu và làm việc với Model để chuẩn
bị những dữ liệu cần thiết cho View (thường là JSP) và chuyển tiếp dữ liệu tới trang JSP Sau đó JSP sử dụng các dữ liệu đã được chuẩn bị bởi Controller để trả về cho trình duyệt Trong kiến trúc này, phương thức thực hiện và phương thức trình diễn được phân tách nhau Việc tách mã nguồn nghiệp vụ (business code) và mã nguồn
Trang 11trình diễn (presentation code) giúp ta có thể sử dụng nhiều giao diện cho ứng dụng, chúng có thể là Web, wireless hay GUI Thêm vào đó, việc phân tách này còn cung cấp việc tái sử dụng lại mã nguồn một cách hoàn hảo
2.2 Các thành phần của MVC (Model – View – Controller)
2.2.1 Thành phần Model
Trong kiến trúc MVC, các model component cung cấp một giao diện với dữ liệu và/hoặc các dịch vụ được sử dụng bởi ứng dụng Theo cách này, các thành phần controller không cần phải chứa mã nguồn để thao tác với dữ liệu của ứng dụng Thay vào đó, chúng giao tiếp với các thành phần model để thực hiện truy cập và thao tác dữ liệu Như vậy, các thành phần model cung cấp phương thức nghiệp vụ (business logic) Các thành phần model có thể ở nhiều dạng từ các Java bean đến các EJB hay các Web service
2.2.2 Thành phần View
Các thành phần View được sử dụng trong kiến trúc MVC để sinh ra các phản hồi cho trình duyệt Như vậy một thành phần view cung cấp những gì mà người dùng nhìn thấy Thường thì các thành phần view là các trang JSP hay HTML đơn giản Tuy nhiên, các thành phần view cũng có thể sử dụng WML hay các công nghệ khác Đây là một ưu điểm thiết kế chính của MVC Bạn có thể sử dụng bất kỳ công nghệ hiển thị nào mà không sợ tác động đến lớp Model của ứng dụng
2.2.3 Thành phần Controller
Ở trung tâm của kiến trúc MVC là các thành phần controller Controller thường
là một Servlet tiếp nhận các request cho ứng dụng và quản lý luồng dữ liệu giữa lớp Model và lớp View Như vậy, nó điều khiển cách mà các lớp Model và View tương tác Controller thường sử dụng các lớp giúp đỡ (helper class) để chuyển điều khiển qua các yêu cầu hay tiến trình xác định
2.3 Các ưu, nhược điểm của mô hình MVC
Sau đây là một số ưu điểm chính của việc sử dụng mô hình MVC:
Tính tin cậy (Reliability): Tầng trình diễn và tầng giao dịch được tách biệt nhau,
do đó có thể cho phép ta thay đổi cách nhìn đối với ứng dụng mà không cần
phải biên dịch lại mã nguồn của thành phần Model hay Controller
Trang 12 Tính sử dụng lại và thích nghi cao (High reuse and adaptability): Mô hình MVC có thể cho phép ta sử dụng nhiều thể loại của View, tất cả đều truy nhập chung một mã nguồn phía máy chủ (server-side code) Nó bao gồm cả các trình duyệt Web (HTTP) đến cả trình duyệt wireless (WAP)
Giá thành phát triển và giá thành vòng đời thấp (Very low development and
life-cycle costs): Mô hình MVC làm cho các nhà lập tŕnh ở mức thấp có thể phát
triển và bảo trì giao diện của người sử dụng
Tính triển khai nhanh (Rapid deployment): Thời gian triển khai có thể được
giảm xuống bởi vì những nhà lập trình điều khiển chỉ tập trung vào việc giải quyết các giao tác, còn những nhà thiết kế giao diện chỉ tập trung vào việc thiết
kế tương tác
Tính bảo trì được (Maintainability): Sự tách biệt giữa các tầng hiển thị và tầng giao dịch cũng làm cho việc bảo trì và sửa đổi các ứng dụng Web dựa trên Struts một cách dễ dàng hơn
Bên cạnh đó, mô hình MVC cũng có những nhược điểm sau:
Gia tăng sự phức tạp
Sự kết nối chặt chẽ của View và Controller đối với Model
Sự thay đổi đối với giao diện Model đòi hỏi sự thay đổi song song trong View
và có thể đòi hỏi sự thay đổi thêm đối với Controller Sự thay đổi mã nguồn nào
đó có thể trở nên khó khăn hơn
Tiềm ẩn sự cập nhật dư thừa
Cơ chế truyền sự thay đổi có thể không hiệu quả khi Model thay đổi thường xuyên đòi hỏi nhiều thông báo thay đổi Đây không phải là vấn đề chung nếu
có một số framework về Java được nhắc đến Vậy, bản chất framework là gì, và nó có những đặc tính gì ?
Trang 13Theo cộng đồng Wikepedia, 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 Thông thường, một framework bao gồm những chương trình hỗ trợ, các thư viện lập trình và một ngôn ngữ scripting nằm giữa các phần mềm khác để giúp phát triển và gắn những thành phần khác nhau trong dự án phần mềm lại với nhau.
Một framework có 3 đặc tính sau :
1. Một framework xây dựng sẵn các lớp hoặc các thành phần, mỗi loại đó sẽ cung cấp một mức trừu tượng cho một vài khái niệm riêng biệt
2. Một framework sẽ định nghĩa ra tập hợp các cách thức để các mức trừu tượng
đó cùng nhau giải quyết một vấn đề
3. Các thành phần trong một framework phải có tính sử dụng lại được
2.4.2 Lịch sử hình thành Struts
Struts ban đầu đượ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 tuy ra đời sau một số framework hoặc các công nghệ khác nhưng nó đã nhanh chóng được các nhà phát triển các ứng dụng trên nền Web chấp nhận và sử dụng rộng rãi Là một framework được xây dựng áp dụng theo mô hình MVC, Struts
tỏ ra rất thích hợp trong các dự án mang tính thương mại, nghiệp vụ cao và phức tạp,
và trên hết, đây là một framework mã nguồn mở Các nhà phát triển có thể tự do phát triển ứng dụng dựa trên Struts mà không phải mất chi phí nào
Trang 14Struts hiện có hai phiên bản chính, đó là Struts 1 xx và 2.0x 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
Framework cơ sở cung cấp các tính năng MVC cốt lõi Nền tảng của framework
cơ sở là Controller servlet: ActionServlet Phần còn lại của framework cơ sở bao gồm
các lớp cơ sở mà ứng dụng của bạn sẽ thêm vào và cả các lớp tiện ích Nổi bật nhất
trong các lớp cơ sở là lớp Action và lớp ActionForm Lớp Action được sử dụng bởi ActionServlet để sử lý các request xác định Lớp ActionForm được sử dụng để nắm
bắt dữ liệu từ các HTML form và được sử dụng để chuyển dữ liệu trở lại View để sinh
ra các phản hồi
2.4.3.2 Thư viện thẻ JSP
Struts đưa ra các thư viện thẻ để hỗ trợ việc lập trình View trong JSP Các thư viện thẻ JSP cho phép người lập trình JSP sử dụng các thẻ giống HTML
+ HTML: Sử dụng để tạo ra các HTML form tương tác với Struts API
+ Bean: Sử dụng để làm việc với các đối tượng Java bean trong JSP
+ Logic: Sử dụng để thực hiện các điều kiện logic đơn giản trong JSP
+ Nested: Sử dụng để cho phép các mức lồng nhau tùy ý
Trang 152.5 Kiến trúc và tiến trình hoạt động của struts
2.5.1 Kiến trúc của Struts
Hình 3: Kiến trúc của Struts 1
ActionServlet: đóng vai trò như là một Controller trong mô hình MVC, hay nói cách khác ActionServlet là sự thực thi Controller của Struts đối với mô hình MVC ActionServlet lấy về các yêu cầu từ phía người dùng và ánh xạ chúng đến thành phần <action> trong file struts-config.xml
ActionBean: định nghĩa một tác vụ có thể được gọi bởi người dùng Nó cũng định nghĩa lớp sẽ sử lý các yêu cầu từ phía người dùng và trang JSP sẽ hiển thị kết quả về cho người dùng
Lớp Action: chứa toàn bộ những xử lý cho các yêu cầu của người dùng
Beans: Như một cái kho để chứa dữ liệu về các đối tượng được lấy lên từ cơ sở
dữ liệu
ActionForm: đi kèm với thẻ <action> trong file struts-config.xml, nó quản lý toàn
bộ các dữ liệu được gửi lên từ phía người dùng và có thể thực hiện xác nhận tính hợp lệ các dữ liệu đó
Trang JSP: được sử dụng để trả về trang HTML để thể hiện kết quả đã được xử
lý cho người dùng
Trang 162.5.2 Chu trình hoạt động của Struts
Hình 4: Chu trình hoạt động của Struts
Chu trình hoạt động của Struts có thể tách thành 5 bước cơ bản sau:
1) Một yêu cầu được tạo ra từ khung nhìn đă được hiển thị trước đó
2) Yêu cầu được tiếp nhận bởi lớp điều khiển, nó hoạt động như một thành phần
Controller, lớp điều khiển tìm kiếm URL đă yêu cầu trong một file XML
(Struts-config.xml) và xác định tên của lớp hành động sẽ thực thi phần hành động cần
5) Yêu cầu được hoàn thành khi lớp điều khiển trả lời bằng cách gửi yêu cầu tới thành phần khung nhìn, được kết nối với khóa trả về, và thành phần khung nhìn sẽ hiển thị kết quả của hành động đó
2.7 Ưu, nhược điểm của Struts
Trang 17 Tự động chuyển đổi kiểu dữ liệu chuỗi truyền thống trong tham số yêu cầu 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 chủ đề (themes) và mẫu (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
Framework là một thư viện, bộ khung để phát triển các phần mềm ứng dụng Tức là nó tạo ra các "vật liệu" ở từng lĩnh vực cho người lập trình viên, thay vì họ phải mất nhiều thời gian để tự thiết kế trước khi dùng Do vậy, lập trình viên chỉ cần tìm hiểu và khai thác các vật liệu này rồi thực hiện (tức lập trình) để gắn kết chúng lại với nhau, tạo ra sản phẩm
Framework có 2 thành phần chính là Common Language Runtime (CLR) và NET Framework class library CLR là môi trường được dùng để quản lý sự thi hành các mã nguồn mà ta đã soạn ra và biên dịch trong các ứng dụng Tuy nhiên khi biên dịch mã nguồn, ta lại biên dịch chúng ra thành một ngôn ngữ trung gian gọi là Microsoft Intermediate Language (MSIL)
Trang 18Chương 3: XÂY DỰNG MÔ ĐUN TRA CỨU THÔNG TIN CHO SINH VIÊN HỆ VLVH TẠI ĐH VINH
3.1 Khảo sát, phân tích hệ thống
3.1.1 Đặc tả bài toán
Hiện nay, việc đào tạo hệ VLVH ở Đại học Vinh được liên kết với gần 50 đơn
vị với hơn 400 lớp thuộc nhiều ngành đào tạo khác nhau Vì thế việc thông tin kịp thời
về lịch học, lịch thi, kết quả học tập, gặp rất nhiều khó khăn Xuất phát từ nhu cầu
ấy, em đã chọn việc xây dựng mô đun tra cứu thông tin cho sinh viên hệ VLVH tại Đại học Vinh để làm bài toán thử nghiệm cho công nghệ struts mà em đã tìm hiểu Mô đun cho phép sinh viên tra cứu những thông tin cần thiết một cách hiệu quả và thiết thực nhất: tra cứu kết quả học tập, xem lịch học, lịch thi, xem và viết thông báo, đặc biệt là cho phép sinh viên đăng và tải tài liệu trực tiếp Đây là một ứng dụng mang nhiều ý nghĩa thực tiễn và hoàn toàn có thể triển khai thành ứng dụng trong thực tế Tuy nhiên,
do thời gian hạn chế và do kinh nghiệm của bản thân còn ít ỏi nên chương trình mới chỉ dừng lại với một số chức năng nhất định Em cũng hi vọng ứng dụng có thể được xây dựng hoàn chỉnh và triển khai được trong thời gian sắp tới
3.1.2 Các chức năng chính
Đăng nhập, đổi mật khẩu: Để có thể sử dụng được các chức năng của mô
đun thì trước tiên sinh viên cần phải đăng nhập bằng mã sinh viên của mình Hệ thống cũng cho phép sinh viên đổi mật khẩu nếu cần
Xem kết quả học tập: Sau khi đăng nhập thì hệ thống tự động chuyển tới
trang hiển thị kết quả học tập của sinh viên đó Bao gồm các thông tin như: Tên học phần, số đơn vị học trình, điểm, học kỳ,…
Xem lịch học: Khi click vào tab menu LỊCH HỌC thì hệ thống sẽ chuyển
sang trang hiển thị lịch học của sinh viên đó Bao gồm các thông tin như: Tên học phần, ngày bắt đầu, thời gian, giáo viên,…
Xem lịch thi: Khi click vào tab menu LỊCH THI thì hệ thống sẽ chuyển
sang trang hiển thị lịch thi của sinh viên đó Bao gồm các thông tin như: Tên học phần, ngày thi,…
Xem, viết thông báo: Khi click vào tab menu THÔNG BÁO thì hệ thống
sẽ chuyển sang trang hiển thị các thông báo chung của trường và các thông báo riêng của lớp đó Bao gồm các thông tin như: Ngày thông báo, nội dung thông báo, người thông báo,… Nếu sinh viên được phân quyền viết