LƯU DỮ LIỆU TRONG ĐỐI TƯỢNG SESSION – luận văn công nghệ thông tin thiết kế website môn lập trì –

Một phần của tài liệu LUẬN VĂN CÔNG NGHỆ THÔNG TIN THIẾT KẾ WEBSITE MÔN LẬP TRÌNH MẠNG 1 VỚI SERVLET VÀ JSP

Khi lập trình ứng dụng cơ sở dữ liệu khái niệm session tượng
trưng một giai đoạn duy trì kết nối giưã trình khách và trình chủ trong quá
trình liên lạc .

Tuy nhiên , khái niệm session trong giao thức HTTP giưã trình
duyệt và trình chủ lại cĩ ý nghiã hơi khác .Khi trình duyệt cần yêu cầu trình
chủ cung cấp một tài liệu , trình duyệt mở kết nối , lấy về nội dung trang dữ
liệu và sau đĩ đĩng ngay kết nối .Bởi vì khơng cĩ một kết nối nào được duy
trì , mỗi lần nhận được yêu cầu trình chủ Web Server khơng biết được trước
đĩ trình duyệt đã cĩ những trạng thái nào , do đĩ giao thức kết nối HTTP là
giao thức kết nối phi trạng thái .

Java Application,Applet
,Servlet

JDBC Driver

Java Native Driver

Cơ sở dữ liệu
(Access,SQL Server

,Oracle,…)
Mã Java

Truy xuất cơ sở dữ liệu JDBC kiểu 4
Internet

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 62

trình chủ đã cài đặt sẵn lớp HttpSession.Thay vào đĩ , HttpSession dưạ vào
khái niệm cuả cookies quy định giữa trình khách và trình chủ .Cookies là một
mẫu thơng tin được gởi về trình duyệt phiá máy khách khi cĩ yêu cầu trang
.Mỗi khi trình duyệt phát sinh yêu cầu gởi lên web server ,nĩ lại chuyển mẫu
tin cookies trở lại cho trình chủ .Dưạ vào cookies trình khách và trình chủ sẽ
cĩ những thơng tin trạng thái thơng báo cho nhau .

1./ SỬ DỤNG ĐỐI TƯỢNG SESSION TRONG TRANG JSP

Java Server Pages API cung cấp rất nhiều đối tượng nội tại .Ví
dụ request và out là hai đối tượng nội tại mà ta nghiên cưú qua .Đối tượng nội
tại là đối tượng session .Đây là đối tượng xuất phát từ lớp HttpSession .Với
đối tượng session , 3 phương thức mà bạn thường sử dụng nhất là :

Public void setAttribute(String name,Object value)
throws IllegalStateException.

Public Object getAttribute(String name) throws

IllegalStateException.

Public void removeAttribute(String name) throws

IllegalStateException.

Các phương thức này hoạt động tương tự phương thức get và put
cuả lớp Hashtable cuả Java . Cụ thể ,setAttibute() kết hợp một tên khố với
một giá trị cuả biến ,trong khi getAttibute() trả về giá trị kết hợp cuả một tên
khố nào đĩ ,nếu khơng tìm thấy giá trị kết hợp ,giá trị trả về sẽ là null .Lưu ý
giá trị mà bạn muốn lưu hay lấy về phải là một đối tượng .Đối với giá trị đơn
nguyên như int , float , bolean phải chuyển chúng sang kiểu đối tượng dưạ vào
các lớp tương ứng như Integer , Float , Boolean . Thường tên khố được xem
là tên biến .Ví dụ để lưu một giá trị chuỗi vào đối tượng session để tất cả các
trang JSP và servlet thấy được giá trị này , bạn phải goị setAttribute() như sau
:

session.setAttribute(“Usernames”,u)
session.setAttribute(“Passwords”,p)

Bất kì trang JSP hay servlet muốn xem Usernames mang giá trị gì cĩ thể goị
phương thức

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 63

that sự cuả khố ,cần chuyển Object về kiểu đối tượng thích hợp .

Biến đối tượng session chỉ tồn tại trong một thời gian nhất định .Khoảng thời
gian này gọi là thời gian thực cuả session .Cĩ thể cấu hình thay đổi thời gian
này . Nếu muốn chủ động làm cho session hết hiệu lực ,phải gọi phương thức
session.invalidate(). Khi session hết hiệu lực ,tất cả các khố và giá trị kết
hợp với nĩ do session lưu trữ sẽ bị huỷ bỏ .Khi bạn gọi các phương thức như
getAttribute() hay setAttribute() mà đối tượng session đã hết hiệu lực thì lỗi
ngoại lệ IllegalStateException sẽ phát sinh .

2./ TÌM HIỂU CÁCH SESSION LAØM VIỆC

Dưới đây là mơ hình làm việc và giao tiếp giữa trình duyệt và Web
Server liên quan trao đổi thơng tin cookies phục vụ cho session .

Đối tượng session chỉ được phép tồn tại trong một khoảngthời gian cho
phép. Trình chủ tự động giải phĩng và vơ hiệu lực session để tài nguyên của
hệ thống được bảo tồn . Nếu đối tượng session đã giải phĩng và trình duyệt
gởi yêu cầu trang với số session ID, trình chủ do khơng tìm thấy đối tượng
session tương ứng nữa sẽ phát sinh lỗi ngoại lệ IllegalStateException.

Web Server Web Server

Browser

Cho tơi xin
trang tài

liệu

Đây là trang tài liệu
bạn .Số session ID

là 3478

Cho tơi xin trang tài
liệu bạn .Số session
ID cuả tơi là 3478

Trình duyệt
yêu cầu tài liệu

Trình chủ trả
về trang tài liệu

và cookies
chưá thơng tin

về session ID
Trình duyệt
chuyển số
session ID cho
trình chủ bất kì
khi nào nĩ
muốn yêu câù

một tài liệu
mới.

Browser

Web Server
Browser

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 64

3./ XỬ LÝ CHẤM DỨT SESSION

Đối tượng session cĩ thể bị chấm dứt hay bị huỷ bỏ trong hai trường
hợp :chủ động gọi phương thức invalidate() cuả nĩ hoặc trình chủ web server
huỷ session do thời gian hết hiệu lực .Tuỳ theo dữ liệu lưu trong session mà
cần phải thực hiện một vài thao tác xố biến dọn dẹp các đối tượng trước khi
session bị hủy bỏ .Ví dụ , cĩ thể lưu biến trong session các thơng tin kết nối
đến cơ sở dữ liệu .Thực hiện kết nối trước khi xố session vì nĩ sẽ làm cho
ứng dụng tăng tốc độ xử lý đối với các người dùng cịn lại .

Đối tượng session cũng cài đặt cơ chế gọi ngược để thơng báo cho một
đối tượng nào đĩ trạng thái đối tượng được ràng buộc vào session hoặc khi
session bị hủy bỏ .

Để cài đặt cơ chế thơng báo cuả session ,dùng giao diện
HttpSessionBindingListener .Giao diện này định nghĩa các phương thức mà
session sẽ gọi thơng báo cho các đối tượng về trạng thái cuả nĩ.

PHẦN 2 : GIỚI THIỆU RATIONAL ROSE

I. Rational Unified Process (RUP) được định hướng bởi các mơ
hình Use Case
Đăngkýhọc
Học
Thi
DạoxemWeb
Cậpnhậtthơngtin
Xemđiểmthi
Họcviên

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 65

Một Uses Case là một chuỗi các hành động mà hệ thống thực hiện
mang lại một kết quả quan sát được .

Uses Case chứa luồng các sự kiện diễn ra trong hệ thống .
Lợi ích cuả quá trình định hướng bởi Uses Case :

 Uses Case ngắn gọn , đơn giản và dễ hiểu đối với người dùng và
người phát triển khi hiểu các yêu cầu chức năng cuả hệ thống .

 Uses Case định hướng nhiều hoạt động trong quy trình : tạo mơ
hình thiết kế , triển khai hệ thống , …

 Uses Case giúp đồng bộ hố nội dung các mơ hình khác nhau
II. Mơ tả các class trong Rational Rose

Class là một mơ tả cuả một nhĩm đối tượng cĩ chung các thuộc tính ,
hành vi , các mối quan hệ và ngữ nghiã .

Một đối tượng là một thể hiện cuả class
Biểu diễn class :

Một class được biểu diễn bằng một hình chữ nhật gồm 3 phần

Hocvien

Phần 1: chưá tên lớp .

Phần 2 : cho thấy cấu trúc class
Phần 3 : cho thấy các hành vi cuả lớp .
III. Quan hệ giữa các lớp :

Mối quan hệ Association :

Dethi
Chitietdethi
Cauhoi
n
n n
n
n
1
n
1

Association : quan hệ bản số xác định số đối tượng tham gia vào
một mối quan hệ ,số các thể hiện cuả một lớp quan hệ với một thể
hiện cuả một lớp khác .

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 66

IV. Lược đồ Sequence trong Rational Rose:

Lược đồ Sequence thể hiện từng chức năng hệ thống thơng qua các
lược đi trên sơ đồ

Sequence đơn giản , dễ hiểu đối với người dùng

Vơí Sequence giúp ta thấy được tổng quát tồn chức năng hoạt động
cuả hệ thống.

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 67

CHƯƠNG IV : KẾT LUẬN VAØ

HƯỚNG PHÁT TRIỂN ĐỀ TAØI

1. Các kết quả đạt được trong đề tài :

Sau thời gian thực hiện luận văn , chúng em đã thiết kế một phần web site
học qua mạng mơn Lập trình mạng cơ sở .Ngồi việc tìm hiểu các tool
dùng để cài đặt web site này ,chúng em đã xử lý một số yêu cầu :

 Phân tíchvà thiết kế hệ thống theo hướngđối tượng

 Quản lý chi tiết các học phần .

 Quản lý học viên đăng kí học .

 Quản lý thơng tin về giáo viên và người quản trị hệ thống .

 Xử lý một số chức năng khi học viên , giáo viên , người quản trị
đăng nhập vào hệ thống .

 Bảo mật hệ thống bằng cách sử dụng Session thơng qua chức
năng phân quyền cho mỗi user riêng khi họ đăng nhập vào hệ
thống .

Ý nghiã thực tiễn cuả đề tài

Tĩm lại với tốc độ phát triển ngày càng tăng của mạng máy tính, thì
việc thiết kế và cài đặt các ứng dụng cho người dùng là rất cần thiết. Vì
vậy ý tưởng học qua mạng tuy khơng phải là mới nhưng phần nào cũng
giúp học viên thuận tiện trong việc học tập qua mạng , tiết kiệm được thời
gian đến trường nhưng vẫn cĩ đầy đủ kiến thức ,hạn chế chi phí và tổ
chức thi cử trong các kì thi .

2. Một số vấn đề cịn hạn chế

Chưa sử dụng được cơ chế bảo mật để web site đạt hiệu quả tốt hơn .
Kinh nghiệm lập trình trên mơi trường lập trình Web chưa tốt nên giao
diện cĩ nhiều điểm chưa phù hợp về cách phân bố màu sắc, hình ảnh …

Cơ sở dữ liệu chưa đáp ứng khi số lượng người dùng tham gia vào hệ
thống quá đơng cùng một lúc .

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 68

3. Hướng phát triển đề tài

– Cải tiến một số chức năng chưa hồn chỉnh trong chương trình.

– Cĩ thể thực hiện nội dung dạy học sinh động hơn .

– Linh hoạt trong việc thay đổi cấu hình máy bằng nhiều cách khác nhau.

– Thiết kế và cài đặt cơ sở dữ liệu khi số lượng người dùng tham gia vào
hệ thống quá đơng và cơ sở dữ liệu quá lớn.

– Khống chế thời gian thi trong mỗi đề thi để học viên cĩ thể đạt kết quả
tốt hơn.

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 69

PHẦN B : PHỤ LỤC

I. YÊU CẦU HỆ THỐNG
1. YÊU CẦU PHẦN CỨNG:
Client :
 RAM : 128MB trở lên
 CPU : tốc độ 667 MHz trở lên

 Dung lượng đĩa cứng :10GB trở lên
Aplication server :

 RAM : 256MB trở lên

 CPU : tốc độ 667 MHz trở lên

 Dung lượng đĩa cứng :10GB trở lên
Database :

 RAM : 128MB trở lên

 CPU : tốc độ 667 MHz trở lên

 Dung lượng đĩa cứng :10GB trở lên

2. YÊU CẦU PHẦN MỀM:
Mơi trường :
 Windows 2000 server
 Dreamweaver MX
 Internet
Client :
 Win 98 trở lên

 Internet Explorer 4.0 trở lên.
Aplication server :

 Tomcat 3.2 . J2EE

 Internet Explorer 4.0 trở lên.
Database :

SVTH : Mai Kỷ Tuyên – Nguyễn Thị Mỹ Hạnh 70

II. TAØI LIỆU THAM KHẢO :

Stt

Tên Tài Liệu Tác Giả

Nhà
Xuất Bản

Năm
Xuất
Bản
1 JavaServer Pages Marty Hall Sun Microsystem 2000
2 Lập Trình Mạng bằng Java Nguyễn Việt Cường Học Viện Cơng Nghệ

Bưu Chính Viễn Thơng

2001

3 Giáo trình Phân Tích &
Thiết Kế Hướng đối tượng
Bằng UML

Dương Anh Đức Nhà Xuất Bản Thống Kê 2002

4 Lập trình ứng dụng Web với
JSP/Servlet

Nguyễn Phương Lan
Hồng Đức Hải

NXB Giáo Dục 2001

5 Hướng dẫn thiết kế trang
Web tương tác bằng
JavaScript.
Hồng Đức Hải
Phạm Hữu Dũng
NXB Giáo Dục 2001
6 Lập trình ứng dụng chuyên
nghiệp SQL Server 2000 .

Phạm Hữu Khang NXB Giáo Dục 2001
7 Java Lập Trình Mạng Nguyễn Phương Lan

Hồng Đức Hải

PHẦN 1 : CƠNG NGHỆ JSP

I. CƠNG NGHỆ JSP VAØ LẬP TRÌNH ỨNG DỤNG

Java Server Page (JSP ) là một kỹ thuật kết hợp ngơn ngữ HTML và
ngơn ngữ Java. JSP là cách đơn giản hơn Servlet để cĩ thể tiếp cận hướng lập
trình Web phía Server . Kỹ thuật JSP cĩ thể kết nối với các hệ quản trị cơ sở
dữ liệu như MS Access, SQl Server, Oracle,…

Cơng nghệ JavaServer Pages (viết tắt là JSP) là cơng nghệ Java dựa trên

nền J2EE để xây dựng những ứng dụng chứa nội dung trang Web động như:
HTML, DHTML, XHTML và XML. Cơng nghệ JSP cĩ khả năng tạo ra những
trang Web với nội dung linh hoạt, cĩ vai trị quan trọng trong việc phát triển
các ứng dụng Web.

Một trang JSP (.jsp) là một trang HTML hay XML trong đĩ cĩ chứa mã
Java, phần HTML chịu trách nhiệm về việc định dạng văn bản, mã chương
trình xen lẫn trong văn bản dùng để diễn đạt các thao tác xử lý dữ liệu hoặc
nối kết với CSDL (Database). Trang Web truyền thống (dùng HTML) được
trình chủ Web gửi ngay đến cho máy khách (Client) khi cĩ yêu cầu, cịn các
trang JSP phải chạy qua một guồng máy (Engine) riêng biệt, ở đĩ phần mã
chương trình được tách ra khỏi trang JSP, được thi hành và kết quả xử lý được
ghi trở vào trang Web đang xét, tạo thành trang HTML thuần tuý.

Trang JSP khi chạy, mã Java sẽ được biên dịch thành JavaServlet và

Servlet này chạy trên máy ảo Java (JVM) ở phía máy chủ (Web Server). Mã

Java được biên dịch khi máy khách truy xuất trang JSP lần đầu tiên. Tập tin

.jsp cĩ cấu trúc giống như tập tin .html truyền thống, nhưng khác ở chỗ là tập

tin .jsp cĩ xen lẫn mã Java. Mã Java được tách biệt với phần HTML thơng

Cơng nghệ JSP gắn liền với Servlet. Mã Java trong trang JSP được biên
dịch thành Servlet khi trình duyệt phía khách (Client) truy xuất trang JSP lần
đầu tiên. Quá trình diễn ra như sau : Mã Java được tách ra khỏi nội dung bình
thường của trang JSP, tạo thành mã nguồn của Servlet. Kết quả xử lý của
Servlet được thay vào chỗ biểu thức JSP trong trang Web ban đầu (trang Web
mà trình duyệt nhận được là trang HTML thuần túy).

2. NHỮNG ĐIỂM NỔI BẬT CỦA CƠNG NGHỆ

JAVASERVER PAGES (JSP)

a)Tận dụng được sức mạnh của ngơn ngữ lập trình Java
Từ trước đến nay chúng ta đều biết đến Java như là một cơng cụ hỗ trợ

đắc lực trong việc xây dựng các ứng dụng Web Client – side. Nhưng Java cũng

cịn là một mơi trường lý tưởng để tạo thành phần server cho ứng dụng Web.
Do nền tảng của JSP dựa trên Java nên JSP cũng tận dụng được các ưu điểm
trên. JSP cung cấp một phương pháp rất mạnh để xử lý yêu cầu từ Client,

cũng như những ưu việt trong chế độ an tồn, chống rị rỉ bộ nhớ (memory

leak) và hỗ trợ chế độ xử lý đa tuyến đoạn (multithreading).

WEB
BROWSER
HttpServlet
Trang JSP
Trình diễn
dịch JSP
Servlet tạm

tạo ra được những ứng dụng cĩ quy mơ lớn với chất lượng cao.

b) Tách biệt nội dung với giao diện

Với cơng nghệ JSP, người phát triển sử dụng các thẻ HTML hay XML
để thiết kế giao tiếp trang Web, các thẻ JSP hay các đoạn scriptlet để phát
sinh nội dung động của trang (nội dung này phụ thuộc vào yêu cầu của user).
Các xử lý phát sinh nội dung được đĩng gĩi trong các thẻ hay thành phần

JavaBeans và được liên kết lại trong scriptlet, sau đĩ được thực hiện ở server.

Do những xử lý cốt lõi đã được đĩng gĩi trong các thẻ và Beans, Web master
và page designer cĩ thể hiệu chỉnh và làm việc trên trang JSP mà khơng ảnh

hưởng đến xử lý nghiệp vụ của trang. Các điều trên giúp bảo vệ các đoạn

code sở hữu độc quyền và vẫn đảm bảo cho mọi HTML – based web Browser

cĩ thể truy xuất đến các trang JSP theo yêu cầu.

c) Đơn giản hố quá trình phát triển với các thẻ

Web page developer khơng phải lúc nào cũng là một lập trình viên

thơng thạo với ngơn ngữ Script. Cơng nghệ JSP đĩng gĩi nhiều chức năng
cần thiết trong việc phát sinh nội dung động ở dạng dễ sử dụng, các JSP –

specific XML tag. Các thẻ JSP chuẩn cĩ thể truy xuất và khởi tạo những thành

phần JavaBeans, thiết lập hay nhận về giá trị của thuộc tính, download applet,

và thực hiện những xử lý mà nếu viết code sẽ khĩ khăn và mất nhiều thời
gian. Cơng nghệ JSP cĩ thể mở rộng thơng qua sự phát triển của các

customized tag library. Hiện nay đã cĩ khá nhiều các thư viện loại này, từ