Xây dựng Website cho hội doanh nghiệp trẻ Hà Nội

Lời cảm ơn - 3 -

Chương I: Khảo sỏt mụ tả bài toỏn. - 4 -

1.1.Đặt vấn đề. - 4 -

1.2.Lựa chọn đề tài - 4 -

1.3.Lựa chọn cụng cụ và ngụn ngữ. - 5 -

1.4.Mục đích, yêu cầu của đồ ỏn. - 5 -

1.5.Nhiệm vụ của đồ ỏn. - 6 -

1.6.Nội dung của đồ ỏn. - 7 -

Chương II: Phân tích thiết kế bài toỏn. - 8 -

2.1.Tổng quan. - 8 -

2.2.Phõn tớch và xõy dựng biểu đồ phõn cấp chức năng. - 8 -

2.2.1.Biểu đồ phõn cấp chức năng. - 8 -

2.2.2.Phõn quyền. - 9 -

2.3.Phõn tớch và xõy dựng biểu đồ luồng dữ liệu. - 10 -

2.3.1. Biểu đồ luồng dữ liệu mức ngữ cảnh. - 11 -

2.3.2. Biểu đồ luồng dữ liệu mức đỉnh. - 12 -

2.3.2.1.Cung cấp tin tức: - 12 -

2.3.2.2.Quản lớ dạy học. - 13 -

2.3.2.3.Quản lớ Forum. - 14 -

2.3.2.4.Quản trị. - 14 -

2.3.3.Biểu đồ luồng dữ liệu mức dưới đỉnh. - 15 -

2.3.3.1.Định nghĩa chức năng cung cấp tin tức. - 15 -

2.3.3.2.Định nghĩa chức năng dạy và học. - 16 -

2.3.3.3.Định nghĩa chức năng quản lớ Forum. - 17 -

2.3.3.4.Định nghĩa chức năng quản trị. - 18 -

2.4.Thiết kế cơ sở dữ liệu. - 19 -

2.4.1.Mụ hỡnh thực thể. - 19 -

2.4.2.Mụ hỡnh thực thể liờn kết. - 26 -

Chương III: Giới thiệu về ngụn ngữ và cụng cụ sử dụng. - 28 -

3.1.Ngụn ngữ Java và cụng nghệ JSP/Servlet. - 28 -

3.1.1.Ngụn ngữ Java. - 28 -

3.1.1.1.Tổng quan về ngụn ngữ lập trỡnh Java. - 28 -

3.1.1.2.Đặc điểm của Java. - 29 -

3.1.1.3.Viết chương trỡnh ứng dụng Java. - 31 -

3.1.1.4.Cỏc loại ứng dụng trong Java. - 31 -

3.1.2.Servlet. - 35 -

3.1.2.1.Định nghĩa Servlet. - 35 -

3.1.2.2.Ưu điểm của Servlet. - 36 -

3.1.2.3.Biờn dịch Servlet. - 36 -

3.1.2.4.Đăng kí và triệu gọi Servlet. - 37 -

3.1.2.5.Các phương thức xử lý cơ bản của Servlet. - 38 -

3.1.3.JSP( Javaserver Pages). - 41 -

3.1.3.1.Giới thiệu chung về JSP. - 41 -

3.1.3.2.Những đặc điểm nổi bật - 42 -

3.1.3.3.Cỏc thẻ lệnh JSP. - 45 -

3.1.4.Quan hệ giữa Servlet và JSP. - 56 -

3.1.4.1.Ưu nhược điểm của JSP và Servlet. - 57 -

3.1.4.2.JSP/Servlet và cỏc cụng nghệ Web ASP,CGI,ISAPI. - 58 -

3.2.Trỡnh chủ Tomcat. - 59 -

3.2.1.Cài đặt Tomcat trờn Windows. - 59 -

3.2.2.Khởi động TomCat. - 60 -

3.2.3.Cài đặt cỏc ứng dụng Web. - 60 -

Chương IV: Cài đặt chương trỡnh. - 62 -

4.1.Hướng dẫn cài đặt chương trỡnh. - 62 -

4.2.Giới thiệu về cỏc chức năng. - 62 -

4.2.1.Giao diện và cỏc chức năng của B2B. - 62 -

4.2.2.Giao diện và cỏc chức năng của phần tin tức. 62

4.2.3.Trang Admin. 62

Chương V: Tổng kết. 63

5.1.Đáng giá tổng kết. 63

5.1.1.Những vấn đề đó thực hiện. 63

5.1.2.Những vấn đề chưa thực hiện. 63

5.2.Hướng phỏt triển. 63

Tài liệu tham khảo 64

 

doc64 trang | Chia sẻ: huong.duong | Lượt xem: 1251 | Lượt tải: 0download
Bạn đang xem trước 20 trang tài liệu Xây dựng Website cho hội doanh nghiệp trẻ Hà Nội, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
tớnh Kiểu Mụ tả 1 ID Auto number Mó người quản lớ Forum 2 Name Text Tờn người quản lớ Forum 3 Password Text Mật khẩu truy nhập 4 Khoa Yes/no Tài khoản của thành viờn bị khúa hay khụng. 5 SoChuDe Text Số chủ đề đó đăng. l)Thực thể Chủ đề. Thực thể Chủ đề chứa cỏc thụng tin về chủ đề đăng trờn Forum. Nú cho biết cỏc thụng tin về chủ đề như: tiờu đề của chủ đề, ngày chủ đề được đăng lờn, mó của thành viờn đăng chủ đề. STT Thuộc tớnh Kiểu Mụ tả 1 ID Auto number Mó của chủ đề. 2 TieuDe Text Tiờu đề chủ đề. 3 NgayDang Date/time Ngày giờ chủ đề được đăng. 4 NoiDung Memo Nội dung của chủ đề. 5 Xoa Yes/no Chủ đề cú bị xúa hay khụng 6 IDNguoiDang Number Mó của người gửi chủ đề. 2.4.2.Mụ hỡnh thực thể liờn kết. Cú cỏc quan hệ chớnh giữa cỏc thực thể: Quan hệ giữa Người viết bài( NguoiViet) và Bài viết( BaiViet). Quan hệ giữa Người đăng bài( NguoiDang) và Bài viết( Baiviet). Quan hệ giữa Người đăng sản phẩm ( NguoiDang) và Sản Phẩm ( SanPham). Quan hệ giữa Thành viờn Forum( Thanhvien) và Chủ đề( ChuDe). Quan hệ giữa Người đăng ký ( NguoiMua) và Sản Phẩm ( SanPham) SanPham ID TieuDe IDLoai NgayDang NoiDung Xoa IDDang NgayDang LoaiSanPham ID Ten NguoiDang ID Name Password Khoa SoSanPhamDang BaiViet ID TieuDe NgayGui NoiDung Anh Dang Xoa IDGui IDDang NgayDang fileName filePath NguoiViet ID Name Password Xoa SoBaiGui NguoiDang ID Name Password Khoa NguoiMua ID Name Password Khoa Mua IDMua IDTieuDe ThoiGian IDLoai ChuDe ID Title NoiDung Xoa IDDang NgayDang ThanhVien ID Name Password Khoa SoBaiDang Chương III: Giới thiệu về ngụn ngữ và cụng cụ sử dụng. 3.1.Ngụn ngữ Java và cụng nghệ JSP/Servlet. 3.1.1.Ngụn ngữ Java. 3.1.1.1.Tổng quan về ngụn ngữ lập trỡnh Java. Java là ngụn ngữ lập trỡnh hướng đối tượng, được phỏt triển bởi hóng Sun MicroSystem Java được thiết kế cho mục đớch đa nền( khụng phụ thuộc vào bất kỡ hệ điều hành nào) nờn mó của chương trỡnh Java sau khi biờn dịch thường ra một dạng file nhị phõn khỏc với cỏc file thực thi nhị phõn của Windows mà bạn thường thấy như .exe hay .com. Java biờn dịch ra mó nhị phõn gọi là byte-code và được triệu gọi thực thi trong mỏy ảo Java( Virtual Machine hay VM). File nhị phõn của Java thường mang tờn mở rộng là .class. Mỏy ảo Java thực sự là một chương trỡnh thụng dịch bỡnh thường cú khả năng thực thi cỏc mó byte- code tương tự như bộ xử lớ của mỏy tớnh thực thi cỏc mó nhị phõn là cỏc chỉ thị mó mỏy. Núi đỳng hơn, mỏy ảo Java là một kiến trỳc của bộ xử lớ nhưng thực thi bằng cơ chế phần mềm thay vỡ phần cứng. Chớnh vỡ lớ do này bạn chỉ cần viết mỏy ảo Java cho từng hệ điều hành là chương trỡnh Java( .class) cú thể chạy như nhau ở mọi nơi trờn cựng một kiến trỳc mỏy ảo. Bạn khụng cần lo về mỏy ảo Java. Cha đẻ của ngụn ngữ Java là hóng Sun MicroSystem chịu trỏch nhiệm xõy dựng cỏc mỏy ảo Java cho những hệ điều hành khỏc nhau.Nhiệm vụ của lập trỡnh viờn Java chỉ là viết chương trỡnh bằng mó nguồn Java sau đú biờn dịch ra chương trỡnh ra dạng file thực thi byte-code( .class) để chạy trờn mỏy ảo. Ta cú thể tỡm thấy mỏy ảo Java và trỡnh biờn dịch java trong bộ JDK( Java Deverlopment Kit) hỗ trợ bởi Sun và rất nhiều hóng khỏc như IBM, Oracle... Hiện JDK của Sun được xem là chuẩn và sử dụng nhiều nhất. Bạn cú thể tỡm thấy phiờn bản mới nhất của JDK1.4 tại địa chỉ của Sun: bộ cụng cụ phần mềm này được cho tải về miễn phớ. Java cú thể dựng để viết chương trỡnh ứng dụng tương tự như mọi ngụn ngữ lập trỡnh khỏc. Java thiờn về lập trỡnh cho cỏc ứng dụng mạng và internet. Ngoài ra bạn cú thể dựng java để viết Applet hoặc Servlet hay mó trang JSP là những thành phần ứng dụng đặc biệt dựng cho trỡnh duyệt( browser) và trỡnh chủ( Web server). 3.1.1.2.Đặc điểm của Java. Java là một ngụn ngữ đơn giản, hướng đối tượng, phõn tỏn, thụng dịch, mạnh mẽ, bảo mật , cấu trỳc độc lập, khả chuyển, hiệu quả cao và linh động. Sau đõy là một số đặc điểm của Java. Đơn giản( Simple): đặc điểm đầu tiờn và cũng là mục đớch cơ bản của Java là tỡnh đơn giản. Kớch thước của bộ biờn dịch cơ bản và lớp hỗ trợ là vụ cựng nhỏ. Theo cỏc nhà sỏng lập, kớch thước đú là 40KB cho trỡnh thụng dịch và cho lớp hỗ trợ, thờm vào bộ thư viện chuẩn và lớp hỗ trợ phõn tuyến thỡ kớch thước chỉ khoảng 175KB. Kớch thước này là của bản gốc cũn cỏc phiờn bản mới con số đú cũn tăng lờn. Tuy vậy so với Visual Basic và VC thỡ rất nhỏ. Hướng đối tượng( Object Oriented): mọi ứng dụng viết trờn Java đều phải được xõy dựng trờn cỏc đối tượng và thụng qua cỏc đối tượng. Cỏc hỗ trợ của java khụng cho phộp cỏc đối tượng cú tớnh đa thừa kế mà thay vào đú cú cỏc giao tiếp( interface). Phõn tỏn( Distributed): java được thiết kế để hỗ trợ cỏc ứng dụng phõn tỏn bằng cỏc lớp mạng (java.net). Một ứng dụng java cú thể dễ dàng được truy xuất từ cỏc mỏy chủ ở xa, nú cú thể mở hoặc truy cập đến cỏc đối tượng thụng qua mạng. Thụng dịch( Interpreter): Java là một ngụn ngữ thụng dịch( thật sự java là một ngụn ngữ vừa thụng dịch vừa biờn dịch) nờn nú trở nờn khả chuyển, Cỏc ứng dụng Java cú thể dễ dàng chạy trờn cỏc mỏy tớnh với cỏc nền phần cứng khỏc nhau, chỉ cần đi kem với nú là bộ thụng dịch, bộ gỡ rối và nhất là bộ thư viện (runtime library). Mạnh mẽ( Robust): java khụng cho phộp lập trỡnh viờn khai bỏo cỏc biến một cỏch tựy tiện, biến luụn phải tường minh. Nhờ đú mà những lỗi thường gặp trong khi viết bằng ngụn ngữ C như cấp phỏt bộ nhớ, bộ nhớ tràn, trựng lặp bộ nhớ đó được giải quyết. Bảo mật( Security): Java được viết cho cỏc ứng dụng chạy trờn mụi trương mạng phõn tỏn. Do đú Java được thiết kế sao cho cú khả năng tạo được một hệ thống khụng virus, khụng bị phỏ. Kỹ thuật xỏc minh của Java dựa vào cỏch mó húa theo khúa cụng cộng. Java khụng hỗ trợ biến con trỏ. Một thụng dịch bytecode sẽ kiểm tra chặt chẽ cỏc mó byte, khụng cho bất kỳ những hành vi khụng được phộp nào được thực hiện. Khả chuyển: mỏy ảo Java tương thớch với mụi trường được cài đặt tạo nờn kiến trỳc trung tớnh, cỏc ứng dụng Java chỉ cần ciết sao cho chay được trờn mỏy ảo đú là cú thể cài đặt và chạy tốt trờn mọi hệ thống. Mặt khỏc, cỏc kiểu dữ liệu của java được định nghĩa khụng phụ thuộc vào bộ xử lớ hay vào hệ điều hành mà cỏc ứng dụng được cài đặt. Hiệu quả cao( High performance ): so với cỏc chương trỡnh được biờn dịch hoàn tũan bằng C hay C++, cỏc chương trỡnh Java khụng cú hiệu quả cao hơn. Nhưng với tớnh năng giao diện đồ họa, sự đơn giản, nhỏ gọn, tớnh khả chuyển, ta cũng cú thể núi là hiệu quả chung của cỏc chương trỡnh Java là đỏng khớch lệ so với tớnh phức tạp của C/C++. Đa tuyến( Multithread): tớnh năng này cho phộp chỳng ta cú thể thực hiện nhiều tiến trỡnh song song và tương hỗ với nhau trỏnh được tớnh tuần tự nhàm chỏn và những thời gian chết trong chờ đợi. Linh động( Flexible): vỡ dựng trỡnh thụng dịch nờn Java là ngụn ngữ rất năng động. Trong khi chạy, mụi trường Java cú thể tự mở rộng để liờn kết cỏc lớp mới cú thể ở một mỏy chủ ở xa trờn mạng. Đú chớnh là thuận lợi to lớn của Java so với C/C++. 3.1.1.3.Viết chương trỡnh ứng dụng Java. Viết chương trỡnh ứng dụng Java rất đơn giản, ngoài bộ JDK ra tất cả những gỡ bạn cần chỉ là trỡnh soạn thảo văn bản đơn giản kiểu nopepad của Windows hay edit.exe của DOS. Trờn Linux/Unix bạn cú thể dựng trỡnh VI. Mó nguồn của Java chỉ là file thuần văn bản. Bạn cũng cú thể dựng cỏc mụi trường phỏt triển và biờn dịch Java cú giao diện trực quan như Jbuilder, Visual Age... Ngụn ngữ Java rẩt giống với ngụn ngữ C/C++. Tuy nhiờn phong cỏch lập trỡnh thỡ khỏc hẳn. Trong Java mọi thứ đều qui về lớp và đối tượng. Đối tượng là thể hiện thật sự của một lớp. Núi cỏch khỏc lớp mụ tả tổng quỏt về đối tượng bao gồm thuộc tớnh, phương thức...Nếu bạn đó lập trỡnh trong cỏc ngụn ngữ khỏc như C, VB... thỡ cú thể hỡnh dung lớp là khai bỏo kiểu cũn đối tượng là khai bỏo biến. Mọi hàm và thủ tục phải đặt trong một lớp. Vỡ lớ do này Java khụng cú khỏi niệm hàm hay thủ tục đơn lẻ. Bạn phải gọi hàm và thủ tục là phương thức bởi chỳng được đặt trong một lớp đối tượng. 3.1.1.4.Cỏc loại ứng dụng trong Java. Java cú thể xõy dựng được mọi loại ứng dụng. Dưới đõy là một số ứng dụng điển hỡnh trong Java. a) Ứng dụng console. Cỏc ứng dụng console thường ghi kết xuất ra màn hỡnh văn bản ở chế độ kớ tự. Ứng dụng Java mà chỳng ta tỡm hiểu trong vớ dụ trờn thuộc loại ứng dụng console. Cỏc ứng dụng console thường bắt đầu bằng lời gọi đến phương thức main () . Vớ dụ : Public class ConsoleApp { public static void main ( String [] args) { System . out . println ( “ This is console application ”) ; } } Biờn dịch và chạy chương trỡnh C:\ SAMPLE > javac ConsoleApp . java C :\ SAMPLE > java ConsoleApp This is console application b)Ứng dụng đồ họa. Bạn cú thể dựng Java để viết cỏc chương trỡnh đồ họa tương tự cỏc ứng dụng Windows. Một chương trỡnh đồ họa thường cần một khung cửa sổ cựng với cỏc thành phần giao diện như nỳt nhấn, checkbox, menu, listbox. Chương trỡnh đồ hạo cũn cho phộp bạn vẽ ra cửa sổ bằng cỏc đối tượng như Graphics. Dưới đõy là chương trỡnh tạo và mở cửa sổ tương tự cỏc chương trỡnh Windows chuẩn viết trờn C hay VB. c)Applet. Applet là một trong những ứng dụng mạng nổi tiếng trong Java. Applet là một cửa sổ chương trỡnh thu nhỏ cú khả năng nhỳng trong trong Web và chạy bờn trong trỡnh duyệt. Trang Web HTML sử dụng thẻ để nhỳng mó java . class vào tài liệu. Tuy nhiờn để viết ra Applet bạn cần dựng trỡnh biờn dịch java và tuõn theo một số quy định : Applet khụng được truy xuất tài nguyờn của mỏy khỏch như mở hay đọc file. Applet chỉ cú thể chạy bờn trong trỡnh duyệt và khụng thể tồn tại như một ứng dụng độc lập ( mặc dự vậy bạn vẫn cú thể thiết kế Applet vừa chạy với tư cỏch ứng dụng vừa chạy với tư cỏch nhỳng trong trỡnh duyệt). Để viết Applet lớp đối tượng của bạn cần kế thừa và xõy dựng trờn lớp cơ sở java .awt.Applet. d) Servlet. Trỏi với Applet thường được cỏc trỡnh duyệt tải về chạy trờn mỏy khỏch. Servlet là cỏc thành phần đối tượng nhỳng trờn trỡnh chủ Web server thực hiện xử lớ yờu cầu và sinh ra cỏc trang Web động trả về mỏy khỏch. Để sử dụng được Servlet bạn cần cú cỏc trỡnh chủ hiểu Java và hỗ trợ triệu gọi Servlet như Apache, Jrun... Mặc dự vậy biờn dịch và tạo Servlet chỳng ta chỉ cần đến trỡnh biờn dịch JDK mà khụng cần đến cỏc trỡnh chủ. Dưới đõy là mó Servlet viết bằng Java. import javax.servlet.*; import javax.servlet.http.*; public class MyServlet extends HttpServlet { public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, Java.io.IOException { //chỉ định nội dung kiểu tài nguyờn trả về cho trỡnh khỏch resp.setContentType(“text/html”); //tạo luồng suất PrintWriter để chuyển kết quả từ mỏy chủ về cho trỡnh khỏch java.io.printWriter out=new java.io.printWriter(resp.getOutPutStream()); //định dạng trang web Html trả về out.println(“”); out.println(“Welcome to Java Servlet”); out.println(“”); } } Bạn biờn dịch myServlet.java thành tập tin myServlet.class như sau. C:\Sample>javac myServlet.java Tiếp đến đăng kớ myServlet.class với trỡnh chủ hiểu java. Bạn cú thể gọi myServlet từ trỡnh duyệt URL. e)Jsp. Jsp là cỏch đơn giản húa hơn cho servlet. Nếu như đối với servlet bạn phải viết mó java và biờn dịch bằng tay trước khi đưa vàosử dụng với trỡnh chủ Web servlet thỡ jsp khụng cần điều này. Jsp viết mó java tương tự servlet nhưng cú phộp trộn lẫn java với cỏc thẻ định dạng html. Trỡnh diễn dịch jsp sẽ chịu trỏch nhiệm kết hợp mó java với thẻ html để tạo ra servlet xử lớ cỏc yờu cầu mà trỡnh khỏc gửi đến. Jsp đơn giản và dễ sử dụng hơn servlet mặc dự sau khi biờn dịch và thực thi chỳng chỉ là một. Dưới đõy là trang Jsp viết bằng java. Welcome to jsp page <% int x,y;result; x=3; y=x+10; result=x+y; out.println(“x+y result:”+result”); %> Bạn lưu nội dung vào file mang tờn myPage.jsp và đặt vào thư mục thớch hợp trờn trỡnh chủ java cú khả năng thụng dịch trang jsp. e)Ứng dụng EJB, RMI, JMS. Đõy là cỏc lớp đối tượng hoạt động trong mụ hỡnh phõn tầng( multi-tier) và triệu gọi đối tượng phõn tỏn trong mụi trường J2EE (Java 2 Enterprise Edition). Cỏc đối tượng EJB hoạt động trong những trỡnh chứa( container) kiểm soỏt cỏc giao tỏc( transaction) truy cập cơ sở dữ liệu đầu cuối, thực hiện tớnh năng bảo mật và an toàn cao. Giao thức RMI cho phộp thực hiện triệu gọi phương thức của đối tượng hoạt động t rờn một mỏy ở xa. JMS hỗ trợ cơ chế giao tiếp thụng qua hàng đợi thụng điệp (message queue) xuyờn suốt trờn mạng. Kết hợp được những cụng nghệ Java này vào ứng dụng Web bao gồm JSP, JavaBean và Servlet khiến việc triển khai ứng dụng trở nờn nhanh chúng hiệu quả và hệ thống ổn định đỏng tin cậy hơn. 3.1.2.Servlet. 3.1.2.1.Định nghĩa Servlet. Servlet cú thể được xem như một applet phớa server (server side). Cỏc servlet được nạp và được thực thi tại trỡnh chủ Web (Web Server). Hỡnh sau chỉ ra một servlet chấp nhận cỏc yờu cầu từ trỡnh khỏch (thụng qua trỡnh chủ Web sẽ được giới thiệu ở phần sau), thi hành tỏc vụ và trả về cỏc kết quả WEB BROWSER WEB SERVER SERVLET HTTP Request HTTP Response Cỏc bước cơ bản khi sử dụng servlet: Client (hầu hết là cỏc trỡnh duyệt Web) tạo ra một yờu cầu (request) dựa trờn giao thức HTTP. Trỡnh chủ Web nhận cỏc yờu cầu này và chuyển cho servlet xử lớ. Nếu servlet chưa được nạp, trỡnh chủ Web sẽ nạp nú vào trong mỏy ảo Java và thực thi nú. Servlet sẽ nhận yờu cầu này dựa trờn giao thức HTTP và thi hành. Servlet sẽ trả ngược về cho trỡnh chủ Web một phản hồi (response). Trỡnh chủ Web sẽ chuyển phản hồi này cho trỡnh khỏch. Vỡ servlet được thực thi trờn mỏy chủ, vấn đề bảo mật với cỏc applets thường khụng được ỏp dụng. Trỡnh duyệt Web khụng truyền thụng trực tiếp được với servlet; servlet được nạp và được thực thi bởi trỡnh chủ Web. Điều này cú nghĩa rằng nếu trỡnh chủ Web được bảo mật đằng sau bức tường lửa (firewall), thỡ servlet cũng được bảo mật theo. 3.1.2.2.Ưu điểm của Servlet. Cỏc servlet bền vững. Servlet nhanh chỉ được nạp một lần bởi trỡnh chủ Web và cú thể duy trỡ cỏc dịch vụ ( chẳng hạn kết nối cơ sở dữ liệu) giữa cỏc yờu cầu. Servlet độc lập với nền. Như đó đề cập trước đõy, servlet được viết bằng ngụn ngữ Java, vốn đó mang lại sự độc lập nền cho nỗ lực phỏt triển của ta. Servlet cú khả năng mở rộng. Do servlet được viết bằng ngụn ngữ Java, điều này mang lại cho servlet cỏc lợi ớch khỏch của ngụn ngữ Java. Java là ngụn ngữ lập trỡnh hướng đối tượng, nú dễ dàng mở rộng để phự hợp với nhu cầu của ta. Servlet rất an toàn. Cỏch duy nhất để gọi một servlet từ bờn ngoài là thụng qua trỡnh chủ Web. Điều này mang lại một mức bảo mật cao, đặc biệt là nếu như trỡnh chủ Web được bảo vệ đằng sau bức tường lửa. Servlet cú thể sử dụng được với đủ loại trỡnh khỏch. Trong khi cỏc servlet được viết bằng ngụn ngữ Java, chỳng ta cú thể sử dụng chỳng dễ dàng từ cỏc Java applet cũng như từ HTML. 3.1.2.3.Biờn dịch Servlet. Để biờn dịch cần cú thư viện hỗ trợ cỏc lớp chuẩn servlet. Thư viện này thường nằm trong file servlet.jar và khụng cú sẵn trong bộ JDK1.3. Cỏc trỡnh chủ Web server đều kốm theo thư viện này giỳp bạn biờn dịch và thực thi servlet. Ngoài thư viện servlet.jar, servlet cú thể biờn dịch bằng trỡnh biờn dịch javac (trong bộ JDK) chuẩn của Java mà khụng cần đến bất kỳ trỡnh chủ Web server nào. Nếu đó cài đặt nền J2EE (Java 2 Enterprise Edition) thư viện hỗ trợ biờn dịch và thực thi servlet sẽ cú sẵn trong file ( [J2EE_HOME]\lib\j2ee.jar. Cần phải thiết lập đường dẫn CLASSPATH trỏ đến thư viện servlet trước khi biờn dịch như sau: C:\sample>SET CLASSPATH=%CLASSPATH%; C:\ProgramFiles\AlaireJRun\libextservlet.jar Kết quả thu được sau khi biờn dịch file servlet là cỏc file .class. Chỳng ta cú được một servlet ở dạng thực thi (mó byte-code) và triệu gọi được bởi trỡnh chủ Web server. 3.1.2.4.Đăng kớ và triệu gọi Servlet. Ta phải đăng kớ servlet với trỡnh chủ Web server trước khi cú thể triệu gọi được nú. Đối với cỏc Web server khỏc nhau, việc đăng kớ servlet rất khỏc biệt. Vị trớ cấu hỡnh thư mục đặt file .class của servlet để trỡnh chủ tỡm thấy triệu gọi cũng khụng hoàn toàn giống nhau giữa cỏc trỡnh chủ. Tuy nhiờn nhỡn chung quỏ trỡnh đăng ký servlet bao gồm cỏc bước: Chộp tập tin .class của servlet vào thư mục qui định của trỡnh chủ Web server. Chỉ đường dẫn đến file .class và đặt cho servlet một tờn bớ danh để triệu gọi nếu cần. Thiết lập cỏc thụng số khởi tạo cho servlet và cỏc điều kiện bảo mật cho phộp servlet được triệu gọi. Như đó đề cập từ trước, tất cả những gỡ được đũi hỏi để chạy cỏc servlet là một trỡnh chủ Web cú hỗ trợ servlet API. Nền tảng của chỳng là JavaWeb Server của Javasoft. Bảng sau đưa ra danh sỏch một số nhà cung cấp và cỏc sản phẩm trỡnh chủ Web của họ. Nhà sản xuất Sản phẩm Apache Apache jserv IBM Internet Connection Server ATG Dynamo Application Server Konasoft Konasoft Enterprise Server Lotus Domino Go Webserver O’Reilly Website Professional W3C Jigsaw HTTP Server Weblogic Tengah Application Server Bạn cũng cần phải nhớ rằng theo thứ tự sử dụng servlet, cần cú vài kiểu ứng dụng khỏch mà nú sẽ gọi servlet. Dạng cơ bản nhất mà chỳng ta sẽ thấy đú là HTML. HTML được hỗ trợ toàn cầu bởi cỏc trỡnh duyệt Web. Chỳng ta cũng sẽ thấy rừ làm thế nào để nõng cao sức mạnh của servlet. 3.1.2.5.Cỏc phương thức xử lý cơ bản của Servlet. Lớp GenericServlet là phần cài đặt tổng quỏt cho đặc tả giao tiếp( interface) mang tờn Servlet. Theo đặc tả của giao tiếp Servlet do Sun đưa ra một servlet cần cú những phương thức phục vụ cho cỏc nhu cầu: khởi tạo(init), hoạt động và phục vụ( sevice), hủy( destroy), trả về thụng tin cấu hỡnh lớp giao tiếp Servlet được mụ tả như sau: interface Servlet { void destroy(); ServletConfig getServletConfig(); String getServletInfo(); void init(Servletconfig config); void service(ServeltRequest req, ServletResponse res); } Lớp GenericServlet cài đặt tất cả cỏc phương thức của giao tiếp Servlet trờn đõy. Khớ tạo ra một servlet mới đơn giản chỉ nờn kế thừa lại GenericServlet và xõy dựng chồng (override) cỏc phương thức muốn sử dụng. a)Phương thức khởi tạo init(). public void init() Phương thức khởi tạo này được gọi khi lần đầu tiờn trỡnh chủ Web server nạp mó thực thi của servlet từ tập tin .class vào bộ nhớ và bắt đầu cho phộp servlet hoạt động. Bạn cú thể dựa vào phương thức này để khởi tạo cỏc biến mụi trường f và giỏ trị ban đầu cần thiết cho quỏ trỡnh thực thi servlet sẽ diễn ra tiếp theo. Thường trong phương thức init() ta khở tạo giỏ trị mảng, tạo sẵn kết nối với cơ sở dữ liệu, nạp cỏc lớp thư viện cần thiết. Vớ dụ ta cú thể nạp trỡnh điều khiển JDBC truy xuất cơ sở dữ liệu, tạo sẵn kết nối đến nguồn dữ liệu cho servlet trong phương thức init() như sau: public class CSDL extends GenerricServlet { String DBDriver=”sun.jdbc.odbc.JdbcOdbcDriver”; String strConn=”jdbc:odbc:CSDL”; Connection con; public class init() { Class.forName(DBDriver).newInstance(); conn=DriverManager.getConnection(strConn); } } b)Phương thức phục vụ service(). public void service( ServletRequest req, ServletResponse res) throws IOException Sau khi phương thức init đó hoàn tất, trỡnh chủ Web servlet sẽ triệu gọi đến phương thức phục vụ service(). Phương thức này được xem là trung tõm xử lý của servlet mà bạn cần phải cài đặt. Khi trỡnh chủ nạp servlet vào bộ nhớ, phương thức init() chỉ được gọi duy nhất một lần trong khi phương thức service() cú thể được triệu gọi nhiều lần ứng với mỗi yờu cầu servlet phỏt sinh từ trỡnh duyệt phớa mỏy khỏch. Bờn trong phương thức service() bạn cú thể sử dụng đối tượng tham số ServletRequest và ServletResponse để tiếp nhận dữ liệu từ trỡnh khỏch chuyển lờn và kết xuất kết quả phản hồi trở lại trỡnh khỏch. Vớ dụ sau : public void service(ServletRequest request, ServletResponse response) throws IOException { response.setContenType(“text/html”); PrintWriter out=response.getWriter(); out.println(“”); out.println(“body”); out.println(“Welcome Servlet !”); } c)Phương thức hủy bỏ destroy() Khi servlet khụng cũn dựng đến nữa hoặc hết thời gian qui định lưu giữ trong bộ nhớ của trỡnh chủ destroy() sẽ được gọi. Nếu như ta dựng phương thức init() để thực hiện khởi tạo biến cho servlet thỡ phương thức destroy() ngược lại cú thể dựng để dọn dẹp tài nguyờn mà cỏc biến chiếm giữ, đúng cỏc kết nối mà phương thức init() đó mở d)Phương thức getServletConfig() và getServletInfo(). Hai phương thức này nhằm mục đớch cung cấp thụng tin. Phương thức getServletConfig() giỳp cho người sử dụng servlet cú được đối tượng ServletConfig chứa cỏc thụng tin khởi tạo từ mụi trường ngoài đưa vào servlet. getServeltInfo() trả về một chuỗi thụng tin mụ tả ý nghĩa và mục đớch của servlet. 3.1.3.JSP( Javaserver Pages). 3.1.3.1.Giới thiệu chung về JSP. Cụng nghệ JavaServer Pages (viết tắt là JSP) là cụng nghệ lập trỡnh Web phớ mỏy chủ của 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 bộ 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ở lại 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 thường bằng cặp dấu . JSP Container JSP HTML Web Browser Web Server HTML Request 3.1.3.2.Những đặc điểm nổi bật 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 toàn, chống rũ rỉ bộ nhớ (memory leak) và hỗ trợ chế độ xử lý đa tuyến đoạn (multithreading). Ngoài ra, mụi trường Java đó đưa ra rất nhiều sự mở rộng cho việc phỏt triển cỏc ứng dụng enterprise. JSP ngày nay đó là một thành phần cốt lừi trong mụi trường J2EE. Vỡ vậy, với cụng nghệ JSP, người ta hoàn toàn cú thể tạo ra được những ứng dụng cú quy mụ lớn với chất lượng cao. Quỏ trỡnh phỏt triển, triển khai và duy trỡ phỏt triển ứng dụng Web trở nờn dễ dàng và nhanh chúng. JSP đó làm đơn giản húa và tăng tốc quỏ trỡnh phỏt triển ứng dụng Web. Thay cho việc phải viết một chương trỡnh Java, giờ đõy người ta chỉ cần tạo một trang HTML, thờm cỏc thẻ tựa XML (XML - like tags) và nếu cần thiết, sử dụng thờm cỏc đoạn scriptlet. Bằng việc hỗ trợ cỏc thư viện customized tag và mụ hỡnh phỏt triển dực trờn thành phần (component - based development), JSP khụng chỉ làm giảm cụng sức phải bỏ ra của những người phỏt triển mà nú cũn cung cấp một cơ sở vững chắc cho cỏc cụng cụ phỏt triển. Khi đó được xõy dựng, cỏc trang JSP cũn dễ bảo trỡ bởi sự tỏch biệt cỏc xử lý nghiệp vụ (thường được đặt trong cỏc thư viện customized tag hay cỏc thành phần JavaBeans) ra khỏi giao tiếp, hỡnh thức của trang. Tận dụng được những thành phần cú thể dựng lại (reusable components) Hầu hết cỏc trang JSP đều dực trờn những thành phần xuyờn nền (cross-platform components) cú thể dựng lại (cỏc thành phần JavaBeans hay Enterprise JavaBeans) để thực hiện những xử lý nghiệp vụ phức tạp. Những nhà phỏt triển cú thể trao đổi hay chia sẻ những thành phần chuyờn trỏch xử lý chung (common operations), do đú sẽ làm giảm đỏng kể chi phớ khi xõy dựng ứng dụng. Cỏch tiếp cận dựa trờn thành phần của JSP đó làm tăng tốc độ phỏt triển ứng dụng và cho phộp đạt được kết quả tối ưu trờn sản phẩm sau cựng. 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

Các file đính kèm theo tài liệu này:

  • docP0063.doc