Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 93 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
93
Dung lượng
3,16 MB
Nội dung
PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Mục đích nội dung ĐATN Tìm hiểu cơngnghệStruts,HibernateSpring Xâydựng Demo ứngdụngtuyểndụng Các nhiệm vụ cụ thể Đồ án tốt nghiệp Thực tập công ty TriaxVN để tìm hiểu cơngnghệStruts,HibernateSpring Tìm hiểu nghiệp vụ phân tích tốn tuyểndụng Xâydựng cài đặt chương trình ứngdụng Demo Lời cam đoan sinh viên: Tôi – Nguyễn Tuấn Minh – cam kết ĐATN cơng trình nghiên cứu thân tơi hướng dẫn Ths Bùi Thị Hòa Các kết nêu ĐATN trung thực, chép tồn văn cơng trình khác Hà Nội, ngày 20 tháng năm 2008 Tác giả ĐATN Nguyễn Tuấn Minh Xác nhận giáo viên hướng dẫn mức độ hoàn thành ĐATN cho phép bảo vệ : Hà Nội, ngày 20 tháng năm 2008 Giáo viên hướng dẫn Ths Bùi Thị Hòa TĨM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP Nội dung đồ án bao gồm công việc sau: Tìm hiểu xu hướng phát triển ứngdụngWeb giai đoạn nay, hệ Web 2.0 kỹ thuật AJAX Nghiên cứu, tìm hiểu côngnghệStruts,HibernateSpring Đây côngnghệ mã nguồn mở tiếng lĩnh vực lập trình ứngdụngWeb dựa ngơn ngữ Java sử dụng theo mơ hình MVC Áp dụngcôngnghệStruts, Hibernate, Spring Ajax để xâydựng chương trình ứngdụngtuyểndụng trực tuyến Với nội dung đồ án trình bày trên, báo cáo đồ án tốt nghiệp chia thành chương Nội dung chương trình bày sau: Chương 1: Giới thiệu chung xu hướng phát triển ứngdụngWeb năm gần Trong đó, bao gồm việc tìm hiểu cơngnghệWeb 2.0, kỹ thuật lập trình Ajax, kiến trúc J2EE Java sơ lược số Framework mã nguồn mở tiếng xâydựngứngdụngWeb dựa ngôn ngữ Java Chương 2: Tập trung sâu tìm hiểu cơngnghệStruts,HibernateSpring với việc kế thừa ưu điểm mô hình lập trình Web điển hình: mơ hình MVC Đồng thời phân tích, đánh giá điểm mạnh điểm yếu framework q trình tích hợp xâydựngứngdụngWeb Chương 3: Dựa vào kiến thức nghiên cứu từ chương chương Ở chương 3, tác giả áp dụng chúng để xâydựng tốn demo, tốn tuyểndụng Đây toán mang nhiều ý nghĩa thực tế hồn tồn triển khai thành ứngdụng xã hội Tuy nhiên, thời gian hạn chế kinh nghiệm người thiết kế thiếu nhiều nên tốn dừng lại với số module định Tác giả hi vọng ứngdụngxâydựng hồn chỉnh triển khai thời gian tới Phần kết luận đánh giá : Trong phần này, tác giả đưa số kết thực trình thực đồ án tốt nghiệp Đồng thời đưa số đánh giá chương trình số giải pháp hướng phát triển côngnghệStruts,HibernateSpring tương lai ABSTRACT OF THESIS The content of this thesis includes the following parts : Research on the trend of Web application development nowadays, web 2.0 generation as well as AJAX technique Studying and doing research Struts,Hibernate and Spring technology They are the best open source code technology in field of Web application programing based on Java language and using MVC model Using Struts, Hibernate, Spring and Ajax technology to build a online application programe As the content was stated in the above paragraph, graduation thesis divide into chapters The content of each chapter was disposed in the following detail : Chapter 1: General introduction about trend of web application development in some recent years This chapter focus on studying web 2.0 technology, Ajax programing technique, J2EE architecture in Java as well as some the best open source code Frameworks in web application based on Java language Chapter 2: This chapter goes into the details of Struts,Hibernate and Spring technology by inheriting advantages of typical Web programing model: MVC model At the same time, this part analyses and evaluates strengths and weaknesses of each framework in Web application, construction and integration process Chapter 3: Base on recherches from two chapters above, the author, in this chapter, applies theses knowledges to design a demo This is a recruitment demo (program) which is significant in pratice and capable of applying in the society However, because of lack of time and experiences, the program limits at some modules The author hopes that this program will be fullfilled and applied in the near future Conclusion and assess: In this part, the author gives some results achieved in completing graduation thesis Also, the author evalutates and gives some solutions and orientation to develop Struts,Hibernate and Spring technology in the future LỜI NÓI ĐẦU Ngày nay, ngành côngnghệ thông tin phát triển vũ bão vào mặt đời sống, kinh tế, xã hội người Đóng góp vào phát triển đó, vai trò Web ngày trở nên quan trọngcông cụ đắc lực dẫn tới thành công nhiều lĩnh vực trọng điểm Với bùng nổ truyền thơng Web phương thức lan truyền thơng tin nhanh chóng, hiệu kinh tế Rất nhiều tập đoàn sản xuất phần mềm lớn IBM, Microsoft, Sun MicroSystem … tham gia vào lĩnh vực xâydựng phát triển ứngdụngWeb Tuy nhiên, ứngdụngWeb phát triển nhanh mạnh mẽ không kể đến cộng đồng, cộng đồng mã nguồn mở Sự đóng góp họ vơ lớn lao với mục đích cao phát triển cơngnghệ phục vụ cộng đồng Rất nhiều dự án lớn đời từ cộng đồng mã nguồn mở, kể đến số framework tiếng : Struts, Hibernate, Spring, JSF … Ở Việt Nam, phát triển ứngdụngWeb hướng đầy tiềm hứa hẹn cho tất yêu thích cơngnghệ thơng tin nói chung kỹ sư phần mềm nói riêng Với tư cách kỹ sư phần mềm tương lai với niềm đam mê côngnghệ Web, đặc biệt côngnghệ mã nguồn mở, em chọn cho đề tài “Công nghệStruts,HibernateSpringxâydựngứngdụngWebTuyển dụng” Trong thời gian thực đồ án, nghiên cứu, tìm hiểu cơngnghệ em đạt số kết định Đó sơ quan trọng giúp em nắm bắt côngnghệ làm việc tốt sau Để hồn thành đồ án, nhờ cơng lao to lớn thầy cô giáo trường Đại học Bách Khoa Hà Nội nói chung thầy khoa Côngnghệ Thông tin, môn côngnghệ phần mềm nói riêng Em xin gửi tới thầy cô lời cám ơn chân thành Em xin cám ơn Bùi Thị Hòa – Giảng viên môn Côngnghệ phần mềm, khoa Côngnghệ Thông tin, trường Đại học Bách Khoa Hà Nội nhiệt tình giúp đỡ, hướng dẫn, bảo tận tình suốt thời gian em làm đồ án tốt nghiệp Em xin gửi lời cám ơn đến Công ty Triax Việt Nam, anh chị công ty: Anh Shishikura, chị Khánh Ngọc, anh Việt, anh Công… tạo điều kiện, giúp đỡ góp ý để em hoàn thành tốt đồ án Cuối cùng, em xin gửi lời cám ơn chân thành tới gia đình, bạn bè động viên, chăm sóc, đóng góp ý kiến giúp đỡ trình học tập, nghiên cứu thực tốt đồ án tốt nghiệp Hà Nội, tháng năm 2008 Sinh viên: Nguyễn Tuấn Minh MỤC LỤC CHƯƠNG I : TỔNG QUAN VỀ CÔNGNGHỆWEB JAVA TRONG NHỮNG NĂM GẦN ĐÂY 12 I.1 CôngnghệWeb 2.0 12 I.2 Côngnghệ AJAX 14 I.3 Kiến trúc J2EE xâydựngứngdụngWeb 16 I.3.1 Kiến trúc J2EE 16 I.3.1.1 Java Servlet 19 I.3.1.2 JSP (Java Server Page) .19 CHƯƠNG II : STRUTS , HIBERNATE, SPRINGTRONG LẬP TRÌNH ỨNGDỤNGWEB 22 II.1 Một số khái niệm lập trình ứngdụngWeb .22 II.1.1 Framework ? .22 II.1.2 Hai mô hình kiến trúc ứngdụngWeb 22 II.1.2.1 Mơ hình 22 II.1.2.1.1 Đặc điểm 22 II.1.2.1.2 Ưu điểm .23 II.1.2.1.3 Nhược điểm 23 II.1.2.2 Mơ hình 23 II.1.2.2.1 Đặc điểm 23 II.1.2.2.2 Ưu điểm .24 II.1.3 Mơ hình Model – View – Controller (MVC) 24 II.1.3.1 Đặc điểm 24 II.1.3.2 Model 25 II.1.3.3 View 25 II.1.3.4 Controller 25 II.1.3.5 Cơ chế tương tác thành phần ứngdụng .25 II.1.3.6 Ưu điểm mơ hình MVC 26 II.2 Struts framework 26 II.2.1 Lịch sử hình thành 26 II.2.2 Tổng quan kiến trúc hệ thống .27 II.2.3 Các thành phần Struts .28 II.2.3.1 Actions 28 II.2.3.2 Interceptors .30 II.2.3.3 Value Stack / OGNL 31 II.2.3.4 Result Types 32 II.2.3.5 Results / View technologies 32 II.2.4 Thư viện thẻ Struts 33 II.2.4.1 Thư viện thẻ version 2.xx 33 II.2.5 Cấu hình Struts .34 II.2.5.1 Cấu hình version 2.xx .34 II.2.6 Ưu nhược điểm Struts xâydựngứngdụngWeb 35 II.3 Hibernate framework .36 II.3.1 Lịch sử hình thành 36 II.3.2 Một số khái niệm 37 II.3.2.1 Các khái niệm liên quan đến object / relational persistence 37 II.3.2.2 Persistence layer .38 II.3.2.3 ORM (Object/Relational Mapping) 39 II.3.3 Kiến trúc hệ thống 40 II.3.4 Cấu hình Hibernate 41 II.3.5 Ưu nhược điểm Hibernate lập trình ứngdụngWeb .43 II.4 Spring framework .45 II.4.1 Lịch sử hình thành 45 II.4.2 Các thành phần Spring 46 II.4.4 Cấu hình Spring 48 II.4.5 Ưu điểm Spring 49 CHƯƠNG III : XÂYDỰNGỨNGDỤNGTUYỂNDỤNG 52 III.1 Giới thiệu toán tuyểndụng .52 III.1.1 Mục đích 52 III.1.2 Mục tiêu hệ thống .52 III.2 Phân tích toán tuyểndụng 53 III.2.1 Những yêu cầu chức 53 III.2.1.1 Đối tượng người dùng chức .53 III.2.1.2 Biểu đồ Use Case 54 III.2.1.2.1 Actor: Admin (Người quản trị) 54 III.2.1.2.2 Actor: Company (Nhà tuyển dụng) 59 III.2.1.2.3 Actor: Advertiser (Nhà quảng cáo) 61 III.2.1.2.4 Actor: Candidate (Ứng viên) 62 III.2.2 Lựa chọn giải pháp côngnghệ .65 III.2.2.1 Bảng chi tiết chức .65 III.3.1 Thiết kế liệu .73 III.3.1.1 Mơ hình quan hệ thực thể 73 III.3.1.2 Thiết kế sở liệu 73 III.3.1.2.1 Bảng Account 73 III.3.1.2.2 Bảng Role 74 III.3.1.2.3 Bảng AccountRole 74 III.3.1.2.4 Bảng Function 74 III.3.1.2.5 Bảng RoleFunction 75 III.3.1.2.6 Bảng Advertiser 75 III.3.1.2.7 Bảng Adver_Content 75 III.3.1.2.8 Bảng Job_Type 76 III.3.1.2.9 Bảng Company 76 III.3.1.2.10 Bảng Province 77 III.3.1.2.11 Bảng Category 77 III.3.1.2.12 Bảng News 77 III.3.1.2.13 Bảng Rec_Notice 78 III.3.1.2.14 Bảng Occupation 79 III.3.1.2.15 Bảng Candidate 79 III.3.1.2.16 Bảng Degree 80 III.3.1.2.17 Bảng Candidate_Degree 80 III.3.1.2.18 Bảng Friend 80 III.3.1.2.19 Bảng Blog .81 III.3.1.2.20 Bảng Blog_Comment .81 III.3.1.2.21 Bảng Work_Type 81 III.3.2 Thiết kế module 82 III.3.2.1 Thiết lập mơi trường lập trình 83 III.3.2.2 Mơ hình thiết kế module 84 III.3.2.3 Thiết kế tầng Model 84 III.3.2.4 Thiết kế tầng View 87 III.3.2.5 Thiết kế tầng Controller 87 III.3.2.6 Các file cấu hình hệ thống 88 III.3.3 Thiết kế giao diện Web 89 III.3.3.1 Thiết kế giao diện Admin 89 III.3.3.2 Thiết kế giao diện người dùng 90 KẾT LUẬN VÀ ĐÁNH GIÁ .92 TÀI LIỆU THAM KHẢO 93 MỤC LỤC HÌNH VẼ Hình I.1 Mơ hình “cổ điển” ứngdụngWeb .15 Hình I.2 Mơ hình sử dụng AJAX ứngdụngWeb 16 Hình I.3 Ứngdụng đa tầng J2EE 18 Hình I.4 Mơ hình ứngdụng Browser/Server 19 Hình 1.5 Cơ chế hoạt động JSP 20 Hình II.1 Mơ hình kiến trúc ứngdụngWeb 23 Hình II.2 Mơ hình kiến trúc ứngdụngWeb 24 Hình II.3 Mơ hình MVC kiến trúc ứngdụngWeb 25 Hình II.4 Cơ chế tương tác thành phần mơ hình MVC 26 Hình II.5 Vòng đời request ứngdụng Struts2 28 Hình II.6 Persistence layer kiến trúc phân tầng .39 Hình II.7 Kiến trúc hệ thống Hibernate 40 Hình II.8 Các module Spring 47 Hình III.1 Các nhóm sử dụng hệ thống 53 Hình III.2 Sơ đồ phân rã chức 54 Hình III.3 Use Case Admin quản lý Advertiser .55 Hình III.4 Use Case Admin quản lý Advertisment 56 Hình III.5 Use Case Admin quản lý Candidate .57 Hình III.6 Use Case Admin quản lý Company 58 Hình III.7 Use Case Admin quản lý News 59 Hình III.8 Use Case Company quản lý Profile 60 Hình III.9 Use Case Company quản lý tin tức 60 Hình III.10 Use Case Company quản lý thơng tin tuyểndụng 61 Hình III.11 Use Case Advertiser quản lý quảng cáo .62 Hình III.12 Use Case Candidate quản lý Profile .62 Hình III.13 Use Case Candidate quản lý Friends 63 Hình III.14 Use Case Candidate quản lý Blog 64 Hình III.15 Sơ đồ diễn tiến chức LogIn 67 Hình III.16 Sơ đồ diễn tiến chức LogOut .67 Hình III.17 Sơ đồ diễn tiến chức Add News 68 Hình III.18 Sơ đồ diễn tiến chức Edit News 68 Hình III.19 Sơ đồ diễn tiến chức Delete News .69 Hình III.20 Sơ đồ diễn tiến chức Edit Profile 69 Hình III.21 Sơ đồ diễn tiến chức Add User .70 Hình III.22 Sơ đồ diễn tiến chức Edit User 70 Hình III.23 Sơ đồ diễn tiến chức Delete User 71 Hình III.24 Sơ đồ diễn tiến chức Company Search Candidate .71 Hình III.25 Sơ đồ diễn tiến chức Company bookmarks Candidate .72 Hình III.26 Sơ đồ diễn tiến chức Blog Individual 72 Hình III.28 Các gói module 82 Hình III.29 Module admin .83 Hình III.30 Module User 83 Hình III.31 Mơ hình thiết kế Module theo Struts 84 Hình III.32 Mơ hình thiết kế tầng Controller 88 Hình III.33 Màn hình Login 89 Hình III.34 Màn hình giao diện .89 Hình III.35 Màn hình hiển thị danh sách 90 Hình III.36 Màn hình thêm mới, cập nhật 90 Hình III.37 Màn hình giao diện trang chủ .91 DANH MỤC BẢNG Bảng 1: Danh sách chức 66 Bảng 2: Bảng Account .74 Bảng 3: Bảng Role 74 Bảng 4: Bảng AccountRole .74 Bảng 5: Bảng Function 75 Bảng 6: Bảng RoleFunction 75 Bảng 7: Bảng Advertiser 75 Bảng 8: Bảng Adver_Content 76 Bảng 9: Bảng Job_Type 76 Bảng 10: Bảng Company 77 Bảng 11: Bảng Province 77 Bảng 12: Bảng Category 77 Bảng 13: Bảng News .78 Bảng 14: Bảng Rec_Notice .79 Bảng 15: Bảng Occupation 79 Bảng 16: Bảng Candidate 80 Bảng 17: Bảng Degree .80 Bảng 18: Bảng Candidate_Degree 80 Bảng 19: Bảng Friend 81 Bảng 20: Bảng Blog 81 Bảng 21: Bảng Blog_Comment .81 Bảng 22: Bảng Work_Type .82 UPD_DTTM DATETIME Ngày cập nhật Bảng 14: Bảng Rec_Notice III.3.1.2.14 Bảng Occupation Tên trường Kiều DL Độ dài INT 11 Mã nghề nghiệp OCCUPATION_CODE VARCHAR 10 Mã viết tắt NAME VARCHAR 255 Tên nghề nghiệp DESCRIPTION VARCHAR 1000 Mô tả nghề nghiệp PẢRENT_ID INT 11 Mã danh mục cha REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật OCCUPATION_ID PK FK О Ý nghĩa Bảng 15: Bảng Occupation III.3.1.2.15 Bảng Candidate Tên trường CANDIDATE_ID OCCUPATION_ID FULLNAME SEX BIRTHDAY PK FK О О Kiều DL Độ dài INT 11 Mã ứng viên INT 11 Mã nghề nghiệp VARCHAR 100 Tên đầy đủ ứng viên TINYINT Giới tính: - Nam; - Nữ DATE Ý nghĩa Ngày sinh MOBILE VARCHAR 12 Số điện thoại di động PHONE VARCHAR 15 Số điện thoại cố định NATIVE_COUNTRY VARCHAR 200 Quê quán ứng viên CONTACT_ADDRESS VẢRCHAR 300 Địa liên hệ EMAIL VARCHAR 100 Email ứng viên WEBSITE VARCHAR 255 Website ứng viên BLOG_URL VARCHAR 255 Địa Blog ứng viên FOREIGN_LEVEL VARCHAR 500 Trình độ ngoại ngữ WORK_HISTORY TEXT Các công ty trước làm việc PROJECT_HISTORY TEXT Các dự án lớn tham gia SPEC_SKILL VARCHAR 1000 Kỹ chun mơn HOBBY VARCHAR 1000 Sở thích cá nhân SELF_EXPRESSIVE TEXT Tự bạch thân WORK_EXPECT TEXT Công việc mong muốn tương lai AMBITION TEXT Tham vọng, hoài bão SALARY_REQUIREMENT VARCHAR 500 Yêu cầu mức lương WORK_REQUIREMENT VARCHAR 1000 Yêu cầu công việc IMG1 VARCHAR 255 Ảnh cá nhân IMG2 VARCHAR 255 Ảnh cá nhân IMG3 VARCHAR 255 Ảnh cá nhân IS_PUBLISH TINYINT Có cơng khai thơng tin CV không ? REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Bảng 16: Bảng Candidate III.3.1.2.16 Bảng Degree Tên trường Kiều DL Độ dài INT 11 Mã cấp NAME VARCHAR 100 Tên cấp DESCRIPTION VARCHAR 1000 Mô tả cấp REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật DEGREE_ID PK FK О Ý nghĩa Bảng 17: Bảng Degree III.3.1.2.17 Bảng Candidate_Degree Tên trường PK FK Kiều DL Độ dài Ý nghĩa DEGREE_ID О О INT 11 Mã cấp CANDIDATE_ID О О INT 11 Mã ứng viên NAME VARCHAR 100 Tên chuyên ngành cấp DESCRIPTION VARCHAR 1000 Mô tả chuyên ngành cấp REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Bảng 18: Bảng Candidate_Degree III.3.1.2.18 Bảng Friend Tên trường FRIEND_ID PK О FK Kiều DL Độ dài INT 11 Ý nghĩa Mã ID bạn bè CANDIDATE_ID О INT 11 Mã ứng viên FRIEND_OF_CANDIDATE_ID INT 11 Mã bạn ứng viên REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Bảng 19: Bảng Friend III.3.1.2.19 Bảng Blog Tên trường Kiều DL Độ dài INT 11 Mã Blog INT 11 Mã ứng viên TITLE VARCHAR 255 Tiêu đề Blog IMAGE VARCHAR 255 Ảnh Blog BLOG_ID PK FK О CANDIDATE_ID О CONTENT TEXT Ý nghĩa Nội dung Blog IS_DISPLAY TINYINT Trạng thái có hiển thị hay khơng ? BLOG_DATE DATETIME REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Ngày viết Blog Bảng 20: Bảng Blog III.3.1.2.20 Bảng Blog_Comment Tên trường PK BLOG_COMMENT_ID FK Kiều DL Độ dài INT 11 Mã Blog Comment INT 11 Mã Blog INT 1000 VARCHAR 100 О BLOG_ID О CANDIDATE_COMMENT_ID COMMENT_NAME CONTENT TEXT Ý nghĩa Mã ứng viên viết comment Tên người viết comment Nội dung viết comment REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Bảng 21: Bảng Blog_Comment III.3.1.2.21 Bảng Work_Type Tên trường PK FK Kiều DL Độ dài Ý nghĩa WORK_TYPE_ID О INT 11 Mã loại hình cơng việc NAME INT 11 Tên loại hình cơng việc DESCRIPTION INT 1000 REG_USER INT 11 ID người đăng ký UPD_USER INT 11 ID người cập nhật REG_DTTM DATETIME Ngày đăng ký UPD_DTTM DATETIME Ngày cập nhật Mơ tả loại hình cơng việc Bảng 22: Bảng Work_Type III.3.2 Thiết kế module Mỗi trang Web thiết kế xâydựng từ module riêng biệt Các module thiết kế dựa framework Struts Hibernate, sau chúng tích hợp lại với để tạo nên chức riêng trang Hệ thống tuyểndụng chia làm module chính, module quản trị module người sử dụng Sơ đồ gói module sau: Gói module : Hình III.28 Các gói module Module Admin : Hình III.29 Module admin Module User : Hình III.30 Module User III.3.2.1 Thiết lập mơi trường lập trình Mơi trường lập trình thiết lập cho hệ thống sau: - Windows XP, Windows Server 2003 - Web Server : Tomcat 6.0.14 phiên - Java JDK 1.6 - J2EE 1.4 - IDE Eclipse 3.3 (hoặc MyEclipse 6.0) - MySQL 5.0.45 - Framework Library : Struts 2.0.11, Hibernate 3.1, Spring 2.5 - UML Design : JUDE Comunity 5.2.1 III.3.2.2 Mơ hình thiết kế module Để thiết kế module, sử dụng mơ hình MVC mơ tả : Hình III.31 Mơ hình thiết kế Module theo Struts Trong đó: Tầng View : Đây thành phần hiển thị phía người dùng, giúp người dùng tương tác với hệ thống, thể cho chức module chương trình Đây phần lập trình JSP, CSS, Javascript, Ajax, TagLib … Tầng Controller : Đây phần nghiệp vụ xử lý hệ thống Có thể nói, “trái tim” hệ thống Controller tiếp nhận yêu cầu từ phía người dùng, lựa chọn điều hướng action, kết hợp với tầng Model xử lý yêu cầu hiển thị kết tầng View tới người sử dụng Tầng Model : Đó lớp mơ hình hóa sở liệu Thơng thường JavaBean ánh xạ từ bảng sở liệu mơ hình hóa với quan hệ hướng đối tượng Các lớp tạo với hỗ trợ công cụ Hibernate III.3.2.3 Thiết kế tầng Model Tầng Model bao gồm ba thành phần chính: Các lớp Java (JavaBean): ánh xạ từ bảng sở liệu Đây lớp Java, chứa thuộc tính tương ứng với cột bảng phương thức setter getter Các file xml định nghĩa ánh xạ (*.hbm.xml): Đó file xml mô tả việc ánh xạ từ bảng sở liệu thành đối tượng Java, mơ tả rõ chuyển đổi tên trường bảng thành tên thuộc tính đối tượng chuyển đổi kiểu liệu tương ứng File cấu hình ánh xạ sở liệu (hibernate.cfg.xml): Đây file chứa thông tin để kết nối tới sở liệu, bao gồm: tên sở liệu, tên username, password truy nhập, tên file định nghĩa ánh xạ thơng tin cấu hình khác Dưới ví dụ mơ tả thành phần (ở lấy ví dụ với bảng account bảng chứa thông tin truy nhập người dùng): Lớp JavaBean(Account.java): package vn.rec.domain; import java.util.Date; import java.util.HashSet; import java.util.Set; public class Account implements java.io.Serializable { // Fields private private private private Integer accountId; String loginName; String loginPassword; Byte status; // Constructors /** default constructor */ public Account() { } /** minimal constructor */ public Account(Integer accountId, String loginName, String loginPassword, Byte status) { this.accountId = accountId; this.loginName = loginName; this.loginPassword = loginPassword; this.status = status; } // Property accessors public Integer getAccountId() { return this.accountId; } public void setAccountId(Integer accountId) { this.accountId = accountId; } public String getLoginName() { return this.loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getLoginPassword() { return this.loginPassword; } public void setLoginPassword(String loginPassword) { this.loginPassword = loginPassword; } public Byte getStatus() { return this.status; } public void setStatus(Byte status) { this.status = status; } } File xml định nghĩa ánh xạ(Account.hbm.xml): File cấu hình(hibernate.cfg.xml): Hibernate Tools > root jdbc:mysql://localhost:3306/recruitment? useUnicode=true&characterEncoding=UTF-8 org.hibernate.dialect.MySQLDialect MySQL DB update 123456 com.mysql.jdbc.Driver true org.hibernate.transaction.JDBCTransactionFactory III.3.2.4 Thiết kế tầng View Tầng view bao gồm file CSS, JavaScript, file template JSP, Velocity FreeMarker… làm nhiệm vụ giao tiếp người dùng với hệ thống Đó thành phần giúp người dùng nhập liệu, gửi yêu cầu tới hệ thống lấy liệu xử lý tầng Controller để trả phía người dùng Các file JSP có sử dụng thư viện thẻ (TagLig) Struts2 JSTL để hỗ trợ xử lý hiển thị liệu III.3.2.5 Thiết kế tầng Controller Tầng Controller thiết kế bao gồm ba thành phần sau : Các lớp DAO (Data Access Object) : Đây lớp truy xuất liệu từ sở liệu thực dựa đối tượng JavaBean ánh xạ quan hệ (là tầng gần Database nhất) Việc truy xuất liệu bao gồm thao tác CRUD (Create,Retrive,Update,Delete) số thao tác nghiệp vụ khác Các lớp thực thi với hỗ trợ ngôn ngữ HQL quản lý transaction Spring framework Các lớp Service : Đây tầng nằm tầng DAO Các lớp tầng chủ yếu có nhiệm vụ thực chức nghiệp vụ hệ thống trực tiếp gọi lớp xử lý thao tác với sở liệu tầng DAO Các lớp Action : Đây tầng tầng nghiệp vụ, nằm tầng Service trực tiếp gọi phương thức lớp tầng Service để xử lý yêu cầu từ phía người dùng Có thể mơ tả cách bố trí thực thi tầng hình vẽ : Action Layer Service Layer DAO Layer Database Server Hình III.32 Mơ hình thiết kế tầng Controller Nguyên tắc thực thi : Các lớp thuộc tầng truy xuất đến lớp Ví dụ, Các lớp thuộc tầng Action truy xuất đến lớp thuộc tầng Service lớp thuộc tầng Service truy xuất đến lớp thuộc tầng DAO Khơng có thứ tự truy xuất ngược lại từ lên III.3.2.6 Các file cấu hình hệ thống Các file cần thiết cấu hình hệ thống bao gồm : File web.xml : Đây file cấu hình chung hệ thống, bao gồm thông tin việc sử dụng gói thư viện, định nghĩa khởi tạo file cấu hình khác, định dạng unicode, định nghĩa lọc bảo mật, dọn rác … File struts.xml : Đây file cấu hình Struts framework Nó khởi tạo Bean, số đặc biệt ánh xạ action từ phía người sử dụng đến lớp phương thức tương ứng cần xử lý sau điều hướng hiển thị đến tầng view File applicationContext.xml : Đây file cấu hình Spring framework Nó định nghĩa loại kết nối giao tiếp với sở liệu Ngồi ra, chứa thơng tin Bean hệ thống bao gồm bean DAO, Service phục vụ cho trình xử lý nghiệp vụ từ phía action File tiles.xml : Đây file cấu hình hỗ trợ cho việc sử dụng layout tầng view Việc sử dụng layout giúp chia trang Web thành thành phần nhỏ sử dụng lại thành phần chung Điều giúp giảm thiểu lượng code giúp cho việc lập trình trở nên ngắn gọn, đơn giản dễ bảo trì III.3.3 Thiết kế giao diện Web Đây giai đoạn thiết kế prototype cho trang Web Nội dungcông việc bao gồm xác định giao diện dạng bố cục, chức năng, trường hợp sử dụng liên kết trang tổng thể Web site III.3.3.1 Thiết kế giao diện Admin Giao diện hình Login Hình III.33 Màn hình Login Giao diện Hình III.34 Màn hình giao diện Giao diện hiển hiển thị danh sách HEADER Menu Function Management No Name Add … … … … Cancel … … … … First Prev … Next Last Total : 100 FOOTER Hình III.35 Màn hình hiển thị danh sách Giao diện thêm mới, cập nhật (Popup Windows) Hình III.36 Màn hình thêm mới, cập nhật III.3.3.2 Thiết kế giao diện người dùng Giao diện trang chủ : Hình III.37 Màn hình giao diện trang chủ KẾT LUẬN VÀ ĐÁNH GIÁ Kết đạt Đồ án đạt kết sau: Tìm hiểu cơngnghệStruts,Hibernate Spring, kết hợp với Ajax tạo thành tảng lập trình ứngdụngWeb Xâydựngứngdụngtuyểndụng với chức dựa côngnghệ Đánh giá Về mặt nghiên cứu công nghệ, sau hoàn thành đồ án tác giả nắm bắt đặc điểm, vai trò chúng xâydựngứngdụng Web, biết cách sử dụng tích hợp ba framework ứngdụng cụ thể Tuy nhiên, thời gian tìm hiểu có hạn nên nhiều tính kỹ thuật xử lý tác giả chưa nắm bắt Về xâydựng toán tuyển dụng, ứngdụng đạt số kết định Do thời gian hạn hẹp kiến thức người thiết kế nhiều hạn chế nên chương trình số module chưa hồn thiện số module xâydựng chưa tối ưu Hy vọng, thời gian tới, hệ thống xâydựng hoàn thiện tối ưu để đưa vào sử dụng Hướng phát triển: Hiện nay, côngnghệStruts,HibernateSpring phát triển mạnh mẽ sử dụng tương đối rộng rãi ứngdụng Web, đặc biệt ứngdụng có quy mô lớn, phức tạp Đây côngnghệ mã nguồn mở dựa ngôn ngữ Java Với phát triển mạnh mẽ côngnghệ tri thức, có nhiều cơngnghệWeb đời cạnh tranh với côngnghệ Tuy nhiên, Struts,HibernateSpring nhiều người yêu thích sử dụng rộng rãi nhiều ứngdụng khác Đồ án tập trung nghiên cứu côngnghệStruts,HibernateSpring áp dụngxâydựng toán tuyểndụng trực tuyến Đây toán hay mở rộng phát triển tương lai Với việc hoàn thiện chức mơ tả phân tích đồ án, ứngdụng triển khai thực tế đáp ứng nhiều nhu cầu cần thiết người sử dụng TÀI LIỆU THAM KHẢO Các tài liệu tham khảo : Struts in Action (Ted N Husted, Cedric Dumoulin, George Franciscus, David Winterfeldt) Struts Survival Guide (Srikanth Shenoy) Struts: The Complete Reference (James Holmes ) Jakarta Struts for Dummies (Mike Robinson, Ellen Finkelstein) Professional Jakarta Struts (James Goodwill, Richard Hightower) Apress - Beginning Apache Struts (Arnold Doray) Apress - Pro Apache Struts with Ajax (John Carnell, Rob Harrop, Kunal Mittal) Manning – Webwork in Action (Patrick Lightbody, Jason Carreira) Starting Struts (Ian Roughley) Apress – Expert Spring MVC and Web Flows (Seth Ladd, Keith Donald) Spring Reference (Document of www.springframework.org) Manning - Spring in Action 2007 (Craig Walls, Ryan Breidenbach) Spring Live (Matt Raible) Agile Java Development (Anil Hemrajani) Hibernate reference (Document of www.hibernate.org) Manning - Java persistence with Hibernate (Christian Bauer, Gavin King) Manning - Hibernate in Action (Christian Bauer, Gavin King) with Spring, Các trang Web tham khảo : http://www.struts.apache.org http://www.springframework.org http://www.hibernate.org http://www.roseindia.net http://www.java.sun.com/j2ee http://www.javavietnam.org http://www.java-source.net/open-source http://www.wikipedia.org http://www.blogjava.net Và nhiều trang diễn đàn blog khác Hibernate and Eclipse ... HIBERNATE, SPRING TRONG LẬP TRÌNH ỨNG DỤNG WEB II.1 Một số khái niệm lập trình ứng dụng Web II.1.1 Framework ? Ngày nay, trình xây dựng ứng dụng Web, có nhiều khung làm việc (framework) xây dựng. .. tiếng lĩnh vực lập trình ứng dụng Web dựa ngơn ngữ Java sử dụng theo mơ hình MVC Áp dụng cơng nghệ Struts, Hibernate, Spring Ajax để xây dựng chương trình ứng dụng tuyển dụng trực tuyến Với nội... trở thành phổ dụng cho tất ứng dụng Web I.3 Kiến trúc J2EE xây dựng ứng dụng Web I.3.1 Kiến trúc J2EE J2EE khung ứng dụng Web hoạt động hiệu mà công ty giới IBM, Oracle, Sun áp dụng hiệu dự án