Kiến trúc 1 và 2 JSP (model 1 & 2architecture) - phần 3 pps

29 200 0
Kiến trúc 1 và 2 JSP (model 1 & 2architecture) - phần 3 pps

Đ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

custom tag phải xác định “tên” biến đối tượng; Tên truy xuất cách gọi phương thức get[Attribute] thuộc tính (xem 2) Các tag có thuộc tính) Nếu giá trị biến kịch phụ thuộc vào đối tượng tag handler truy xuất đối tượng cách dùng pageContext.setAttribute(name, scope) Các giá trị tham số scope tóm tắc bảng sau: Phạm vi Có thể truy cập từ page Trang hành Thời gian sống Cho tới lời đáp gởi trở lại user yêu cầu chuyển tới trang request Trang hành trang include hay forward Cho tới lời đáp gởi trở lại user session Yêu cầu hành yêu cầu browser Đời sống phiên làm việc (session) application Bất kỳ yêu cầu tương lai từ ứng dụng Đời sống ứng dụng Ngoài việc cài đặt giá trị biến tag handler, phải định nghĩa lớp dẫn xuất từ lớp TagExtrInfo Lớp cung cấp thơng tin cho JSP container đặt tính của biến kịch bản, phải cài đặt phương thức getVariableInfo để trả mảng đối tượng VariableInfo chứa thông tin sau: tên biến, lớp biến, liệu biến có tham khảo tới giá trị đối tượng hay có, tính sẳn dùng biến Bảng sau mơ tả tính sẳn dùng biến kịch phương thức để xác lập xác lập lại giá trị biến Value Availability Methods NESTED Giữa start tag end tag Trong doInitBody doAfterBody tag handler cài đặt BodyTag; ngược lại doStartTag AT_BEGIN Từ start tag cuối trang Trong doInitBody, doAfterBody, doEndTag tag handler cài đặt BodyTag; ngược lại doStartTag doEndTag AT_END Sau end tag cuối trang Trong doEndTag Lớp tag handler sau lấy liệu từ JNDI lookup lưu trữ thuộc tính đối tượng pageContext với tên biến kịch Code 30: LookupTag.java public LookupTag extends TagSupport { private String type; private String name; public void setName(String name) { this.name = name; } public void setType(String type) { this type = type; } public int doStartTag() { return SKIP_BODY; } public int doEndTag() throws JspException { try { InitialContext context = new InitialContext(); Object obj = (Object)context.lookup(name); pageContext.setAttribute(getId(), obj); Code 30: LookupTag.java (tiếp theo) } catch(javax.naming.NamingException e) { throw new JspException("Unable to look up " + name + " due to " + e.getMessage()); } return EVAL_PAGE; } } Biến kịch định nghĩa lớp dẫn xuất từ lớp TagExtraInfo Do biến truyền vào thuộc tính tag nên truy xuất phương thức getAttributeString lớp TagData dùng để lấp đầy hàm tạo VariableInfo Để cho phép biến kịch dùng phần cịn lại trang phạm vi biến nên gán AT_END Code 31: LookupTagTei.java public class LookupTagTEI extends TagExtraInfo { public VariableInfo[] getVariableInfo(TagData data) { VariableInfo info1 = new VariableInfo( data.getAttributeString("id"), data.getAttributeString("type"), true, VariableInfo.AT_END); VariableInfo[] info = { info1 } ; return info; } } - TLD element Chúng ta cần phải báo cho JSP container biết nên dùng lớp TagExtraInfo để tạo biến kịch với phạm vi thích hợp Đoạn TLD có tên lookup.tld sau: Code 32: TLD file com.legiang.LookupTag com.legiang.LookupTagTEI name true false type true false - JSP page Code 33: JSP file Tag handler triệu gọi nào? Giao tiếp Tag định nghĩa qui ước truyền thông tag handler lớp cài đặt trang JSP Giao tiếp định nghĩa chu kỳ sống phương thức triệu gọi gặp phải start tag end tag action Lớp cài đặt trang JSP triệu gọi phương thức setPageContext, setParent, phương thức cài đặt thuộc tính trước gọi phương thức doStartTag Lớp bảo đảm phương thức release gọi tag handler trước kết thúc trang Ví dụ sau thực bước cách gọi tag handler Code 34: Cách thực tag handler khơng có BodyContent ATag t = new ATag(); t.setPageContext( ); t.setParent( ); t.setAttribute1(value1); t.setAttribute2(value2); t.doStartTag(); t.doEndTag(); t.release(); Giao tiếp BodyTag mở rộng từ giao tiếp Tag cách định nghĩa thêm phương thức cho phép tag handler truy cập vào thân Giao tiếp cung cấp ba phương thức mới: setBodyContent: tạo nội dung thân tag thêm vào tag handler doInitBody: gọi trước định trị thân tag DoAfterBody: gọi trước định trị thân tag Ví dụ: Code 35: Cách thực tag handler có BodyContent t.doStartTag(); out = pageContext.pushBody(); t.setBodyContent(out); /* thực khởi tạo cần thiết sau nội dung thân gán */ t.doInitBody(); t.doAfterBody(); /**/ /* Khi doAfterBody trả EVAL_BODY_TAG lặp lại phần định trị cho thân tag */ t.doAfterBody(); /**/ t.doEndTag(); t.pageContext.popBody(); t.release(); Phần II: Phân Tích – Thiết Kế – Cài Đặt Chương IV: I Phân Tích PHÂN TÍCH – THIẾT KẾ Đặt vấn đề Xuất phát từ nhu cầu thực tế quản lý công việc cacù cơng ty cịn nhiều nhược điểm, việc người quản lý cấp cao không nắm bắt thông tin, không trực tiếp quản lý tốc độ làm việc nhân viên phổ biến Hơn thời buổi kinh tế thị trường thời buổi công nghệ thông tin người có q nhiều cơng việc phải làm, họ khơng có thời gian rảnh rỗi để ngồi làm báo cáo cuối tuần đem nộp cho quản lý, họ muốn nhà biết cơng việc phải làm ngày gì?, họ muốn có khoảng thời gian dù ỏi để tranh thủ nghỉ ngơi Để phần tháo gỡ khó khăn, nhược điểm xuất phát từ yêu cầu thực tế số cơng ty chương trình QUẢN LÝ CÔNG VIỆC TRÊN WEB đời Trong khuôn khổ đồ tốt nghiệp đại học thời gian, kiến thức chuyên môn nghiệp vụ cịn hạn chế chắn khơng tránh khỏi sai sót Song với nổ lực nhằm hồn thành tốt cơng việc thời gian nghiên cứu thực không nhiều, lượng công việc tương đối lớn, trang thiết bị, tài liệu chưa đầy đủ trình độ hạn chế chắn đề tài có nhiều khiếm khuyết từ thực tế đến ý tưởng lập trình, mong lượng thứ bảo thêm Thầy, Cô Rất mong nhận đóng góp ý kiến chân thành từ thầy bạn để chương trình hồn thiện sớm đưa vào sử dụng thực tế Định nghĩa yêu cầu • Quản Lý - Phân công công việc cho nhân viên - Kiểm tra tiến độ thực - Đánh giá công việc - Thống kê - Giải đáp thắc mắc - Lập bảng đánh giá nhân viên biểu đồ - Tổng hợp báo cáo - Thiết lập chế độ làm việc trực tiếp hai nhân viên • Nhân Viên - Xem công việc giao - Báo cáo tiến độ thực theo ngày - Đề xuất cách giải cơng việc theo ngày - Đóng góp ý kiến xây dựng công ty - Báo cáo công việc thực xong - Xem đánh giá bên quản lý • Quản Trị Hệ Thống (Admin) - Tạo/Xố/Sữa user - Thêm/Xoá/Sữa quyền - Gán quyền cho user - Refresh database - Restore database - Cập nhật database Phạm vi đề tài Về Dữ Liệu Cho phép lưu trữ năm phát sinh liệu Dữ liệu cập nhật trực tuyến Về Giao Diện Hệ thống hoạt động môi trường Web Về Mạng Hoạt động môi trường mạng Intranet Về xử lý Thống kê Thiết lập chế độ làm việc hai nhân viên Lập báo cáo Làm tươi/ Phục hồi CSDL Mô hình xử lý quan niệm a) Sơ đồ ngữ cảnh b) Sơ đồ phân rã chức c) Sơ đồ hệ thống - Mức 1: - Mức 2: Phân rã từ xử lý 4_Phan Cong Phân rã từ xử lý 5_Cap Nhat CV Phân rã từ xử lý 6_Thong Ke Phân rã từ xử lý 9_Tong Hop Bao Cao Phân rã từ xử lý 13_Bao Cao Tien Do CV Phân rã từ xử lý 16_ Cap Nhat Permission Phân rã từ xử lý 19_ Cap Nhat User Phân rã từ xử lý 20_Gan Quyen Mơ hình liệu quan niệm Sơ đồ thực thể kết hợp (ERD): II Thiết Kế Thiết kế xử lý a) Sơ đồ hệ thống mức vật lý b) Các đơn vị thiết kế Cập nhật công việc < ngày time DIACHI Địa Text 50 PHAI Phái Bit Là số nguyên PHONE Điện Thoại Text USER NAME Tên Người Sử Dụng Text 16 PASS WORD Mật Khẩu Text 16 MABCN Mã Báo Cáo Ngày Text 10 BAO CAO NGAY Khố Chính (PK) MACV Mã Cơng Việc TIENDO Tiến Độ NGAY int >=1 Khoá Ngoại Ngày Date (FK) time Float >= ngày ngày GHICHU Ghi Chú DEXUAT Đề Xuất Ý Kiến WORKS MACV Text 80 Text 50 Mã Công Việc Int >=1 Khố >=1 Khố Ngoại (FK) Chính (PK) MADA Mã Đề Aùn Int MADG Mã Đánh Giá Int TENCV Tên Công Việc Khoá Ngoại (FK) >=1 Text 20 NOI DUNG Nội Dung DAXONG DEAN Text 100 Đã Xong MADA Bit Mã Đề n Int >=1 Khố Chính (PK) TENDA Tên đề Aùn Text 30 DIA DIEM Địa Điểm Text 40 XEP LOAI MAXL Mã Xếp Loại Int >=1 XEPLOAI Xếp Loại Text 30 GHICHU Ghi Chú Khố Chính (PK) Text 80 PHAN CONG MANV Mã Nhân Viên Text Khố Ngoại (FK) MACV Mã Cơng Việc Int NGAYBD Ngày Bắt Đầu Date (FK) time NgayBD > Ngay KT Ngày THIET LAP Thiết lập Bit >=1 Khoá Ngoại NGAYKT time Ngày Kết Thúc NgayKT > Ngay BD Date > Ngày GROUPS MA GROUP Mã Nhóm Int Tên Nhóm Text 30 >=1 TEN GROUP Khố Chính (PK) TRG GROUP Trưởng Nhóm NGAYNC Text Ngày Nhận Chức Date time GROUPS_PER MAPER Mã Quyền Int >=1 Khố Chính (PK) MA GROUP Mã Nhóm Int >=1 Khố Chính (PK) MAPER Mã Quyền Int >=1 PERMI SIONS (PK) TENPER Text 20 GHICHU c) Tên Quyền Ghi Chú Text 80 Các ràng buộc toàn vẹn (RB1) MAGY khố GOPY (RB2) MAFILE khố FILES Khố Chính (RB3) MABCTH khố BAOCAOTONGHOP (RB4) MADG khố DANHGIA (RB5) MANV khố NHANVIEN (RB6) MABCN khố BAOCAONGAY (RB7) MACV khố WORKS (RB8) MADA khố DEAN (RB9) MAXL khố XEPLOAI (RB10) MANV&MACV khố PHANCONG (RB11) MAPER khố PERMISSION (RB12) MAGROUP khố GROUPS (RB13) MAPER & MAGROUP khố GROUP_PER (RB14) MANV khố ngoại GOPY tham chiếu từ NHANVIEN (RB15) MABC khoá ngoại FILES tham chiếu từ BAOCAONGAY (RB16) MACV khóa ngoại BAOCAOTONGHOP tham chiếu từ WORKS (RB17) MAXL khoá ngoại DANHGIA tham chiếu từ XEPLOAI (RB18) MAGROUP khoá ngoại NHANVIEN tham chiếu từ GROUPS (RB19) MACV khoá ngoại BAOCAONGAY tham chiếu từ WORKS (RB20) MADG khoá ngoại WORKS tham chiếu từ DANHGIA (RB21) MADA khoá ngoại WORKS tham chiếu từ DEAN (RB22) MANV khoá ngoại PHANCONG tham chiếu từ NHANVIEN (RB23) MACV khoá ngoại PHANCONG tham chiếu từ WORKS (RB24) MAPER & MAGROUP khoá ngoại GROUP_PER tham chiếu từ GROUPS & PERMISSION (RB25) Ngày nhận chức > Ngày sinh + 24 (RB26) Ngày kết thúc >= Ngày bắt đầu (RB27) Một công việc có nhiều nhân viên thời điểm có nhân viên thực cơng việc d) Bảng tầm ảnh hưởng Works Nhan Vien Phan Cong Gop Y Files Bao Cao Ngay Bao Cao Tong Hop Danh Gia Xep Loai Groups Groups _Per Permissions DeAn T X T S X T S X T S X T S X T S X T S X T S X T S X T S X T S X T RB1 S S X T S X X RB2 X RB3 X RB4 X RB5 X RB6 X RB7 X RB8 X RB9 Thiết kế chương trình Sơ đồ cấu trúc chương trình Thiết kế giao diện Các Site map (thay cho sơ đồ dịch chuyển trạng thái) Chương V I : TRIỂN KHAI ỨNG DỤNG Các phần mềm cần thiết Đây ứng dụng độc lập nên chạy hệ điều hành khác hệ thống Windows, Unix, … Do cài đặt hệ điều hành thuộc hệ thống phần mềm sau: - Jakarta-Tomcat Servlet/JSP container Thật theo lý thuyết, ứng dụng chạy container hay web server có hổ trợ Servlet/JSP chúng tơi chưa thử nghiệm container khác Jakarta-Tomcat 3.1 - JDK 1.2 trở lên - MySQL Server 3.23.27 beta Hiện 4.0 - JDBC Driver loại bốn hổ trợ cho MySQL Server: mm.msql-2.0.4 - Xalan Xerces để chuyển XML thành HTML cách sử dụng XSLT - Một web browser sau: Netscape, Inernet Explorer, Opera tất từ 4.0 trở lên Ứng dụng thử nghiệm web browser - VietKey gõ tiếng việt khác II Triển khai ứng dụng web Ứng dụng web (ứng dụng server-side java) tập trang JSPs, Servlets, HTML tài nguyên khác gói gọn gói chạy nhiều platform từ nhiều nhà sản xuất khác Ứng dụng Web xác định đường dẫn đặt biệt web server Một ứng dụng web gồm thành phần sau: - JavaServer Pages - Servlets - Các lớp tiện ích - Các tài xml, html, … - Enterprise JavaBean (EJB) ứng dụng xử lý phân tán - Các media images, sounds, … - Các đối tượng client javabeans, applets, lớp, … Mơ hình hoạt động The Web Work The Web Work hoạt động dựa mơ hình ba lớp (3 layer) Sau mơ hình ba lớp tổng qt ứng dụng Web Trên Java hổ trợ hai kỷ thuật xử lý Web động Servlet JSP Do với kỷ thuật tơi có chi tiết hai mơ hình (có thể nhiều hơn) dựa mơ hình ba lớp tổng quát gọi Kiến Trúc Mơ Hình Một Mơ Hình Hai Ứng dụng sử dụng hai mơ hình web Java Kiến Trúc Mơ Hình Một Mơ Hình Hai mà tranh luận sites nỗi tiếng javaworld.com, developer.com, weblogic.com Trong mơ hình một, trang JSP đảm nhận việc xử lý yêu cầu trả kết cho client Ở có tách biệt xử lý thị tất truy cập liệu Beans thực Mơ hình thích hợp cho ứng dụng đơn gian, thích hợp với trang JSP có nhiều mã HTML Xem hình vẽ sau: Trong mơ hình kiến trúc hai, kết hợp hai kỷ thuật xử lý web động Servlet JSP Mơ hình thích với với ứng dụng có xử lý phức tạp Ở đây, Servlets hoạt động trạm điều khiển (controller) chịu trách nhiệm xử lý yêu cầu khởi tạo components (Beans, Custom Tag) cho JSP sử dụng Mô hình tách phần xử lý trình bày rỏ ràng III Hướng dẫn sử dụng Sau cài đặt ứng dụng, bạn mở browser, address bar gõ địa chỉ: htttp://servername:port/work/html/showLogin.html - servername: tên server bạn, máy cục thường localhost - port: số cổng mà web server mở Nếu số port 80 thơng số port khơng cần nhập Nếu bạn sử dụng thường xuyên ứng dụng, bạn nên gán giá trị mật định cho browser với địa Khi bạn mở browser, ứng dụng tự động gọi mà bạn không cần phải gõ địa address bar Thực công việc ba web browser: Internet Explorer, Netscape, Opera sau: - Internet Explorer: Vào Tools menu, chọn Internet Options Trong hộp thoại Internet Options, chọn General tab, khung Home page có Address textbox cho phép bạn gõ địa - Netscape: Vào Edit menu, chọn Preferences… Trong hộp thoại Preferences, chọn navigator hộp thoại category, trang Navigator, chọn Home page button, khung Home Page có Location textbox nhập vào địa - Opera: Vào Navigation menu, chọn Set home page…, input box cho chép bạn nhập địa vào KẾT LUẬN Ứng dụng đáp ứng yêu cầu đề giai đoạn phân tích thiết kế hệ thống Ứng dụng kết hợp công nghệ độc lập JSP, XML, XSLT, MySQL Server chạy nhiều nền, nhiều Web Server nhiều Web Broswer khác Về sở liệu, sơ đồ thực thể kết hợp đạt dạng chuẩn ba Ứng dụng sử dụng hai mơ hình web “Kiến Trúc Mơ Hình Một Hai” – “JSP Model and Architecture” HƯỚNG PHÁT TRIỂN Các hướng phát triển sau làm cho ứng dụng hoàn thiện - Mở rộng ứng dụng với quy mơ lớn hơn, có khả trao đổi liệu xử lý với ứng dụng khác - Phát triển ứng dụng để download files báo cáo client - Quản lý hình ảnh liên quan công việc cho ứng dụng sinh động - Dùng DOM xử lý XML client - Cài đặt ràng buột toàn vẹn database server phiên hệ quản trị sở liệu MySQL (phiên 4.0) Do phiên (đang sử dụng MySQL 3.23.27) khơng hổ trợ khố ngoại, check, rule trigger DANH SÁCH WEB SERVERS HỔ TRỢ JSP Để chạy JSP cần Web Server sau Hãy xem hướng dẫn cài đặt, nơi đặt JSP files, … để thực thi Web Servers có đầy đủ Web Server download Tên Web Servers Thuộc Tổ Chức / Công Ty Trang Web Jakarta Tomcat Apache Org http://jakarta.apache.org/ JavaServer Web Developmet Kit (JSWDK) Sun Micro system http://java.sun.com/products/servlet/download.html JRun Allaire Inc http://www.allaire.com/products/jrun/ ServletExec New Atlanta http://newatlanta.com/ Lite WebServer Gefion Software http://www.gefionsoftware.com/ Java Web Server Sun Micro system http://www.sun.com/software/jwebserver/try/ WebSphere IBM Corp http://www.ibm.com/ Resin Caucho Technology http://www.caucho.com/ BẢNG THUẬT NGỮ action Một element trang JSP tác động lên đối tượng ngầm định đối tượng server-side khác định nghĩa biến kịch (xem element) custom action Một action định nghĩa linh hoạt mô tả thư viện tag tập lớp java đưa vào trang JSP taglib directive declaration Một scripting element mà khai báo method, biến, hai trang JSP Có cú pháp (xem scripting element) directive Một element trang JSP có nhiệm vụ hướng dẫn JSP container thông dịch vào thời gian runtime Có cú pháp (xem JSP container scripting element) element Trình thơng dịch JSP cơng nhận element thành phần trang JSP Một element directive, action, scripting element Element bắt đầu với start tag, nội dung end tag, khơng có nội dung dùng cú pháp empty tag expression Một scripting element chứa biểu thức ngôn ngữ java đặt vào đối tượng ngầm định out Có cú pháp implicit object Một đối tượng server-side định nghĩa JSP container ln có sẳn trang JSP mà khơng cần khai báo Có đối tượng request, response, pageContext, session, application, out, config, page, exception JSP container Một thực thể cấp hệ thống cung cấp hoạt động, quản lý chu trình sống cho thành phần (conponent) JSP Servlet JSP page implementation class Một lớp ngơn ngữ lập trình java, cụ thể Servlet, trình bày vào thời gian runtime trang nhận đối tượng request trả đối tượng response Lớp cài đặt trang dùng dịch vụ JSP container, gồm Servlet API JSP API persistent Một đối tượng serialization vào đĩa thiết bị lưu trữ khác Persistent có dạng files, RDBMS (Relational database management systems), ODBMS (Object database management systems) reflection Là chế cho phép mã Java tìm thơng tin trường, phương thức hàm tạo lớp tải scripting element Là declaration, scriptlet hay expression, đặt tả JSP định nghĩa thứ theo cú pháp tag Toàn nội dung ngữ cảnh viết theo ngôn ngữ java scriptlet Một scripting element chứa đoạn mã ngôn ngữ kịch trang JSP JSP v1.2 phiên hổ trợ ngôn ngữ java trang JSP Có cú pháp Tuy nhiên có số JSP container hổ trợ ngơn ngữ javascript RESIN serialization Là tiến trình lưu trữ toàn đối tượng vào đĩa thiết bị lưu trữ khác Ngược lại, tiến trình phục hồi đối tượng gọi deserialization servlet Một kỹ thuật server-side viết Java, JSP phát triển dựa tảng servlet tag Gồm đoạn văn nằm cặp dấu , có tên, thuộc tính Có ba loại tag: start tag, end tag, empty tag Ví dụ: content tag handler Một lớp java cài đặt giao tiếp Tag TagBody mà trình bày vào lúc thời gian runtime custom action tag library Một tập custom action mô tả mô tả thư viện tag (tag library descriptor) lớp java tag library descriptor Một tài liệu XML mô tả thư viện tag transient Ngược lại với persistent, hầu hết đối tượng nhớ gọi transient, có nghĩa chúng chết tham chiếu chúng khỏi phạm vi tắc nguồn điện TÀI LIỆU THAM KHẢO Tên Tài Liệu Tác Giả Năm Loại Tài Liệu Ach1 Servlets and JSP Marty Hall JSP JavaBeans Framework By IBM 2000 Sách 2000 Web site Tag Libraries Tutorial (v 1.0) Sun Microsystem 2000 Web site Xalan 2.0 & Xerces 1.3 (API) By apache.org 2001 Web site XML and Java Hiroshi Maruyama 1999 Sách XML Professional Didier Martin2000 Sách Luận văn tốt nghiệp Các khóa trước Web Books CD Rom Giáo trình lý thuyết tập Java Nguyễn Tiến Dũng (Chủ Biên) 1999 Sách Lập trình ứng dụng Web với JSP/ Servlet Nguyễn Phương Lan – Hoàng Đức Hoàng 2001 Sách Java Lập Trình Cơ Sở Dữ Liệu Hồi 2001 Sách Nguyễn Tiến Nguyễn Văn Tâm Nguyễn Văn ... trợ Servlet /JSP chưa thử nghiệm container khác Jakarta-Tomcat 3 .1 - JDK 1. 2 trở lên - MySQL Server 3 . 23 .27 beta Hiện 4.0 - JDBC Driver loại bốn hổ trợ cho MySQL Server: mm.msql -2 . 0.4 - Xalan Xerces... Ach1 Servlets and JSP Marty Hall JSP JavaBeans Framework By IBM 20 00 Sách 20 00 Web site Tag Libraries Tutorial (v 1. 0) Sun Microsystem 20 00 Web site Xalan 2. 0 & Xerces 1. 3 (API) By apache.org 20 01. .. XEPLOAI (RB10) MANV&MACV khố PHANCONG (RB 11) MAPER khố PERMISSION (RB 12) MAGROUP khố GROUPS (RB 13) MAPER & MAGROUP khố GROUP_PER (RB14) MANV khoá ngoại GOPY tham chiếu từ NHANVIEN (RB15) MABC khoá

Ngày đăng: 09/08/2014, 08:20