0
Tải bản đầy đủ (.pdf) (97 trang)

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

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 (Trang 83 -97 )

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ừ

đĩ giúp người phát triển trang Web cĩ thể làm việc với những cơng cụ quen thuộc khi thự hiện những xử lý phức tạp.

3. MƠ HÌNH ỨNG DỤNG DÙNG CƠNG NGHỆ JAVASERVER

PAGES (JSP)

Một trang JSP sẽ được xử lý bởi một JSP Engine (được cài đặt trên Web

Server hay Application Server hỗ trợ cơng nghệ JSP). JSP Engine nhận yêu

cầu từ Client đến trang JSP và phát sinh những phản hồi từ trang JSP nhận về Client.

Những trang JSP được biên dịch thành JavaServlets. JavaServlets là một

sự mở rộng của Java chuẩn, do đĩ các nhà phát triển cĩ thể truy xuất đến mơi trường ứng dụng Java đầy đủ với tất cả các sức mạnh và sự linh động vốn cĩ của họ Java.

trang này.

Trang JSP cĩ thể được sử dụng trong nhiều kiến trúc khác nhau và cũng

cĩ thể kết hợp với các Protocol, Components khác nhau. Một vài mơ hình cĩ

thể cĩ.

Mơ hình ứng dụng đơn giản

Trong một ứng dụng đơn giản Browser sẽ trực tiếp gọi trang JSP. Đến

lượt trang này lại phát sinh một yêu cầu (cĩ thể thơng qua JDBC để nhận

thơng tin từ Database) nhằm tạo ra kết quả đáp ứng yêu cầu của Browser. Sau

đĩ tạo ra trang HTML chuẩn và gửi trả trang này về cho Browser.

Ưu điểm :

 Giúp việc lập trình đơn giản và nhanh chĩng.

 Dễ dàng phát sinh nội dung dựa trên yêu cầu và trạng thái của tài nguyên.

Khuyết điểm :

 Gặp khĩ khăn khi cĩ nhiều Client truy xuất đồng thời những tài nguyên khan hiếm của hệ thống, do mỗi Client phải thiết lập hay chia sẻ kết nối đến tài nguyên.

VD : Nếu một trang JSP truy xuất một Database, nĩ cĩ thể tạo ra nhiều kết nối đến Database, dẫn đến ảnh hưởng đến hiệu suất của Database.

Database

HTTP/HTML/X

Browser

JDBC

1. JDBC VAØ TRÌNH ĐIỀU KHIỂN TRUY XUẤT CƠ SỞ DỮ LIỆU

Hầu như cơng việc lập trình ứng dụng mà JSP và servlet thường thực hiện nhất đĩ là lưu trữ và truy xuất cơ sở dữ liệu (database), cung cấp thơng tin cho trình khách . Việc truy xuất cơ sở dữ liệu trong JSP và servlet dựa vào trình xuất JDBD theo chuẩn Java. JDBC là các trình đạo diễn cho phép bạn truy cập vào cơ sở dữ liệu của các hệ như Access, MS SQL Server, Oracle … bằng ngơn ngữ truy vấn SQL .

Theo đặc tả của Sun cĩ bốn kiểu JDBC sau :

 Kiểu 1 :

JDBC sử dụng cầu nối ODBC. Nếu bạn đã từng làm việc với hệ cơ sở dữ liệu trên Windows, bạn sẽ biết cách kết nối ODBC (Open Database Connectivity). ODBC là kết nối tổng quát nhất đến mọi hệ cơ sơ’ dữ liệu thơng qua trình quản lý ODBC của Windows. Mỗi hệ cơ sở dữ liệu sẽ cung cấp một trình điều khiển (driver) cĩ khả năng đọc hiểu được cơ sở dữ liệu của chúng . Trình điều khiển này sẽ được đăng ký với bộ quản Lý ODBC. Tất cả các lệnh truy xuất cơ sở dữ liệu sau dĩđược thực thi bằng lệnh SQL. Java cung cấp cho bạn khả năng sử dụng JDBC để gọi ODBC và bằng cách này bạn cĩ thể kiểm sốt rất nhiều hệ cơ sở dữ liệu khác nhau . Quan hệ cầu nối JDBC được thể hiện ở hình sau(). Sun cung cấp sẵn thư viện kết nối JDBC-ODBC kèm theo bộ JDK và bạn cĩ thể sử dụng miễn phí . JDBC-ODBC sử dụng rất đơn giản và miễn phí nên chúng ta sử dụng cách kết nối này cho ứng dụng liên quan đến cơ sở dữ liệu trong giáo trình.

 Kiểu 2:

JDBC kết nối trực tiếp với các trình điều khiển cơ sở dữ liệu .Khi Java phát triển ,các nhà cung cấp hỗ trợ các trình điều khiển JDBC kết nối trực tiếp với trình điều khiển đặc thù cuả mối hệ cơ sở dữ liệu mà khơng phải qua trung gian ODBC cuả Windows nữa .Các kết nối này nhanh và hiệu quả hơn kiểu JDBC _ ODBC .Tuy nhiên ,bạn phải mua các trình điều khiển cơ sở dữ liệu đặc thù do những nhà phát triển cơ sở dữ liệu hay bên thứ 3 (third_party ) cung cấp hình sau. JDBC Driver ODBC Database Driver Cơ sở dữ liệu (Access,SQL Server ,Oracle,…) Mã đặc thù

Truy xuất cơ sở dữ liệu JDBC _ ODBC

Mặc dù ODBC xuất phát từ Microsoft và cĩ tên tắt là Open Database Connectivity (chuẩn kết nối cơ sở dữ liệu mở ) nhưng JDBC khơng hẳn đã cĩ tên là Java Data Base Connectivity .Sun chỉ nĩi rằng JDBC là một nhãn hiệu thuần tuý cho phong cách kết nối và truy vấn dữ liệu trong các ứng dụng Java mà thơi .

 Kiểu 3 :

JDBC kết nối thơng qua các ứng dụng mạng trung gian .Ngaỳ nay ,các ứng dụng đều gắn liền với Internet . Theo mơ hình lập trình phân tán , ứng dụng trung gian (middle_ware) trên một máy chủ sẽ chiụ trách nhiệm kết nối với cơ sở dữ liệu .

Nhiệm vụ cuả trình khách là sử dụng những trình điều khiển JDBC gọn nhẹ ,cĩ khả năng giao tiếp với ứng dụng trung gian qua Internet để truy vấn dữ liệu hình sau: JDBC Driver Database Driver Cơ sở dữ liệu (Access,SQL Server ,Oracle,…) Mã đặc thù

 Kiểu 4:

JDBC kết nối thơng qua các trình điều khiển đặc thù ở xa . Mơ hình kết nối theo kiểu 3 do phải qua ứng dụng trung gian (middle _ ware ) nên cĩ thể ảnh hưởng đến tốc độ truy xuất cơ sở dữ liệu phiá maý khách .Java đưa ra kết nối JDBC kiểu 4 cho phép trình khách sử dụng các trình điều khiển gọn nhẹ kết nối trực tiếp vào trình điều khiển cơ sở dữ liệu đặc thù (thuần Java) trên máy chủ ở xa thơng qua mạng Internet .Hình vẽ :

JDBC Driver

Java Middle Ware

Java Native Driver

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

,Oracle,…) Mã đặc thù

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

III. LƯU DỮ LIỆU TRONG ĐỐI TƯỢNG SESSION

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 .

JDBC Driver

Java Native Driver

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

,Oracle,…)

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

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

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

Đố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 Uses Case Đăngkýhọc Học Thi DạoxemWeb Cậpnhậtthơngtin Xemđiểmthi Họcviên

Trong đĩ Học viên là một người bên ngồi hệ thống tương tác với hệ thống 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 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

2./ 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 ,

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 (Trang 83 -97 )

×