1. Trang chủ
  2. » Giáo Dục - Đào Tạo

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

29 201 0

Đ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 đề Kiến trúc 1 và 2 JSP (model 1 & 2architecture) - phần 3 pps
Trường học University of Information Technology
Chuyên ngành Information Technology
Thể loại bài báo
Định dạng
Số trang 29
Dung lượng 142,61 KB

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

Nội dung

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.setAttributename, scope.. Các giá trị củ

Trang 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ì 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 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

request Trang hiện hành và bất kỳ trang được include hay forward nào

Cho tới khi lời đáp gởi trở lại user

session Yêu cầu hiện hành và bất kỳ yêu cầu tiếp theo trong cùng browser

Đời sống của một phiên làm việc (session)

application 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

Đờ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

Trang 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

NESTED Giữa start tag và end tag Trong doInitBody và doAfterBody đối 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

AT_END Sau end tag cho tới cuối trang 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() {

Trang 3

return SKIP_BODY;

}

public int doEndTag() throws JspException {

try {

InitialContext context = new InitialContext();

Object obj = (Object)context.lookup(name);

Code 31: LookupTagTei.java

public class LookupTagTEI extends TagExtraInfo {

public VariableInfo[] getVariableInfo(TagData data) {

Trang 5

<%@ taglib uri = "lookup.tld" prefix = "legiang" %>

<! dùng trong body của JSP >

<legiang:lookup id = "sv" type = "UserTransaction"

name = "java:comp/ UserTransaction ">

<! Giả sử trong lớp UserTransaction có phương thức begin >

<% sv.begin() %>

4 Tag handler được triệu gọi như thế nào?

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

Trang 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();

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

Trang 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 */

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

1 Đặt vấn đề

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

Trang 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ế

2 Định nghĩa các yêu cầu

• 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

Trang 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ý

Trang 10

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

5 Mô hình dữ liệu quan niệm

Trang 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

Trang 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

c) Một số giải thuật được thể hiện bàng lưu đồ

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

2 Thiết kế cơ sở dữ liệu

a) Mô hình dữ liệu vật lý

Sơ đồ thực thể kết hợp (ERD):

Trang 13

b) Bảng mô tả chi tiết

Table Vùng Diễn Giải Kiểu Kích Thước Giới hạn Giá Trị Giá Trị Ngầm định Ràng buộc

(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)

TENFILE Tên File Text 30

FILESIZE Kích thước File Long

CONTENTTYPE Loại Nội Dung File Được Tải Lên Server Text 30

Trang 14

LAI Công Việc Sẽ Làm Trong Tuần Tới

DEXUAT Đề Xuất Text 80

DANH

GIA MADG Mã Đánh Giá Int >=1 Khoá Chính (PK)

PHAN

HOI Phản Hồi Text 50

NHAN

VIEN MANV Mã Nhân Viên Int >=1 Khoá Chính (PK)

MA

GROUP Mã Nhóm Int >=1 Khoá Ngoại (FK)

TENNV Tên Nhân Viên Text 25

NGAY

SINH Ngày Sinh Date

Trang 15

time < ngày hiện tại

DIACHI Địa chỉ Text 50

PHAI Phái Bit Là số nguyên 0 hoặc 1

PHONE Điện Thoại Text 9

TIENDO Tiến Độ Float 4

NGAY Ngày Date

time >=

ngày hiện tại ngày hiện tại

GHICHU Ghi Chú Text 80

DEXUAT Đề Xuất Ý Kiến Text 50

Chính (PK)

MADA Mã Đề Aùn Int >=1 Khố Ngoại (FK)

Trang 16

MADG Mã Đánh Giá Int >=1 Khoá Ngoại (FK) TENCV Tên Công Việc Text 20

NOI

DUNG Nội Dung Text 100

LOAI MAXL Mã Xếp Loại Int >=1 Khoá Chính (PK)

XEPLOAI Xếp Loại Text 30

GHICHU Ghi Chú Text 80

NGAYBD Ngày Bắt Đầu Date

time NgayBD > Ngay KT Ngày hiện tại

THIET

Trang 17

NGAYKT Ngày Kết Thúc Date

time NgayKT > Ngay BD > Ngày hiện tại

GROUP Trưởng Nhóm Text 9

NGAYNC Ngày Nhận Chức Date

TENPER Tên Quyền Text 20

GHICHU Ghi Chú Text 80

c) Các ràng buộc toàn vẹn

(RB1) MAGY là khoá chính của GOPY

(RB2) MAFILE là khoá chính của FILES

Trang 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

Trang 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 nhâ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

Loai Groups Groups

_Per Permissions DeAn

Trang 20

Sơ đồ cấu trúc chương trình

4 Thiết kế giao diện

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

I Các phần mềm cần thiết

Trang 21

Đây là ứng dụng độc lập nền nên nó có thể chạy trên các hệ điều hành khác nhau như các hệ thống Windows, Unix, … Do đó chúng ta có thể cài đặt hệ điều hành thuộc một trong các hệ thống trên và các phần mềm sau:

- Jakarta-Tomcat là một Servlet/JSP container Thật ra theo lý thuyết, ứng dụng này có thể chạy trên bất kỳ container hay web server nào có hổ trợ Servlet/JSP nhưng chúng tôi chưa thử nghiệm trên container khác Jakarta-Tomcat 3.1

- JDK 1.2 trở lên

- MySQL Server 3.23.27 bản beta Hiện nay đã ra bản 4.0

- JDBC Driver loại bốn hổ trợ cho MySQL Server: mm.msql-2.0.4

- Xalan và Xerces để chuyển XML thành HTML bằng cách sử dụng XSLT

- Một trong các web browser sau: Netscape, Inernet Explorer, Opera tất cả

từ 4.0 trở lên Ứng dụng này đã thử nghiệm trên các web browser này

- VietKey hoặc bất kỳ bộ gõ tiếng việt nào khác

II Triển khai ứng dụng web

Ứng dụng web (ứng dụng server-side java) là một tập các trang JSPs, Servlets, HTML và các tài nguyên khác được gói gọn trong một gói duy nhất và chạy trên nhiều platform từ nhiều nhà sản xuất khác nhau Ứng dụng Web được xác định trong một đường dẫn đặt biệt ở web server

Một ứng dụng web có thể gồm các thành phần sau:

- JavaServer Pages

- Servlets

- Các lớp tiện ích

Trang 22

- Các tài như xml, html, …

- Enterprise JavaBean (EJB) đối với các ứng dụng xử lý phân tán

- Các media như images, sounds, …

- Các đối tượng client như javabeans, applets, các lớp, …

Mô hình hoạt động của The Web Work The Web Work hoạt động dựa trên mô hình ba lớp (3 layer) Sau đây là mô hình ba lớp tổng quát của ứng dụng Web

Trên nền Java hổ trợ cả hai kỷ thuật xử lý Web động là Servlet và JSP Do đó với từng kỷ thuật tôi có chi tiết hai mô hình (có thể nhiều hơn) dựa trên mô hình ba lớp tổng quát này và gọi là Kiến Trúc Mô Hình Một và Mô Hình Hai

Ứng dụng sử dụng cả hai mô hình web trên nền Java là Kiến Trúc Mô Hình Một

và Mô Hình Hai mà đã và đang còn tranh luận trên các sites nỗi tiếng như javaworld.com, developer.com, weblogic.com

Trong mô hình một, một trang JSP đảm nhận cả việc xử lý yêu cầu và trả về các kết quả cho client Ở đây vẫn có sự tách biệt giữa xử lý và hiện thị bởi vì tất cả sự truy cập dữ liệu đều được Beans thực hiện Mô hình này thích hợp cho các ứng dụng đơn gian, thích hợp với các trang JSP có nhiều mã HTML Xem hình vẽ sau:

Trong mô hình kiến trúc hai, đó là sự kết hợp cả hai kỷ thuật xử lý web động là Servlet và JSP Mô hình này rất thích với với các ứng dụng có xử lý phức tạp Ở đây, Servlets hoạt động như một trạm điều khiển (controller) chịu trách nhiệm xử

lý các yêu cầu và khởi tạo các components (Beans, Custom Tag) cho JSP sử dụng Mô hình này tách phần xử lý và trình bày rỏ ràng nhất

Trang 23

III Hướng dẫn sử dụng

Sau khi đã cài đặt ứng dụng, bạn mở browser, trong address bar gõ địa chỉ: htttp://servername:port/work/html/showLogin.html

- servername: tên server của bạn, trên máy cục bộ thường là localhost

- port: số cổng mà web server đang mở Nếu số port là 80 thì 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 chỉ trên Khi bạn mở browser, ứng dụng tự động được gọi mà bạn không cần phải gõ địa chỉ trên address bar Thực hiện công việc này trong ba web browser: Internet Explorer, Netscape, Opera như sau:

- Internet Explorer:

Vào Tools menu, chọn Internet Options Trong hộp thoại Internet Options, chọn General tab, trong khung Home page có Address textbox cho phép bạn gõ địa chỉ trên

- Netscape:

Vào Edit menu, chọn Preferences… Trong hộp thoại Preferences, chọn navigator trong hộp thoại category, hiện ra một trang Navigator, chọn Home page button, trong khung Home Page có Location textbox nhập vào địa chỉ trên

- Opera:

Vào Navigation menu, chọn Set home page…, hiện ra một input box cho chép bạn nhập địa chỉ mới vào

KẾT LUẬN

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

TỪ KHÓA LIÊN QUAN

w