intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Le Nhu | Ngày: | Loại File: PDF | Số trang:29

79
lượt xem
5
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

custom tag phải xác định “tên” của biến đối tượng; Tên này có thể truy xuất bằng cách gọi phương thức get[Attribute] của thuộc tính (xem 2) Các tag có thuộc tính). Nếu giá trị của biến kịch bản phụ thuộc vào đối tượng hiện tại trong tag handler thì nó có thể truy xuất đối tượng này bằng cách dùng pageContext.setAttribute(name, scope). Các giá trị của tham số scope được tóm tắc trong bảng sau: Phạm vi Có thể truy cập từ Thời gian sống page Trang hiện hành chuyển tới trang mới request Cho tới khi lời đáp gởi trở lại...

Chủ đề:
Lưu

Nội dung Text: Kiến trúc 1 và 2 JSP (model 1 & 2architecture) - phần 3

  1. custom tag phải xác định “tên” của biến đối tượng; Tên này có thể truy xuất bằng cách gọi phương thức get[Attribute] của thuộc tính (xem 2) Các tag có thuộc tính). Nếu giá trị của biến kịch bản phụ thuộc vào đối tượng hiện tại trong tag handler thể truy xuất đối tượng này bằng cách dùng thì nó có pageContext.setAttribute(na me, scope). Các giá trị của tham số scope được tóm tắc trong bảng sau: Phạm vi Có thể truy cập từ Thời gian sống page Trang hiện hành Cho tới khi lời đáp gởi trở lại user hoặc yêu cầu được chuyển tới trang mới Trang hiện hành và bất kỳ trang được include hay forward nào request Cho tới khi lời đáp gởi trở lại user Yêu cầu hiện hành và bất kỳ yêu cầu tiếp theo trong cùng browser session Đời sống của một phiên làm việc (session) Bất kỳ yêu cầu hiện tại và tương lai nào từ cùng một ứng dụng application Đời sống của một ứng dụng Ngoài việc cài đặt giá trị của biến trong tag handler, chúng ta c òn phải định nghĩa một lớp dẫn xuất từ lớp TagExtrInfo. Lớp này cung cấp thông tin cho JSP container về đặt tính của của biến kịch bản, phải cài đặt phương thức getVariableInfo để trả về một mảng các đối tượng VariableInfo chứa các thông tin sau: tên biến, lớp của biến, liệu biến này có tham khảo tới một giá trị đối tượng mới hay đã có, tính sẳn dùng của biến này.
  2. Bảng sau mô tả tính sẳn dùng của biến kịch bản và các phương thức để xác lập và xác lập lại giá trị của biến. Value Availability Methods Giữa start tag và end tag. Trong doInitBody và doAfterBody đối NESTED với tag handler cài đặt BodyTag; ngược lại trong doStartTag. AT_BEGIN Từ start tag cho đến cuối trang. Trong doInitBody, doAfterBody, và doEndTag đối với tag handler cài đặt BodyTag; ngược lại trong doStartTag và doEndTag. Sau end tag cho tới cuối trang. AT_END Trong doEndTag. Lớp tag handler sau lấy dữ liệu từ JNDI lookup được lưu trữ như là thuộc tính của đối tượng pageContext cùng với tên của biến kịch bản. 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() {
  3. 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 bản sẽ được định nghĩa trong lớp dẫn xuất từ lớp TagExtraInfo. Do biến được truyền vào như các thuộc tính của tag nên sẽ được truy xuất bởi phương thức getAttributeString của lớp TagData và dùng để lấp đầy hàm tạo của VariableInfo. Để cho phép biến kịch bản được dùng trong phần còn lại của trang thì phạm vi của biến nên gán bằng AT_END. Code 31: LookupTagTei.java public class LookupTagTEI extends TagExtraInfo { public VariableInfo[] getVariableInfo(TagData data) {
  4. 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ên dùng lớp TagExtraInfo để tạo ra biến kịch bản với phạm vi thích hợp. Đoạn TLD có tên lookup.tld như sau: Code 32: TLD file ... com.legiang.LookupTag com.legiang.LookupTagTEI name true false
  5. type true false ... - JSP page Code 33: JSP file ... Tag handler được triệu gọi như thế nào? 4. Giao tiếp Tag định nghĩa một qui ước truyền thông cơ bản giữa tag handler và lớp cài đặt trang JSP. Giao tiếp này định nghĩa chu kỳ sống và các phương thức được triệu gọi khi gặp phải start tag và end tag của một action. Lớp cài đặt trang JSP triệu gọi các phương thức setPageContext, setParent, và các phương thức cài đặt thuộc tính trước khi gọi phương thức doStartTag. Lớp này
  6. cũng bảo đảm rằng phương thức release sẽ được gọi trong tag handler trước khi kết thúc trang. Ví dụ sau thực hiện từng bước cách gọi tag handler. Code 34: Cách thực hiện 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 bằng cách định nghĩa thêm các phương thức cho phép tag handler truy cập vào thân của nó. Giao tiếp này cung cấp ba phương thức mới: setBodyContent: tạo nội dung của thân tag và thêm vào tag handler. doInitBody: được gọi trước khi định trị thân của tag. DoAfterBody: được gọi trước khi định trị thân của tag. Ví dụ: Code 35: Cách thực hiện tag handler có BodyContent t.doStartTag(); out = pageContext.pushBody(); t.setBodyContent(out);
  7. /* thực hiện các khởi tạo cần thiết sau khi nội dung của thân đ ược gán */ t.doInitBody(); t.doAfterBody(); /**/ /* Khi doAfterBody trả về EVAL_BODY_TAG chúng ta 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: PHÂN TÍCH – THIẾT KẾ I. Phân Tích. Đặt vấn đề. 1. Xuất phát từ nhu cầu thực tế trong quản lý công việc ở cacù công ty hiện nay còn nhiều nhược điểm, việc người quản lý ở cấp càng cao càng không nắm bắt thông tin, không trực tiếp quản lý được tốc độ làm việc của nhân viên mình là khá phổ biến. Hơn nữa trong thời buổi kinh tế thị trường thời buổi của công nghệ thông tin mỗi con người có quá 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 rồi cuối tuần đem nộp cho quản lý, họ muốn được ở nhà nhưng vẫn biết công việc của mình phải làm trong ngày là gì?, họ muốn có một khoảng thời gian dù ít ỏi để tranh thủ nghỉ ngơi.
  8. Để một phần nào tháo gỡ các khó khăn, nhược điểm và xuất phát từ các yêu cầu thực tế của một số công ty chương trình QUẢN LÝ CÔNG VIỆC TRÊN WEB đã được ra đời. Trong khuôn khổ của một đồ tốt nghiệp đại học do thời gian, các kiến thức nhất là về chuyên môn nghiệp vụ còn hạn chế chắc chắn không tránh khỏi những sai sót. Song với sự nổ lực hết sức nhằm hoàn thành tốt công việc nhưng do thời gian nghiên cứu thực hiện 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 đủ và trình độ hạn chế cho nên chắc chắn đề tài này sẽ có ít nhiều khiếm khuyết từ thực tế đến ý t ưởng lập trình, mong được sự lượng thứ và chỉ bảo thêm của các Thầy, Cô. Rất mong nhận được sự đóng góp ý kiến chân thành từ thầy cô và các bạn để chương trình hoàn thiện hơn sớm được đưa vào sử dụng thực tế. Định nghĩa các yêu cầu. 2. Quản Lý • Phân công công việc cho từng nhân viên. - Kiểm tra tiến độ thực hiện. - Đá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 bằng biểu đồ. - Tổng hợp báo cáo. - Thiết lập chế độ làm việc trực tiếp giữa hai nhân viên. - • Nhân Viên Xem các công việc được giao. -
  9. Báo cáo tiến độ thực hiện theo ngày. - Đề xuất cách giải quyết 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 hiện xong. - Xem các đánh giá của bên quản lý. - Quản Trị Hệ Thống (Admin) • Tạo/Xoá/Sữa user. - Thêm/Xoá/Sữa các quyền. - Gán quyền cho user. - - Refresh database. - Restore database. Cập nhật database. - Phạm vi đề tài. 3. Về Dữ Liệu Cho phép lưu trữ trong một năm phát sinh dữ liệu Dữ liệu cập nhật trực tuyến Về Giao Diện Hệ thống hoạt động trên môi trường Web Về Mạng Hoạt động trong môi trường mạng Intranet Về xử lý Thống kê Thiết lập chế độ làm việc giữa hai nhân viên
  10. Lập báo cáo Làm tươi/ Phục hồi CSDL Mô hình xử lý quan niệm. 4. Sơ đồ ngữ cảnh. a) Sơ đồ phân rã chức năng. b) Sơ đồ hệ thống. c) 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 dữ liệu quan niệm. 5. Sơ đồ thực thể kết hợp (ERD): Thiết Kế. II. Thiết kế xử lý. 1. Sơ đồ hệ thống mức vật lý. a) Các đơn vị thiết kế. b) Cập nhật công việc.
  11. Thêm công việc: Nhập: TenCV & NoiDung & MaDA. Xuất: Thông báo đã thêm / thông báo lỗi. Sữa công việc: Nhập: TenCV | NoiDung | MaDA | DaXong. Xuất: Thông báo đã sữa / thông báo lỗi. Xoá công việc: Nhập: MaCV. Xuất: Thông báo đã xoá / thông báo lỗi. Phân công công việc. Nhập: MaNV & một hoặc nhiều MaCV & NgayBD, NgayKT. Xuất: Thông báo đã phân công / thông báo lỗi. Đánh giá công việc. Nhập: MaDG vào bảng Works. Xuất: Thông báo đã đánh giá / thông báo lỗi. Kiểm tra tiến độ công việc. Chỉ hiện thị các báo cáo tiến độ của nhân viên. Thiết lập chế độ làm việc. Nhập: MaNV & MaCV & ThietLap vào bảng PhanCong. Xuất: Thông báo đã chuyển giao công việc / thông báo lỗi. Báo cáo tiến độ công việc. Nhập: MaCV & TienDo & Ngay | GhiChu | K èm tập tin. Xuất: Thông báo báo cáo đã chuyển đi / thông báo lỗi.
  12. Thay đổi mật khẩu. Nhập: Usename & Password củ | Password & Confirm Password mới. Xuất: Thông báo đã đổi mật khẩu / thông báo l ỗi. Thống kê công việc. Thống kê công việc theo ba tiêu chuẩn: + Từ ngày đến ngày. + Theo đánh giá (xếp loại). + theo đề án. Làm tươi cơ sở dữ liệu. Nhập: Tên CSDL mới cần phục hồi khi bị hỏng & làm tươi từ ngày nào đến ngày nào | từ tháng nào đến tháng nào | năm nào. Xuất: Thông báo đã làm tươi CSDL / thông báo lỗi. Phục hồi cơ sở dữ liệu. Nhập: Tên CSDL cần phục hồi (đã có từ làm tươi CSDL). Xuất: Thông báo đã phục hồi hoàn toàn / thông báo lỗi. Một số giải thuật được thể hiện bàng lưu đồ. c) Thêm công việc. Phân công công việc. Thống kê công việc. Làm tươi cơ sở dữ liệu. Thiết kế cơ sở dữ liệu 2. Mô hình dữ liệu vật lý. a) Sơ đồ thực thể kết hợp (ERD):
  13. Bảng mô tả chi tiết. b) Table Vùng Diễn Giải Kiểu Kích Thước Giới hạn Giá Trị Trị Giá Ngầm định Ràng buộc GOPY MAGY Mã Góp Ý Text 10 Khoá Chính (PK) Khoá Ngoại MANV Mã Nhân Viên Text 9 (FK) NOI DUNG Nội Dung Text 50 NGAY Ngày Date time >= ngày hiện tại ngày hiện tại FILES MAFILE Mã File Int >=1 Khoá Chính (PK) Khoá Ngoại (FK) MABC Mã Báo Cáo Text 10 TENFILE Tên File Text 30 Kích thước File FILESIZE Long Loại Nội Dung File Được Tải Lên Server CONTENTTYPE Text 30 BAO CAO TONG Mã Báo Cáo Tổng Hợp HOP MABCTH Text 10 Khoá Chính (PK) Mã Công Việc Khoá Ngoại MACV Int >=1 (FK)
  14. TO N Số Lượng DONG CV Còn Tồn Đọng Int >=1 NGAY Ngày Date time >= ngày hiện tại ngày hiện tại CV TUONG Công Việc Sẽ Làm Trong Tuần Tới LAI Đề Xuất DEXUAT Text 80 DANH Mã Đánh Giá Int GIA MADG >=1 Khoá Chính (PK) PHAN Phản Hồi HOI Text 50 Mã Xếp Loại Text 80 Khoá Ngoại (FK) MAXL NHAN VIEN MANV Mã Nhân Viên Int >=1 Khoá Chính (PK) MA Khoá Ngoại (FK) GROUP Mã Nhóm Int >=1 TENNV Tên Nhân Viên Text 25 NGAY SINH Ngày Sinh Date
  15. < ngày hiện tại time Địa chỉ DIACHI Text 50 Là số nguyên 0 hoặc 1 PHAI Phái Bit Điện Thoại PHONE Text 9 USER Tên Người Sử Dụng Text 16 NAME PASS Mật Khẩu WORD Text 16 BAO CAO NGAY MABCN Mã Báo Cáo Ngày Text 10 Khoá Chính (PK) Mã Công Việc Khoá Ngoại MACV int >=1 (FK) Tiến Độ TIENDO Float 4 NGAY Ngày Date time >= ngày hiện tại ngày hiện tại GHICHU Ghi Chú Text 80 Đề Xuất Ý Kiến DEXUAT Text 50 Mã Công Việc WORKS MACV Int >=1 Khoá Chính (PK) Mã Đề Aùn Int Khoá Ngoại (FK) MADA >=1
  16. Mã Đánh Giá Int Khoá Ngoại (FK) MADG >=1 Tên Công Việc TENCV Text 20 NOI Nội Dung DUNG Text 100 Đã Xong 0 hoặc 1 DAXONG Bit Mã Đề Aùn Int DEAN MADA >=1 Khoá Chính (PK) Tên đề Aùn Text 30 TENDA DIA DIEM Địa Điểm Text 40 XEP Mã Xếp Loại Int LOAI MAXL >=1 Khoá Chính (PK) Xếp Loại XEPLOAI Text 30 GHICHU Ghi Chú Text 80 PHAN CONG MANV Mã Nhân Viên Text 9 Khoá Ngoại (FK) Mã Công Việc Khoá Ngoại MACV Int >=1 (FK) Ngày Bắt Đầu NGAYBD Date Ngày hiện tại time NgayBD > Ngay KT THIET LAP Thiết lập Bit 1 0
  17. Ngày Kết Thúc NGAYKT Date > Ngày hiện tại time NgayKT > Ngay BD GROUPS MA GROUP Mã Nhóm Int >=1 TEN GROUP Tên Nhóm Text 30 Khoá Chính (PK) TRG Trưởng Nhóm GROUP Text 9 Ngày Nhận Chức NGAYNC Date time Mã Quyền GROUPS_PER MAPER Int >=1 Khoá Chính (PK) MA GROUP Mã Nhóm Int >=1 Khoá Chính (PK) PERMI SIONS Mã Quyền MAPER Int >=1 Khoá Chính (PK) Tên Quyền TENPER Text 20 GHICHU Ghi Chú Text 80 Các ràng buộc toàn vẹn . c) (RB1) MAGY là khoá chính của GOPY. (RB2) MAFILE là khoá chính của FILES.
  18. (RB3) MABCTH là khoá chính của BAOCAOTONGHOP. (RB4) MADG là khoá chính của DANHGIA. (RB5) MANV là khoá chính của NHANVIEN. (RB6) MABCN là khoá chính của BAOCAONGAY. (RB7) MACV là khoá chính của WORKS. (RB8) MADA là khoá chính của DEAN. (RB9) MAXL là khoá chính của XEPLOAI. (RB10) MANV&MACV là khoá chính của PHANCONG. (RB11) MAPER là khoá chính của PERMISSION. (RB12) MAGROUP là khoá chính của GROUPS. (RB13) MAPER & MAGROUP là khoá chính của GROUP_PER. (RB14) MANV là khoá ngoại của GOPY tham chiếu từ NHANVIEN. (RB15) MABC là khoá ngoại của FILES tham chiếu từ BAOCAONGAY. (RB16) MACV là khóa ngoại của BAOCAOTONGHOP tham chiếu từ WORKS (RB17) MAXL là khoá ngoại của DANHGIA tham chiếu từ XEPLOAI. (RB18) MAGROUP là khoá ngoại của NHANVIEN tham chiếu từ GROUPS. (RB19) MACV là khoá ngoại của BAOCAONGAY tham chiếu từ WORKS. (RB20) MADG là khoá ngoại của WORKS tham chiếu từ DANHGIA. (RB21) MADA là khoá ngoại của WORKS tham chiếu từ DEAN. (RB22) MANV là khoá ngoại của PHANCONG tham chiếu từ NHANVIEN. (RB23) MACV là khoá ngoại của PHANCONG tham chiếu từ WORKS. (RB24) MAPER & MAGROUP là khoá ngo ại của GROUP_PER tham chiếu từ GROUPS & PERMISSION.
  19. (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ó thể có nhiều n hân viên nhưng tại một thời điểm chỉ có một nhân viên thực hiện một công việc. Bảng tầm ảnh hưởng. d) 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 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 S X T S X T S X RB1 X
  20. RB2 X RB3 X RB4 X RB5 X RB6 X RB7 X RB8 X RB9 Thiết kế chương trình. 3. Sơ đồ cấu trúc chương trình. Thiết kế giao diện. 4. Các Site map (thay thế cho sơ đồ dịch chuyển trạng thái). Chương V TRIỂN KHAI ỨNG DỤNG : Các phần mềm cần thiết. I.
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2