JSP là một Server Script được kết hợp với các mã HTML.Tiền thân của JSP là Servlet, Servlet thực chất là các lớp Java được thiết kế để phục vụ việc tạo ra các trang Web có nội dung động.
Trang 1MỤC LỤC
MỤC LỤC 0
LỜI NÓI ĐẦU 2
DANH SÁCH HÌNH VẼ VÀ BẢNG BIỂU 4
DANH SÁCH HÌNH VẼ 4
DANH SÁCH BẢNG BIỂU 5
CHƯƠNG 1: JAVA VÀ JSP (JAVA SERVER PAGE) 6
1.1 TỔNG QUAN VỀ JAVA 6
1.2 CƠ BẢN VỀ JAVA 6
1.2.1 Cấu trúc của một chương trình Java chuẩn 6
1.2.2 Các lệnh cơ bản trong Java 7
1.2.2.1 Lệnh if và if…else 7
1.2.2.2 Lệnh switch…case 7
1.2.2.3 Lệnh for 8
1.2.2.4 Lệnh while 9
1.2.2.5 Lệnh do…while 9
1.2.3 Lớp trong Java 9
1.2.4 Kế thừa trong Java 10
1.3 CƠ BẢN VỀ JAVA SERVER PAGE (JSP) 11
1.3.1 Cấu trúc cơ bản của JSP 11
1.3.2 Biên dịch trang JSP 11
1.3.3 Kịch bản (script) 12
1.3.4 Cấu trúc lệnh của JSP 13
CHƯƠNG 2: HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU ORACLE 14
2.1 TỔNG QUAN VỀ ORACLE 14
2.2 CÁC CHỨC NĂNG CƠ BẢN CỦA ORACLE 14
2.3 ORACLE VÀ CÔNG NGHỆ CLIENT/SERVER 14
2.3.1 Ba ưu điểm của kiến trúc công nghệ Clienr/Server so với kiến trúc công nghệ máy lớn 14
2.3.2 Ưu điểm của thủ tục lưu trữ trong với một khối lệnh PL/SQL 15
2.3.3 Chức năng của NET8 15
2.4 CẤU TRÚC CỦA ORACLE 16
2.5 PL/SQL 16
2.5.1 Cấu trúc của PL/SQL 16
2.5.2 Con trỏ (Cursor) 17
2.6 SQL*PLUS 18
2.6.1 Các cách kết thúc một lệnh SQL trong SQL*PLUS 18
2.6.2 Thêm một hàng mới vào bộ đệm của SQL*Plus 19
2.6.2 Biến liên kết REFCURSOR và cách sử dụng 19
2.7 KẾT NỐI ORACLE VỚI JSP 20
CHƯƠNG 3:AJAX VÀ CSS 22
3.1 AJAX 22
3.1.1 Gới thiệu về AJAX 22
3.1.2 HTTP Requests 23
3.1.3 Đối tượng XMLHttpRequest 23
3.1.3.1 Thuộc tính onreadystatechange 23
3.1.3.2 Thuộc tính readyState 24
3.1.3.3 Thuộc tính responseText 24
3.1.3.4 Các trình duyệt hỗ trợ 25
3.1.4 Gửi yêu cầu tới Server 26
3.1.5 Script phía Server 28
3.1.6 Kết nối với cơ sở dữ liệu 29
3.1.6.1 Giải thích ví dụ 29
3.1.6.2 Mã JavaScript 30
3.1.6.3 Trang JSP phía Server 31
Trang 23.2.1 Giới thiệu về CSS 33
3.2.2 Tạo và chèn các định nghĩa CSS 33
3.2.2.1 Định nghĩa và khai báo CSS ngoại 33
3.2.2.1 Định nghĩa và sử dụng CSS nội 34
3.2.2.1 Khai báo kiểu CSS trực tiếp (inline) 34
CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG CỔNG THÔNG TIN ĐIỆN TỬ MUA BÁN RAO VẶT TRỰC TUYẾN 35
4.1 GIỚI THIỆU 35
4.2 PHÂN TÍCH HỆ THỐNG 35
4.2.1 Khảo sát hệ thống ban đầu 35
4.2.2 Các chức năng của website 35
4.2.3 Biểu đồ phân cấp chức năng 36
4.2.4 Biểu đồ luồng dữ liệu 36
4.2.4.1 Biểu đồ luồng dữ liệu mức đỉnh 36
4.2.4.2 Biểu đồ luồng dữ liệu mức dưới đỉnh 37
4.2.4.2.1 Chức năng “thành viên” 37
4.2.4.2.2 Chức năng “đăng bài” 38
4.2.4.2.3 Chức năng “Hiển thị bài viết” 38
4.2.4.2.3 Chức năng “Tổng hợp gởi E-mail báo cáo” 39
4.2.5 Mô hình quan hệ 39
4.2.5 Thiết kết cơ sở dữ liệu 40
4.2.5 Lược đồ quan hệ giữa các bảng 43
4.3 XÂY DỰNG ỨNG DỤNG 45
4.3.1 Các thư viện cần thiết cho ứng dụng 45
4.3.2 Xây dựng các lớp ứng dụng xử lý dữ liệu cho ứng dụng 45
4.3.2.1 Lớp ConnectDB 45
4.3.2.2 Lớp SmtpGmail 47
4.3.2.2 Các lớp khác 48
4.3.3 Xây dựng các trang nội dung JSP 48
4.3.3.1 Sử dụng JavaScript và áp dụng AJAX vào website 49
4.3.3.2 Sử dụng Cascading Style Sheet (CSS) 50
4.3.4 Thiết kế các trang JSP 51
4.3.4.1 Modul đăng ký và quản lý thành viên 51
4.3.4.2 Modul đăng bài 64
4.3.4.3 Modul gửi báo cáo tổng kết đến tất cả các thành viên 71
KẾT LUẬN 77
TÀI LIỆU THAM KHẢO 78
Trang 3LỜI NÓI ĐẦU
Web là công nghệ trên Internet cho phép hiển thị thông tin một cách sinh động, gần gũi với con người hơn trên một trang thông tin gọi là trang Web Trang Web được trình bày trên các bộ trình duyệt Web (Browser) trên các máy Client Trang Web chính là các file dạng Text được cấu trúc hoá theo ngôn ngữ HTML
Hiện nay và tương lai thì Internet rất phổ biến và ngày càng có nhiều người dùng Internet được áp dụng vào tất cả các lĩnh vực trong cuộc sống Nhưng nổi bật nhất là lĩnh vực giải trí đa phương tiện và thương mại điện tử
Vì vậy em đã quyết định xây dựng đồ án là một ứng dụng “Cổng thông tin điện tử trực tuyến cho Công ty Truyền thông và Giải trí Hoàng Trần” Đồ án sẽ tập chung và giới thiệu một cách tổng quan nhất để xây dựng ứng dụng này Trong đồ án cũng chỉ đưa ra những thư viện và chức năng tổng quát và cốt lõi nhất
Hiện nay có rất nhiều các website có chức năng và tính năng tương
tự.Các Website này hoạt động rất hiệu quả và đem lại nguồn thu rất lớn cho các công ty và cá nhân
Website mà đã được xây dựng là thành quả của em khi tiến hành thực tập (làm việc) tại công ty Truyền thông và Giải trí Hoàng Trần ở Hà Nội Website
Khi thực hiện website này em cũng có sử dụng các công cụ để thiết kế và viết mã của website Các công cụ này gồm: Netbean5.5, JBuilder X, Macromedia Dreamweaver 8, Photoshop CS2,…
Ngoài ra em cũng có sử dụng một số thư viện có sẵn để phục vụ các chức năng như là upload, gửi mail,…
Trong tương lai em và công ty sẽ tiếp tục phát triển và nâng cấp các chức năng có sẵn cũng như là xây dựng mới để cho website hoạt động hiệu quả và phong phú hơn
Khi thực hiện đồ án này em đang thực tập (làm việc) tại công ty Truyền Thông và Giải Trí Hoàng Trần ở Hà Nội Nên em đã được sự giúp đỡ rất nhiều từ
Trang 4các thầy cô trong khoa, các đồng nghiệp ở công ty Truyền thông và Giải trí Hoàng Trần ở Hà Nội
Đặc biệt là Thầy giáo Phùng Trung Nghĩa ở bộ môn Điện tử - Viễn thông
đã giúp đỡ và định hướng em trong toàn bộ thời gian thực tập cũng như là xây dựng đồ án Ngoài ra còn có anh Hoàng Đình Quy, phó giám đốc công ty Truyền thông và Giải trí Hoàng trần đã tận tình hướng dẫn kỹ thuật cho em khi em xây dựng website “Cổng thông tin điện tử mua bán rao vặt cho công ty Truyền thông
Trang 5DANH SÁCH HÌNH VẼ VÀ BẢNG BIỂU DANH SÁCH HÌNH VẼ
Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng
“Tổng hợp và gửi Email báo cáo” 41
Trang 64.12 Giao diện của ứng dụng 50
4.3 Bảng dữ liệu quản lý quốc gia 43
4.5 Bảng dữ liệu quản lý bài viết qua tổng đài 1900555508 43
4.6 Bảng dữ liệu quản lý bài viết 44
4.7 Bảng dữ liệu quản lý bài viết qua tổng đài 1900555508 45
Trang 7bị điện tử dân dụng, các thiết bị điện tử điện lạnh, …
Nhưng ngay lập tức người ta đã ta thấy được sức mạnh của nó và đã phát triển nó để có thể làm được nhiều thứ khác như ngày nay Ngày nay Java cũng vẫn là ứng cử viên lớn cho cho việc phát triển các ứng dụng dành cho các thiết bị
có phần cứng hạn chế đặc biệt là các ứng dụng cho các thiết bị di động Không những thế Java còn được sử dụng để xây dựng các ứng dụng mạng và Internet như là các hệ thống Client-Server hay Website, …
1.2 CƠ BẢN VỀ JAVA
Java là ngôn ngữ lập trình hướng đối tượng Nó được thiết kế thừa kế các
ưu điểm của các ngôn ngữ được phát triển trước nó như là: Pascal, C\C++, …
Ưu điểm vượt trội của Java so với C++ là nó là một ngôn ngữ nhỏ gọn các thư viện của được thiết kế thành các gói (pagket) Nếu cần sử dụng gói nào thì chỉ việc nhập khẩu (import) nó Java là ngôn ngữ đơn thừa kế nên tránh được một
số hậu quả chết người do nhầm lẫn, không kiểm soát được của người lập trình
Tiếp theo sẽ là các kiến thức cơ bản về Java
1.2.1 Cấu trúc của một chương trình Java chuẩn
Để mô phỏng cấu trúc của một chương trình Java chuẩn cũng giống như với bao ngôn ngữ lập trình khác đó là chương trình Hello World Và đây là chương trình Hello World kinh điển
//File name HelloWorld.java
class HelloWorld{
public static void main(String[] args){
System.out.println(“Hello World”);
} }
Trang 8Hãy ghi file trên với tên HelloWorld.java và sử dụng trình JDK để biên dịch và chạy chương trình trên Kết quả là chương trình sẽ in ra màn hình dòng chữ:
Hello World
1.2.2 Các lệnh cơ bản trong Java
Về cơ bản cấu trúc các lệnh của Java giống với C++ Dưới đây là chi tiết cấu trúc và các các sử dụng của các lệnh trong Java
1.2.2.1 Lệnh if và if…else
Lệnh if là lệnh rẽ nhánh với điều kiện đã cho Cấu trúc như sau:
if(điều kiện rẽ nhánh){
//các câu lệnh xử lý dữ liệu }
Trang 9… default:
Ví dụ:
for(int i=0; i<10; i++){
System.out.println(i);
}
Trang 101.2.2.4 Lệnh while
Đây là lệnh lặp không biết trước số lần lặp Lệnh lặp khi điều kiện đúng
và thoát khỏi lệnh khi điều kiện sai Cấu trúc lệnh như sau:
while(điều kiện lặp){
//Các câu lệnh xử lý dữ liệu }
do{
//Các câu lệnh xử lý dữ liệu }while(điều kiện lặp)
Câu lệnh sẽ lặp khi điều kiện lặp còn đúng
class Text1 {
//Các thuộc tính và phương thức của đối tượng
}
Trang 111.2.4 Kế thừa trong Java
Java là ngôn ngữ đơn kế thừa Để khai báo kế thừa trong Java chúng ta sử dụng từ khóa extends Cấu trúc cơ bản của một lớp kế thừa như sau:
mô tả sự kế thừa của ví dụ trên như hình 1.1
Hình 1.1 Kế thừa trong Java
Trang 121.3 CƠ BẢN VỀ JAVA SERVER PAGE (JSP)
Java Server Page (JSP) là một công nghệ của Java nhằm phục vụ cho việc thiết kê các trang Web có nội dung động hoạt động theo mô hình Client-Server trên Internet JSP là một Server Script được kết hợp với các mã HTML.Tiền thân của JSP là Servlet, Servlet thực chất là các lớp Java được thiết kế để phục vụ việc tạo ra các trang Web có nội dung động Nhưng mà nó có một nhược điểm là rất khó cho việc tạo giao diện người dùng theo ý muốn cho trang Web Do vậy mà JSP đã ra đời nhằm khắc phục các hạn chế này của Servlet Nhưng chúng ta cần chú ý rằng trước khi đưa ra kết quả cuối cùng để hiển thị thành một trang như mong đợi thì các trang JSP được biên dịch sang các trang Servlet rồi mới chuyển thành các file class rồi thực thi các file class
1.3.1 Cấu trúc cơ bản của JSP
Vì JSP là một Server Script nên nó được kết hợp sử dụng cùng với các mã HTML và file của nó được ghi với phần mở rộng là jsp Dưới đây là cấu trúc cơ bản
Trang 13và trả về kết quả cho người sử dụng Quá trình đó được mô hình hóa như hình 1.2 dưới đây
Hình 1.2 Quy trình biên dịch trang JSP
Trang 141.3.4 Cấu trúc lệnh của JSP
Cấu trúc của các lệnh trong JSP hoàn toàn giống với cấu trúc lệnh trong Java JSP có tất cả các lệnh cơ bản của Java Chúng ta cũng có thể sử dụng lớp trong JSP bằng cách sử dụng các đối tượng của lớp
Trang 15Oracle là hệ quản trị rất đang năng Nó vừa là hệ quản trị cơ sở dữ liệu quan hệ đồng thời nó cũng có thể được áp dụng vào các cơ sở dữ liệu phân tán
Đặc biệt là tính tương thích của nó với Java có thế nói là rất tuyệt vời Chính vì thế mà em quyết định sử dụng Oracle trong ứng dụng Website mà em đã thực hiện
2.2 CÁC CHỨC NĂNG CƠ BẢN CỦA ORACLE
Lưu trữ dữ liệu
Tạo ra và duy trì cấu trúc dữ liệu
Cho phép nhiều người dùng truy xuất đồng thời
Hỗ trợ tính bảo mật và riêng tư
Cho phép lấy ra và xử lý các dữ liệu lưu trữ
Cho phép nhập và nạp dữ liệu
Cung cấp cơ chế chỉ mục (index) hệu quả để lấy nhanh các dữ liệu lựa chọn
Cung cấp tính nhất quán giữa các bản ghi khác nhau
Bảo vệ dữ liệu khỏi mất mát bằng các quá trình sao lưu (backup) và phục hồi (recovery)
2.3 ORACLE VÀ CÔNG NGHỆ CLIENT/SERVER
2.3.1 Ba ưu điểm của kiến trúc công nghệ Clienr/Server so với kiến trúc công nghệ máy lớn
Cấu trúc Clienr/Server đưa ra một số ưu điểm so với các kiến trúc cũ:
Nó hỗ trợ việc sử dụng nhiều chủng loại máy client khác nhau Trong môi trường ngày nay, người sử dụng có thể dùng Windows NT, Windows XP,
Trang 16một máy Mac, hay một trạm UNIX, tất cả đều có thể nối với cùng một Server
Trách nhiệm tính toán được phân bổ một cách hợp lý giữa client và server Máy client có trách nhiệm điều khiển giao diện người dùng- hiển thị các thông tin, hợp lệ hóa đầu vào và cung cấp sự phản hồi (feedback) hợp lý- trong khi máy server được dùng như một server cơ sở dữ liệu
Nó độc lập với thủ tục mạng, hệ điều hành ở máy server và hệ điều hành ở máy client Sự độc lập này cho ta sự linh động lớn trong việc lựa chọn các thành phần phần cứng và phần mềm của một hệ thống mới hay khi thực hiện một ứng dụng client/server trên một cơ sở phần cứng đã tồn tại
2.3.2 Ưu điểm của thủ tục lưu trữ trong với một khối lệnh PL/SQL
Gọi một thủ tục lưu trữ trong từ một ứng dụng client giảm đáng kể mật độ lưu thông mạng Thay vì ứng dụng gởi một khối chương trình PL/SQL từ client, thì chỉ cần một lệnh gọi đơn đến thủ tục hay hàm với một danh sách tham số tùy ý
Các thủ tục lưu trữ trong cung cấp một cơ chế bảo mật hiệu quả và tiện lợi Một trong những đặc trưng của thủ tục lưu trữ trong với PL/SQL là nó luôn thực hiện với đặc quyền (privilege) của chủ nhân thủ tục (procedure) Diều này ngăn các user không không có quyền đọc mã thủ tục truy xuất các đối tượng đặc quyền Đặc tính này thường dùng để giảm lượng giám sát cấp phát quền mà DBA phải làm
Cả hai dạng text đã được biên dịch của thủ tục lưu trữ trong đều nằm trong
cơ sở dữ liệu Do dạng biên dịch của thủ tục có sẵn và sẵn sàng thực hiện, nhu cầu phân tích cú pháp và biên dịch PL/SQL lúc thực thi (runtime) được giảm nhẹ
2.3.3 Chức năng của NET8
Net8 là một phần mềm kết nối cơ sở dữ liệu dùng để cung cấp các thông tin cơ sở dữ liệu xác thực, tối ưu trên mọi thủ tục mạng thông dụng Net8 được thiết kế để cung cấp tính trong suốt của server cho bất kỳ nút nào bên trong một ứng dụng mạng và sử dụng các thành phần nằm trên cả hai phía client và server của một ứng dụng
Trang 17Ngoài việc cung cấp sự kết nối giữa máy client và server trong môi trường client/server, server cũng sử dụng Net8 để giao dịch các chuyển tác phân tán (distributed transaction), các phép gọi thủ tục từ xa và sao lưu bảng (replication) với các server khác Các server tham chiếu đến các server khác bằng cách sử dụng các liên kết cơ sở dữ liệu (database link) để định nghĩa tên của các cơ sở dữ liệu từ xa Các liên kết cơ sở dữ liệu đơn giản hóa quá trình phân tán bằng cách cung cấp sự truy xuất trong suốt các đối tượng từ xa như các bảng và thủ tục, cho phép một ứng dụng tham chiếu chúng như thể chúng nằm ở cơ sở dữ liệu cục bộ của ứng dụng
2.4 CẤU TRÚC CỦA ORACLE
Cấu trúc của Oracle bao gồm phần cứng và phần mềm Phần cứng là một máy tính để cài đặt Oracle lên đó
Phần mềm là sức mạnh của Oracle Trong hệ thống của Oracle đặc biết được thiết kế gồm có các tập tin Redo Log Các tập tin này sẽ được sử dụng để phục hồi lại hệ thống khi hệ thống gặp sự cố
Cấu thành của một thể hiện của Oracle như sau: Mỗi lúc một cơ sở dữ liệu được tạo ra, một system global area (SGA) được định vị và các quá trình chạy nền (background) của Orale được khởi động Sự kết hợp giữa các quá trình background và các bộ nhớ đệm gọi là một thể hiện của Oracle
PL/SQL giao tiếp tự nhiên với các đối tượng cơ sở dữ liệu khác
PL/SQL dễ đọc và có nhiều đặc trưng modul hóa code và quản lý lỗi
2.5.1 Cấu trúc của PL/SQL
Bất kỳ một khối PL/SQL nào cũng có ba thành phần Những thành phần này là: thành phần khai bào biến, phần thực thi và trình xử lý exception
Trang 18 Phần khai báo biến chứa phần định danh tất cả các cấu truc biến sẽ được
sử dụng trong khối code Một biến có thể là một kiều dữ liệu bất kỳ có sẵn trong Oracle, cũng như một số kiểu đặc biệt của PL/SQL
exception
Thành phần cuối cùng của khối lệnh PL/SQL là trình xử lý exception Phần mã này định nghĩa tất cả các lỗi có thể xảy ra trong khối và chỉ định chúng lên được xử lý như thế nào Trình xử lý exception là một tùy chọn trong PL/SQL
Trong Oracle có định nghĩ có bốn loại khối mã lệnh là:
Procedure- một chuỗi các lệnh nhận và/hoặc trả về không hay nhiều biến
Function- một chuỗi các lệnh nhận không hoặc là nhiều biến trả về một giá trị
Packge- một tập các thủ tục và các hàm có hai phần, một danh sách đặc tả các hàm và các thủ tục có sẵn cùng các thông số của nó, và một phần thân chứa mã thực sự của các thủ tục và các hàm
Trigger- một chuỗi các lệnh PL/SQL gắn với một bảng cơ sở dữ liệu mà được thực hiện khi một sự kiện (select, update, insert, delete) xảy ra PL/SQL có sử dụng một số vòng lặp như sau:
2.5.2 Con trỏ (Cursor)
Trong PL/SQL có hai loại con trỏ là con trỏ ngầm và con trỏ tường minh
Con trỏ ngầm là một địa chỉ không đặt tên của khối lệnh SQL được xử lý bởi Oracle và/hoặc cơ chế thực thi PL/SQL Mọi lệnh SQL đều thực hiện trong một con trỏ ngầm, bao gồm các lệnh update, insert, delete và các lệnh select không thực hiện trong một con trỏ tường minh Một số thuộc tính của con trỏ ngầm:
Trang 19o %notfound chỉ định không tìm ra hàng nào Giá trị thẻ trả về là
o %rowcountchỉ định số hàng đã được xử lý bởi con trỏ Trả về một giá trị số
o %found chỉ định có tìm được hàng nào không Giá trị trả về là TRUE hay FALSE, ngược lại với %notfound
o %isopen chỉ định con trỏ đề cập đến có mở và sẵn sàng sử dụng
Con trỏ tường minh là con trỏ được đặt tên bởi người lập trình Nó chính
cursor_name IS Khi một lệnh select được đặt trong một con trỏ tường minh, người lập trình có toàn quyền điều khiển trên sự thực hiện lệnh
DECLARE CURSOR employee_cursor IS SELECT * FROM EMPLOYEE;
2.6 SQL*PLUS
SQL*PLUS là một tiện ích của Oracle nhằm phục vụ cho việc thao với cơ
sở dữ liệu Oracle Như là thực thi các câu truy vấn SQL hay là dành cho lập trình các khối lệnh PL/SQL
2.6.1 Các cách kết thúc một lệnh SQL trong SQL*PLUS
Chúng ta có thể kết thúc một lệnh SQL theo một trong ba cách sau:
Với một dấu chấm phẩy (;)
Với một dấu slash (/) nằm một mình trên một hàng
Với một hành trống
Chấm phẩy ở cuối hàng cuối cùng của lệnh và nhấn Enter SQL*Plus sẽ xử lý lệnh và đưa nó vào bộ đệm của SQL (SQL buffer) Nếu chúng ta vô ý nhấn Enter trước khi gõ dấu chấm phẩy, SQL*Plus sẽ nhắc chúng ta bằng một hàng có đánh
số Gõ dấu chấm phẩy và nhấn Enter lần nữa để chạy lệnh
Một dấu slash (/) nằm một mình trên một dòng cũng báo cho SQL SQL*Plus biết chúng ta muốn chạy lệnh Khi nhấn Enter ở hàng cuối cùng SQL*Plus sẽ
Trang 20nhắc chúng ta bằng một hàng tiếp theo có đánh số, nhấn slash (/) và nhấn Enter một lần nữa, SQL*Plus sẽ thực hiện lệnh đồng thời đưa nó vào SQL buffer
Một hàng trống báo cho SQL*Plus biết rằng chúng ta đã chấm dứt đưa lệnh vào, nhưng chưa muốn chạy nó Khi nhấn Enter ở hàng cuối cùng, SQL*Plus sẽ nhắc chúng ta bằng một hàng tiếp theo có đánh số Nhấn Enter một lần nữa, SQL*Plus sẽ hiện trở lại dấu nhắc lệnh Lệnh bạn vừa gõ vào không được thực hiện mà chỉ đưa vào SQL buffer Nếu lúc này bạn lại đưa một lệnh khác, SQL*Plus sẽ ghi đè lên lệnh vừa rồi
2.6.2 Thêm một hàng mới vào bộ đệm của SQL*Plus
một hàng trước hàng 1, nhập vào số không (“0”) và theo sau là chuỗi text SQL*Plus chèn hàng vào đầu buffer và hàng này trở thành hàng 1
SQL>0 SELECT EMPNO
Giả sử bạn muốn thêm một hàng thứ 4 vào lệnh SQL bạn đã sử dụng ở ví dụ
nhấn Enter SQL*Plus nhắc bạn hàng mới:
Nhấn Enter lần nữa để chỉ định rằng bạn không nhập vào thêm hàng nào nữa, và
2.6.2 Biến liên kết REFCURSOR và cách sử dụng
các kết quả của một lệnh SELECT chứa trong một khối PL/SQL
con trỏ PL/SQL trong các thủ tục lưu trữ trong Điều này cho phép bạn lưu các
Trang 21SQL>VARIABLE dept_sel REFCURSOR
Tiếp theo là nhập vào khối lệnh PL/SQL sử dụng biến liên kết trong một lệnh OPEN… FOR SELECT Lệnh này mở một biến con trỏ và thực hiện chuỗi truy vấn
2.7 KẾT NỐI ORACLE VỚI JSP
Có hai cách để Java và JSP có thể kết nối được với Oracle đó là thông qua ODBC hoặc là JDBC Ở đây em xin trình bày cách kết nối qua JDBC Để kết nối được với Oracle thì chúng ta phải có thư viện kết nối JDBC Thư viện này có
Sau đây là một ví dụ với Java:
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getString(1));
Trang 22rs.close();
stmt.close();
conn.close();
}catch(SQLException e){}
Trang 23CHƯƠNG 3:AJAX VÀ CSS 3.1 AJAX
3.1.1 Gới thiệu về AJAX
AJAX là cụm từ viết tắt của Asynchronous JavaScript anh XML AJAX không là một ngôn ngữ lập trình mới Nhưng nó là một công nghệ cho việc tạo các ứng dụng Web tốt hơn, nhanh hơn và thân thiện hơn
Với AJAX, mã JavaScript của chúng ta có thể truyền thông trực tiếp với server,
sử dụng đối tượng JavaScript XMLHttpRequest JavaScript có thể chuyển đổi giữ liệu với server mà không cần tải lại trang
AJAX sử dụng phương thức truyền (HTTP requests) dữ liệu không đồng bộ giữa trình duyệt và web server Hình 3.1 là mô hình của công nghệ này
Hình 3.1Mô hình hoạt động của AJAX
AJAX được dựa trên các chuẩn về web hiện nay gồm:
Trang 243.1.2 HTTP Requests
Trong việc viết mã JavaScript truyền thống, nếu bạn muốn lấy bất cư thông tin gì từ cơ sở dữ liệu hoặc một file trên server, hoặc gửi thông tin người sử dụng tới server, bạn sẽ phải tạo lên một form HTML và POST hay GET dữ liệu lên server Người dùng sẽ nhấn vào nút “Submit” để gửi/nhận thông tin Chờ cho server phản hồi rồi một trang mới sẽ được tải với các kết quả
Bởi vì server trả lại một trang mới vào mỗi thời điểm mà người dùng submit dữ liệu do vậy mà các ứng dụng web sẽ chạy chậm và không thân thiện đối với người sử dụng
Với AJAX, JavaScript có thể giao tiếp trực tiếp với server, thông qua đối tượng JavaScript XMLHttpRequest
Với HTTP request, một trang web có thể tạo một yêu cầu gửi và trả lời từ server
mà không cần tải lại trang
Với đối tượng XMLHttpRequest người phát triển web có thể cập nhật trang với
dữ liệu từ server sau khi trang đã được tải
Đối tượng XMLHttpRequest được hỗ trợ trong Internet Explorer 5.0 trở lên, Safari 1.2, Mozilla 1.0/Firefox, Opera 8 trở lên, và Netscape 7
3.1.3 Đối tượng XMLHttpRequest
Trước khi gửi dữ liệu tới server, chúng ta sẽ xem sét ba thuộc tính rất quan trọng của đối tượng XMLHttpResquest
xmlHttp.onreadystatechange=function()
{
// We are going to write some code here
}
Trang 253.1.3.2 Thuộc tính readyState
Thuộc tính readyState nắm giữ trạng thái phản hồi (response) từ server Tại mỗi thời điểm readyState thay đổi, hàm onreadystatechange sẽ được thực thi Các giá trị của thuộc tính readyState có thể có:
Trạng thái Mô tả
Bảng 3.1 Thuộc tính readyState
húng ta thêm một lệnh if vào hàm onreadystatechange để kiểm tra xem yêu cầu
đã hoàn thành hay chưa
}
Trang 263.1.3.4 Các trình duyệt hỗ trợ
Nguyên tắc hoạt động của AJAX là đối tượng XMLHttpRequest
Các trình duyệt khác nhau sử dụng các phương thức khác nhau để tạo đối tượng XMLHttpRequest
Internet Explorer sử dụng ActiveXObject, trong khi các trình duyệt khác
sử dụng đối tượng JavaScript tích hợp sẵn được gọi là XMLHttpRequest
Để tạo và sử dụng đối tượng này cho các trình duyệt khác nhau, chúng ta sử dụng một lệnh try… catch
Dưới đây là một ví dụ cụ thể về điều này:
Trang 27Name: <input type="text" name="username" />
Time: <input type="text" name="time" />
</form>
</body>
</html>
XMLHttpRequest Rồi cố gắng tạo đối tượng với lệnh xmlHttp = new XMLHttpRequest() Cái này dùng cho trình duyệt Firefox, Opera và Safari
ActiveXObject(“Msxml2.XMLHTTP”) cho Internet Explorer 6 trở lên, nếu
ActiveXObject("Microsoft.XMLHTTP")cho Internet Explorer 5.5 trở lên
3.1.4 Gửi yêu cầu tới Server
Để gửi một yêu cầu tới server, chúng ta sử dụng hai phương thức là open() và send()
của script phía server Đối số thứ ba chỉ ra rằng yêu cầu sẽ được xử lý không
Ví dụ:
xmlHttp.open("GET","time.jsp",true);
xmlHttp.send(null);
Trang 28Bây giờ chúng ta phải khai báo các hàm AJAX để thực thi Chúng ta sẽ cho phép hàm chạy “đằng sau” khi người dùng gõ một số thứ ở trường username:
Trang 293.1.5 Script phía Server
Bây giờ chúng ta sẽ tạo một đoạn mã hiển thị thời gian hiện thời của hệ thống phía server bằng JSP
Chúng ta sẽ gửi trở về thời gian hiện thời Mã của trang JSP time.jsp như sau:
<%
out.write(new Date());
%>
Trang 303.1.6 Kết nối với cơ sở dữ liệu
Dưới đây em sẽ đưa ra một ví dụ dùng AJAX để thao tác với dữ liệu trong
cơ sở dữ liệu Hình 3.2 là hình ảnh của ví dụ này
Hình 3.2 Kết nối với Cơ sở dữ liệu
<option value="ALFKI">Alfreds Futterkiste
<option value="NORTS ">North/South
<option value="WOLZA">Wolski Zajazd
Chúng ta chỉ có thể thấy rằng chỉ có một form HTML đơn với một hộp drop
Trang 31Đoạn ngay bên dưới đó là một thẻ div có tên là “txtHint” Thẻ div được
sử dụng để hiển thị dữ liệu được trả về từ web server
}
}
function GetXmlHttpObject()
Trang 32}
return xmlHttp;
}
3.1.6.3 Trang JSP phía Server
Trang JSP phía server được gọi bằng JavaScript, trang đó được đặt tên là
Trang 33ResultSet rs = null;
String driver="jdbc:oracle:thin:@10.0.0.47:1529:ora"; String userdb="marche";
String passdb="gamemarket"
try{
DriverManager.registerDriver(new oracle.jdbc.OracleDriver());
conn = DriverManager.getConnection(driver, userdb, passdb);
Trang 343.2 CSS (CASCADING STYLE SHEET)
3.2.2 Tạo và chèn các định nghĩa CSS
Tài liệu HTML cho phép chúng ta tham chiếu đến các định nghĩa CSS ngoại (external) nằm trong một file riêng biệt hoặc tham chiếu đến các định nghĩa CSS nội (internal) đặt trực tiếp trong file tài liệu HTML Ngoài ra bạn cũng có thể sử dụng định nghĩa CSS trực tiếp ngay tại nơi định dạng của văn bản (inline style)
3.2.2.1 Định nghĩa và khai báo CSS ngoại
kiểu CSS ngoại như sau:
top: 14px;
}
a{color:#036;text-decoration:none;font-family:arial;font-size:13px; font-weight:bold;}
Trang 35<div class="dangnhap"></div>
3.2.2.1 Định nghĩa và sử dụng CSS nội
Bạn có thể định nghĩa trực tiếp CSS trong tài liệu HTML mà không cần
3.2.2.1 Khai báo kiểu CSS trực tiếp (inline)
Thay vì định nghĩa kiểu CSS như hai cách trên, chúng ta có thể khai báo trực tiếp (inline) Ví dụ:
<samp style="text-decoration:none; font:Verdana; size:14px; font-weight:bolder; color:#FFFFFF; margin-left:20px">Đăng ký thành viên</samp>
font-Cách khai báo này truy không tổng quát nhưng có thể áp dụng cho những định dạng đặc trưng cho phép chồng lên phần định dạng CSS đã khai báo trước
đó
Trang 36CHƯƠNG 4:
XÂY DỰNG ỨNG DỤNG CỔNG THÔNG TIN ĐIỆN TỬ MUA BÁN RAO VẶT TRỰC TUYẾN 4.1 GIỚI THIỆU
Trong quá trình học tập tại khoa và đi thực tập em đã học được rất nhiếu kiến thức Đặc biệt là khi đi thực tập em đã học hỏi được các kiến thức trong thực tế
về việc phát triển web Cho nên em đã quyết định xây dựng ứng dụng web nhằm thực hiện nhiệm vụ quảng cáo, rao vặt, nua bán, … cho công ty TNHH Truyền thông và Giải trí Hoàng Trần Website này có tên miền là www.daoquanhthitruong.com
Đây là một trang quảng cáo trực tuyến trên mạng Nó sẽ là nơi đăng các tin mua bán, rao vặt về tất cả các lĩnh vực trong cuộc sống
4.2 PHÂN TÍCH HỆ THỐNG
4.2.1 Khảo sát hệ thống ban đầu
Công ty truyền thông và giải trí Hoàng Trần chuyên hoạt động trong lĩnh vực giải trí truyền thông đa phương tiện Công ty có kết nối Internet và có hệ thống cơ sở máy chủ cơ sở dữ liệu Oracle riêng Để phục vụ mục đích kinh doanh thương mại điện tử công ty đã quyết định xây dựng website www.daoquanhthitruong.com để phục vụ mục đích quảng cáo, rao vặt trực tuyến
4.2.2 Các chức năng của website
Website được xây dựng với mục đích quảng cáo và rao vặt nên có cấu trúc khá đơn giản Gồm có các chức năng sau:
Đăng ký thành viên Chức năng này thực hiện nhiệm vụ đăng ký thành viên và gửi E-mail xác thực tới E-mail mà người dùng đã đăng ký Và gửi kèm theo một mã, link để kích hoạt tài khoản thì tài khoản của người dùng mới được kích hoạt
Chức năng đăng bài Chức năng này cho phép người dùng đăng các bài quảng cáo, rao vặt của mình Các bài đăng sẽ được hiển thị trực tiếp lên website Để sử dụng được chức năng này bắt buộc bạn phải đăng nhập vào
hệ thống
Trang 37 Chức năng đăng quảng cáo bằng tin nhắn SMS qua tổng đài 8385
Chức năng đăng quảng cáo qua tổng đài 1900555508
Chức năng bào cáo Chức năng này có nhiệm vụ báo cáo với người sử dụng xem người đó đã đăng bao nhiêu tin, và cũng có bao nhiêu tin, bài phù hợp với người đó
Chức năng báo cáo các bài mới nhất trong một khoảng thời gian nhất định Chức năng này thực hiện việc tổng hợp xem trong một khoảng thời gian nhất định có bao nhiêu bài mới đăng rồi gửi E-mail tới tất cả các thành viên
4.2.3 Biểu đồ phân cấp chức năng
Chức năng của ứng dụng được xây dựng như hình 4.1 dưới đây:
Hình 4.1 Biểu đồi phân cấp chức năng
4.2.4 Biểu đồ luồng dữ liệu
4.2.4.1 Biểu đồ luồng dữ liệu mức đỉnh
Biểu đồ luồng dữ liệu mức đỉnh của hệ thống có:
Hai tác nhân ngoài là: người dùng và ban quản trị website
Bốn chức năng là: thành viên, đăng bài viết, hiển thị bài viết, tổng hợp và gửi E-mail báo cáo
Trang 38Hình 4.2 Biểu đồ luồng dữ liệu mức đỉnh
4.2.4.2 Biểu đồ luồng dữ liệu mức dưới đỉnh
Trang 394.2.4.2.2 Chức năng “đăng bài”
Hình 4.4 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “đăng bài”
4.2.4.2.3 Chức năng “Hi ển thị bài viết ”
Hình 4.5 Biểu đồ luồng dữ liệu mức dưới đỉnh chức năng “Hiển thị”