intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

Đồ án tốt nghiệp đại học: " Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha "

Chia sẻ: Nguyễn Thị Ngọc Huỳnh | Ngày: | Loại File: PDF | Số trang:57

198
lượt xem
58
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Ngày nay, Internet ngày càng trở nên cần thiết cho cuộc sống, đặc biệt trong lĩnh vực kinh doanh. Thương mại điện tử hiện đang là ngành kinh tế thu lợi nhuận cao của nhiều nước trên thế giới. Mặc dù vậy, nước ta lại chưa phát triển loại hình này do các điều kiện khách quan. Thương mại là hoạt động trao đổi của cải, hàng hóa, dịch vụ, kiến thức, tiền tệ v.v giữa hai hay nhiều đối tác, và có thể nhận lại một giá trị nào đó (bằng tiền thông qua giá cả) hay bằng hàng...

Chủ đề:
Lưu

Nội dung Text: Đồ án tốt nghiệp đại học: " Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha "

  1. TRƯỜNG……………………… KHOA…………………… ĐỒ ÁN TỐT NGHIỆP: Đồ án tốt nghiệp đại học: " Nghiên cứu công nghệ JSP & Java, xây dựng Website bán hàng cho công ty cổ phần chế biến gỗ Việt Đức Kha "
  2. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n LỜI NÓI ĐẦU Ngày nay, Internet ngày càng trở nên cần thiết cho cuộc sống, đặc biệt trong lĩnh vực kinh doanh. Thương mại điện tử hiện đang là ngành kinh tế thu lợi nhuận cao của nhiều nước trên thế giới. Mặc dù vậy, nước ta lại chưa phát triển loại hình này do các điều kiện khách quan. Tuy nhiên, sớm hay muộn thì chắc chắn cũng phải có phần đáp ứng được nhu cầu của khách hàng và nhà thương mại. Vì buôn bán là một hoạt động không thể thiếu trong đời sống hiện nay, và cũng nhờ sự phát triển của thương mại điện tử mà các nhà thương mại có cơ hội quảng cáo sản phẩm của mình rộng rãi hơn. Với thương mại điện tử, chúng ta không còn phải đến trực tiếp cửa hàng vừa tốn thời gian, sức khỏe. Giờ đây, chúng ta có thể ngồi tại nhà mà có thể mua được bất kỳ một món hàng nào. Thật là tuyệt vời! SVTH: Nguyễn Văn Ty Trang 1
  3. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Chính vì thế, em đã chọn đề tài “Nghiên cứu JSP và Java, xây dựng website bán hàng cho Công ty Cổ Phần Chế biến gỗ Việt Đức” nhằm làm quen với thương mại điện tử và bắt kịp sự phát triển của nước ta cũng như thế giới. Do thời gian hạn chế, việc tìm hiểu và xây dựng một ứng dụng trên công nghệ Java (một công nghệ mới) đối với em rất khó khăn. Dù vậy, ứng dụng cũng đã triển khai được phần lớn các yêu cầu chính mà một ứng dụng thương mại điện tử cần đáp ứng. Em xin chân thành cảm ơn thầy Nguyễn Đức Thuần đã tận tình hướng dẫn, giúp em hồn thành tốt đồ án tốt nghiệp này. Em xin chân thành cảm ơn ! Nha Trang, tháng 08 năm 2003. SVTH : Nguyễn Vă n Ty : 40TH Lớp MSSV: 8D15075 SVTH: Nguyễn Văn Ty Trang 2
  4. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n SVTH: Nguyễn Văn Ty Trang 3
  5. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n SVTH: Nguyễn Văn Ty Trang 4
  6. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n PHẦN I CƠ SỞ LÝ THUYẾT Chương I YÊU CẦU CỦA ĐỀ TÀI SVTH: Nguyễn Văn Ty Trang 5
  7. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n 1. Về mặt ứng dụng. Xây dựng hệ thống quản lý các d ịch vụ bán hàng trên mạng, trong đó hệ thống cho ph ép các dịch vụ đăng ký một không gian để bán những mặt hàng m ình có trên mạng. Mỗi dịch vụ sẽ có một account riêng trong h ệ thống, họ có th ể cập nh ật các m ặt hàng, thay đổi thông tin của dịch vụ và quản lý những đơn đặt hàng của kh ách mua hàng thông qua hệ thống. Tuy nhiên, dịch vụ hay mặt hàng của dịch vụ chỉ thực sự hoạt động khi đã thanh tốn nh ững chi ph í cần thiết cho h ệ thống. Đối với những khách hàng vào hệ thống để mua h àng, h ệ thống phải hỗ trợ sao cho kh ách h àng có thể tìm kiếm, chọn và đặt hàng mộ t cách dễ d àng. Khi khách hàng đặt mua sản phẩm, hệ thống sẽ chuyển đơn đặt hàng này đ ến dịch vụ bán hàng. Việc giao và nh ận hàng diễn ra nội bộ giữa người b án với người mua, h ệ thống không tham gia trực tiếp vào việc bán hàng. Hệ thống đóng vai trò như một siêu thị ảo, môi giới cho khách mua hàng với dịch vụ.  Về phía khá ch hàng  Các khách h àng có th ể đăng kí mua hàng, cũng như việc xem và lựa chọn những sản phẩm qua mạng nếu họ đồng ý với nhữ ng sản phẩm đó.  Kh ách hàng có th ể d ễ dàng xem hàng, hoặc đăng ký mua h àng bất cứ lúc nào thông qua mạng máy tính khi mà máy chủ đã khởi động.  Các khách hàng có thể dễ d àng tìm th ấy sản ph ẩm m à m ình cần, việc đăng kí mua hàng ch ỉ thông qua thao tác nhấn chuột trên sản phẩm mà mình lựa chọn.  Các kh ách hàng còn có th ể theo dõ i được những sản ph ẩm mới mà công ty chu ẩn bị bán ra trong mộ t th ời gian sắp tới.  Khi cần thiết thì khách hàng có thể hỏi đáp thông qua cô ng ty, hoặc thông qua diễn đ àn nhằm góp ý cũng như việc thắc mắc với công ty. Diễn đ àn sẽ giúp cho khách hàng giải quyết các vấn đ ề m à mình không giải quyết đ ược.  Về phía người quả n lý  Người quản lý có thể theo dõ i thành viên, đ ơn hàng của các khách hàng đang tham gia mua hàng của công ty mình (như số lượng mặt hàng, số tiền, của khách hàng …) và nắm các thông tin củ a khách hàng như email, địa chỉ đ ể liên lạc khi cần.  Người quản lý có thể thêm sản phẩm, xố sản ph ẩm, thêm người qu ản lý, người sử dụng thông qua chương trình đã được xây d ựng. 2. Về mặt kỹ thuậ t Bài tốn đòi hỏi h ệ thống phải có những kh ả năng về k ỹ thuật như sau: Ứng dụng triển khai trên mô i trường JSP. Hỗ trợ nhiều h ệ điều h ành (cho phía client). Hỗ trợ nhiều trình duyệt (như IE, Netscape..) SVTH: Nguyễn Văn Ty Trang 6
  8. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Hỗ trợ nhiều người dùng. Số lượng người tham gia đăng ký mua hàng không giới hạn. Số lượng các sản ph ẩm, người đăng ký sử dụng th êm vào không giới h ạn. 3. Mộ t số y êu cầu khá c Ngồi các yêu cầu trên, ứng dụng có th ể: Dễ dàng cài đ ặt. Dễ dàng sử dụng. Nh ư vậy, trước nh ững yêu cầu củ a bài tốn đặt ra như trên, ta cần khảo sát cô ng nghệ và lự a chọn giải ph áp thích hợp để có thể triển khai ứng dụng theo yêu cầu củ a bài tốn. Chương II NGÔN NGỮ LẬP TRÌNH JAVA ĐỐI VỚI ỨNG DỤNG MẠNG I. GIỚ I THIỆU NGÔN NGỮ LẬP TRÌNH JAVA. Ông tổ của Java không ai khác chính là James Gosling, mộ t lập trình viên củ a công ty Sun Microsystems. Cuố i năm 1990 James Gosling được Sun Microsystem giao nhiệm vụ xây dựng mộ t ph ần mềm cho các m ặt hàng đ iện dân dụng với mụ c tiêu nhỏ gọn và tương thích với nhiều thiết bị p hần cứng khác nhau, thế là Java ra đời. Đầu tiên Java có tên là Oak (cây sồi) nhưng vì có sự trùng tên nên Oak được đổi tên thành Java như h iện nay. 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 ch ương trình Java sau khi biên dịch cho ra mộ t file nhị phân khác với các file nh ị phân thực thi củ a Windows như .exe hay .com. java biên dịch ra mã nhị phân gọi là b yte-code có đuôi m ở rộng là .class và được triệu gọi thực thi trong máy ảo SVTH: Nguyễn Văn Ty Trang 7
  9. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Java (Java Virtual Machine – JVM). Máy ảo Java th ực sự là một trình thông dịch bình thường có kh ả n ăng thực thi các mã b yte-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ì p hần cứng. Chính vì lý do đó mà ta chỉ cần viết máy ảo Java cho từng hệ điều hành th ì chương trình Java (.class) có thể ch ạy như nhau trong mọi hệ điều hành dưới nền một kiến trúc máy ảo. Cha đẻ củ a 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 là chỉ viết chương trình mã nguồn Java sau đó biên d ịch ch ương trình ra d ạng file thực thi byte-code đ ể ch ạy trên máy ảo. 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. Ngồi ra ta có th ể dùng Java để viết các Applet hoặc Servlet hay trang JSP là những thành ph ần ứ ng dụng d ành cho trình duyệt Internet (browser) và trình chủ (Web server). 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 (the Java TM Language an Overview – sun Microsystems). Đó là những đ ặc điểm quan trọng m à không ph ải b ất cứ một ngôn ngữ lập trình nào cũng có được. Applet là những mẫu chương trình nhỏ được nhúng và chạy ngay trong trình duyệt. Applet giúp bạn thự c hiện đ ược rất nhiều tương tác b ên trong trình duyệt. Có thể nó i Java ra đời và nổ i tiếng chính là nhờ khả năng viết Applet của nó. Mặc dù vậy, ngày nay các Applet không còn được sử dụng nhiều trên các trình duyệt. Ch úng được thay th ế b ằng ngôn ngữ kịch b ản JavaScript. Tuy nhiên vẫn còn nhiều điều m à Applet có kh ả n ăng lập trình m ạnh m ẽ hơn JavaScript như giao tiếp với Web server, thực hiên công việc tính tốn phứ c tạp, vẽ đồ thị, bảo m ật… Servlet là m ột thành phần đố i tượng chủ yếu phục vụ cho mục đích tích h ợp và ch ạy trên các trình chủ Web server. Servlet giúp xử lý và tạo ra các trang Web động. Servlet có thể kết h ợp với các trang Java Server Page - JSP là các trang Script chạy phía máy chủ đ ể tạo các trang Web động, tương tác với cơ sở dữ liệu tương tự như Servlet. JavaScript và Java hồn tồn khác nhau, m ặc dù thống nghe đ ến tên gọi b ạn có thể nghĩ rằng chúng đều xuất phát từ Java. JavaScript là một ngôn ngữ kịch bản ra đời và phát triển bởi Nescape Communication trong khi Java được phát triển bởi Sun Mcrosystem. Mặc dù vậy, ngày nay chúng trở nên th ân thiết và gần gũ i với nhau hơn bao giờ hết. Java và JavaScript có cú pháp lập trình rất giống nhau và rất giống với C/C++ nên rất thu ận tiện đ ể người dùng học cả h ai ngôn ngữ song song với nhau. JavaScript thường đ ược dù ng để kiểm sốt và điều khiển các ho ạt động của trình kh ách. JavaScript có th ể tạo các hiệu ứng động cho trang Web như thay đổ i màu sắc, hiển thị SVTH: Nguyễn Văn Ty Trang 8
  10. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n ảnh động, tương tác với người dùng bằng chuột, ph ím, kiểm tra dữ liệu nh ập vào trước khi gởi về trình chủ đ ể xữ lý . JavaBeans là một thành phần đố i tượng được xây d ựng từ n gôn ngữ Java, là những khố i mã xây d ựng sẵn và có thể dùng lại đ ược. Nó đang trở nên ngày càng phổ biến đối với các ứng dụng ph ân tán (distributed application) trên m ạng. Java Server Page - JSP đặc biệt cung cấp cho nh ững nhà phát triển Web một nền tảng đ ể tạo ra các nộ i dung động trên máy chủ sử dụng HTML và XML, vì m ã Java có tính b ảo mật, nhanh, và độ c lập với máy chủ. JSP là ph ần mở rộng đặc biệt củ a Java Servlet, đ ơn giản hơn Servlet. JSP được nhúng vào các trang HTML để tạo ra các trang động từ trình chủ phục vụ cho trình khách. Trên đây là m ột số đặc tính quan trọng và các nhánh phát triển của ngôn ngữ Java. Với những đặc tính m ạng m ẽ như vậy, Java là sự lựa ch ọn tố t nh ất cho các ứng dụng m ạng. Applet Java : Applet như đã nó i là những m ẫu ch ương trình nh ỏ ch ạy ngay trong trình duyệt và tương tác với trình duyệt. Vì applet đ ã nói là những mẫu chương trình nhỏ chạy ngay trong trình duyệt và tương tác với trình duyệt. Vì vậy applet phải tuân thủ theo mộ t cấu trúc nhất đ ịnh để có thể chạy đ ược trên các trình duyệt kh ác nhau . 1. Tạo một applet: Khuôn m ẫu củ a một applet thể hiện ở bốn phương thức sau: pubilc class appletName extendes Applet Error! { public void init() {…} public void start() {…} public void stop() {…} public void destroy() {…} } Trong đó : appletName: tên của applet. Init: đ ể khởi tạo một applet khi một applet được nap (loaded) hay được n ạp lại (reloaded). Start: bắt đ ầu hoạt động của applet khi applet được nạp hay khi người dùng thăm lại trang chứa applet. Stop: chấm dứ t hoạt đ ộng củ a applet khi người dùng rời khỏi trang chứ a applet hay đ óng trình duyệt. SVTH: Nguyễn Văn Ty Trang 9
  11. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Destroy: th ực hiện việc dọn dẹp chuẩn b ị cho applet thố t hẳn (unloading). Không ph ải applet nào cũng dùng đủ 4 phương thức này, các phương thức bị bỏ qua khi viết một applet sẽ được trình duyệt tự thực hiện khi nạp applet đó. * Vò ng đời của một applet: Nạp một applet: Khi một applet được nạp có các sự kiện xảy ra như sau: Một instance của lớp con applet được tạo ra, có nghĩa là một đối tượng applet được tạo ra. Đố i tượng applet này tự khởi tạo mình, có nghĩa là tự cài đặt, nh ận các giá trị (phương thứ c init() được gọi đến). Đố i tượng applet này bắt đầu chạy (phương thức start() được gọ i). Rời khỏ i hay trở về trang Web:Khi người dùng sang trang mới (không ch ứa applet củ a ta), applet thực hiện phương thứ c stop(). Khi người dùng trở về trang chứa applet, applet lại kích ho ạt phương thức start(). Qu á trình này cũng xảy ra khi người dùng thu nhỏ cử a sổ (minimize) rồ i mở lại (restore). Nạp lại một applet:Th ông thường các trình duyệt cho ph ép người dù ng n ạp lại applet, nghĩa là n gười dùng đã thố t khỏ i applet rồi lại nạp applet lại một lần n ữa. Vì mỗ i khi thố t khỏi applet phương thức stop() sẽ được gọ i, sau đó destroy sẽ được gọi đ ể thực hiện việc dọn d ẹp cho h ệ thống. Như thế applet sẽ giải phóng tất cả các tài nguyên mà nó đ ã dùng. Cuối cùng applet chính thức bị xố bỏ khỏi bộ nhớ. Và khi được n ạp lại, qu á trình nạp sẽ xảy ra y như lần đầu applet được nạp. Thố t khỏi trình duyệt: Khi ta chưa đóng trang Web ch ứa applet mà đã thốt khỏi trình duyệt, applet sẽ lập tứ c tự khởi động phương thức stop() rồi thự c hiện phương thức dọn dẹp destroy() trước khi trình duyệt bị đóng. 2. JavaBeans. JavaBeans do Sun Microsystem phát triển dự a trên n ền tản của Java. JavaBeans là những giao tiếp lập trình được dùng để tạo ra những khố i m ã xây dựng sẵn và có th ể dùng lại được. Những thành phần JavaBeans có thể được nhúng vào trong một ứng dụng, liên kết với các thành phần JavaBeans kh ác hay được dùng để kết n ối với các ứng dụng. Bằng cách dùng các thành phần JavaBeans các nhà phát triển ứng dụng có thể giảm các khối lượng mã m à họ phải viết. Họ có thể tự tạo ra các th ành phần JavaBeans riêng biệt ho ặc mua lại chúng từ các nhà ph át triển thứ ba khác. Trong thời gian qua, môi trư ờng Internet đã trở thành động lự c chính cho hướng tiếp cận th ành ph ần (component) dự a trên Java. Nó đ ang trở n ên ngày càng phổ biến với các ứ ng dụng ph ân tán (distributed application) trên m ạng. Theo mô hình này một thành phần củ a ứng dụng sẽ ch ạy trên máy kh ách (client), một ph ần chạy trên lớp SVTH: Nguyễn Văn Ty Trang 10
  12. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n trung gian, phần còn lại sẽ chạy trên m áy ch ủ (server) với tác vụ xử lý cơ sở dữ liệu hay tính tốn phức tạp. Các ứng dụng Java xây dự ng bằng các th ành phần JavaBeans có thể đáp ứng cho cả h ai phía client và server. Không có một bí ẩn nào trong việc tạo ra một lớp đối tư ợng JavaBeans. Ta xâ y dựng lớp đố i tượng JavaBeans bằng cách cài đặt giao diện (interface) java.io.Serializable. Tiếp đến ta thiết lập và xây d ựng các phương thức mang tên get, set đ ể trình bày cách gọi những thuộc tính của Beans trong trang JSP. Cấu trúc củ a một đối tượng Beans như sau: Publicrror! mybeans implement java.io.Serializable E class { protect int the_value; // Phương th ức kh ởi dựng Beans public mybeans {} //Khai báo phương thức đặ t giá trị cho thuộc tính myvalue public void set_myvalue(int new value) { the_value = new_value; } //Khai báo phương thức trả về giá trị cho thuộc tính myvalue public int get_myvalue() { return the_value; } } Các thuộc tính (property) của thành phần JavaBeans: Thuộc tính là mộ t trong những khía cạnh quan trọ ng nhất trong JavaBeans, thuộc tính biểu diễn những trạng thái (state) m à một thành phần JavaBeans có th ể có. Người dùng đa số tương tác với JavaBeans qua các thuộc tính của nó. Bằng cách thay đổi các thuộc tính các nhà phát triển ứng dụng sẽ đem đ ến cho đố i tượng thành phần mộ t diện mạo (apperance) và một cách h ành xử (behavior) khác. Thuộc tính thể h iện sự thay đổi (bound property): JavaBeans là từng thành phần riêng biệt nhưng vẫn có thể kết nố i được với nhau qua cơ chế gởi thông báo (message). Khi thuộ c tính củ a một thành phần JavaBeans A thay đ ổi nó có thể th ông báo cho một thành phần JavaBeans B khác biết để thành ph ần JavaBeans B n ày có cơ hộ i cập nhật lại những thông tin cần thiết đối với thành phần A m à nó sử dụng. SVTH: Nguyễn Văn Ty Trang 11
  13. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Cơ ch ế cài đ ặt một thuộ c tính có thể thông báo cho các thành phần JavaBeans khác biết khi nó thay đ ổi như sau: cài đ ặt hai phương thức dùng để đăng ký và loại bỏ mộ t đố i tượng listener. //Đăng ký rror! E public void addPropertyChangeListtener (PropertyChangeListtener lsn) //Loạ i bỏ public void removePropertyChangeListtener (PropertyChangeListtener lsn) Mỗi th ành ph ần JavaBeans kh ác phải tự cài đặt một đối tượng listener từ giao diện PropertyChangeListtener có nhiệm vụ phản ứng lại những thay đổ i này, sau đó đăng ký lại với thành phần JavaBeans A nhờ vào các phương thức trên. Phương thức cần cài đ ặt cho giao diện PropertyChangeListtener là: Error! public void propertyChange (PropertyChangevent evt) Các thủ tục trên đ ây ch ỉ thực hiện nhiệm vụ đăng ký và tạo đố i tượng listener mà thô i. Để các đố i tượng listener có thể nhận biết sự thay đổ i củ a thuộ c tính, ta ph ải gọi phương thức firePropertyChange củ a đố i tượng PropertyChangeSupport từ thành phần JavaBeans A như sau: Error! Public void firePropertyChange (String propertyName, Object oldValue, Object newValue) Ph ương thức n ày sẽ th ông b áo đến mọ i đ ối tượng listener (bằng cách gọi phương thức propertyChange củ a listener) đ ã đ ăng ký với thuộc tính của thành phần JavaBeans A, sự thay đổi bao gồm giá trị trước khi thay đổi, giá trị sau khi thay đổi và tên của thuộc tính bị thay đổ i. Thuộc tính ràng buộc (constraint property): Hạn chế củ a thuộc tính bound property là các đối tư ợng listener ch ỉ ph ản ứng lại khi giá trị thuộc tính đã bị thay đ ổi. Java cung cấp một khả năng khác mạnh h ơn đó là tạo thuộc tính b ị ràng buộc (constraint property), tương tự như thuộc tính bound mỗ i lần thuộc tính constraint định thay đổi giá trị (chỉ dự định chứ ch ưa thay đ ổi) nó sẽ thông b áo đến tất cả các đối tượng listener đã đăng ký, đối tượng listener có quyền từ chối không cho phép thay đổ i và như vậy thuộc tính vẫn phải giữ nguyên giá trị ban đầu. Ngư ợc lại n ếu đối tượng listener cho ph ép thì quá trình thay đổ i giá trị cho thuộ c tính mới diễn ra tiếp tục. Để đăng ký đối tượng listener cho thuộ c tính ràng buộ c, thành phần JavaBeans phải cài đặt hai phương thức sau đây: SVTH: Nguyễn Văn Ty Trang 12
  14. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n public void addVetoableChangeListener (VetoableChangeListener lsn) Error! public void removeVetoableChangeListener (VetoableChangeListener lsn) Mỗi th ành ph ần JavaBeans kh ác phải tự cài đặt một đối tượng listener từ giao diện VetoableChangeListener có nhiệm vụ phản ứng lại những thay đổ i này (cho phép hay kh ông cho ph ép thuộ c tính thay đ ổi), sau đó đăng ký với thành phần JavaBeans nhờ vào các phương thức trên (add dù ng để đăng ký còn remove dùng để loại bỏ đối tượng listener). Phương thức cần cài đ ặt cho giao diện VetoableChangeListener là: Error! public void vetoableChange (PropertyChangevent evt) throws PropertyVetoException Nếu đối tượng listener không đồng ý thay đ ổi thuộc tính nó sẽ ném ra ngoại lệ PropertyVetoException, th ành phần JavaBeans sẽ bắt lấy và hu ỷ bỏ quá trình thay đổi trị cho thuộ c tính. Cũng như thu ộc tính dạng bound, khi thuộc tính constraint có dự định thay đổi giá trị trong phương thức setter nó cần thông báo cho các đối tượng listener đã đăng ký với nó b ằng phương thức fireVetoableChange củ a đối tượng VetoableChangeSupport từ th ành phần JavaBeans như sau: Error! public void fireVetoableChange (String propertyName, Object oldValue, Object newValue) Phương thức này sẽ th ông b áo đến mọ i đối tư ợng listener (bằng cách gọi phương thứ c vetoableChange củ a listener) đã đăng ký với thành phần JavaBeans. * Xử lý tình huống của thà nh phần JavaBeans: Đố i tượng nào sản sinh ra tình huống đ ược gọi là n ơi phát sinh tình huống (event source), đối tượng n ào dùng để tiếp nhận và xử lý các tình huống ph át sinh từ đối tượng khác đ ược gọ i là đố i tượng listener. Các tình huống nộ i tại (event state): Một thành phần JavaBeans ngồi việc gởi tình huống đến những đ ối tượng khác còn phải lo xử lý các tình hu ống mà b ản thân hệ thống gởi đến mình. Nếu xét về vai trò thì bản thân hệ thống là nơi phát sinh tình huống còn thành phần JavaBeans ph ải tiếp nh ận và xử lý các tình huống này. SVTH: Nguyễn Văn Ty Trang 13
  15. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Để nh ận biết được tình huống mà hệ thống đưa đ ến, thành phần JavaBeans ph ải xây d ựng mộ t đố i tượng listener và đăng ký đối tượng n ày với hệ thống. Các đố i tượng mà Java đ ã thiết kế sẵn dành cho từng tình huống cụ thể nh ư sau: Listener dùng đ ể nhận biết cá c tình huống khi đối tượng b ị thay đổi kích th ước (resize), di chuyển (move), ComponentListener hiện ra (show) hay dấu đi (hidden). Listener nhận biết tình huống là Focus (là tình huống mà đối tượng nhận nhiều quyền ưu tiên nhất) FocusListener Listener nhận biết các tình huống xuất phát từ bàn KeyListener ph ím. Listener nhận biết tình huống xuất phát từ việc bấ m chuộ t nh ư kích chuộ t trái, kích chuột phải hay kích đô i. MouseListener Listener nhận biết tình huống di chuyển chuột. MouseMotionListener Listener nhận biết tình huống một cửa sổ bị đóng lại, WindowListener mở ra, thu nhỏ thành biểu tượng… Listener nhận biết tình huống mà đố i tượng sẽ phải ActionListener thực thi một tác vụ nào đó. Listener nhận biết tình huống mà đố i tượng thay đổi giá trị (như vị trí thanh trượt của thành phần scrollbar AdjustmentListener chẳng hạn). Listener nhận biết tình huống mà một phần tử thay đổi trạng thái (như trong các thành phần checkbox, ItemListener choice…). Có hai cách đ ể tạo đối tượng listener giúp thành phần JavaBeans tiếp nhận tình huống mà hệ thống đ ưa đ ến. Cách th ứ nh ất là tạo ra một đối tượng listener riêng biệt sau đó thành phần JavaBeans sẽ đăng ký với hệ thống đối tượng listener này. Cách thứ hai là dùng chính b ản thân thành phần JavaBeans cài đặt cho giao diện listener và đăng ký với hệ thống qua biến this. 3. Java Script. 3 .1. JavaScript là g ì? Về nguồn gố c th ì Java và JavaScript khô ng liên quan gì với nhau. Java do Sun Microsystem khởi xướng còn JavaScript tiền thân lại ra đời từ ngô n ngữ đặc tả (scripting language) do hãng Netscape Communications đưa ra với tên là LiveScript. Sau m ột thoả thu ận giữa Sun và Netscape ngôn ngữ LiveScript và Java đ ã cùng bắt tay nhau để tạo nên ngôn ngữ JavaScript. Tuy nhiên Java và JavaScript vẫn khác nhau về cơ bản. Java là một ngôn ngữ lập trình m ạnh m ẽ, có thể dùng để viết applet hay bất k ỳ SVTH: Nguyễn Văn Ty Trang 14
  16. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n mộ t ứng dụng n ào (ch ạy độc lập hoặc chạy trên m ạng) còn JavaScript chỉ là mộ t ngôn ngữ đặc tả dùng đ ể thay đổ i tương tác với bản th ân trình duyệt mà thôi. Sau đây là b ảng so sánh các đ ặc điểm khác nhau cơ b ản giữa hai ngôn ngữ Java và JavaScript: JavaScript Java triển từ Phát triển từ sun Microsystem Ph át Netscape Communications Các dò ng lệnh được thông d ịch bởi Các dòng lệnh được biên dịch ra m ã má y trình duyệt (brower). (JVM) trước khi cho thự c thi. Nền tảng dựa trên các đố i tượng Nền tảng dựa trên cơ sở hướng đ ối tượng được xây d ựng sẵn (object base). Các (object oriented), tất cả đ ều quy về đối đối tượng này kh ông cho phép thừ a tượng và có khả n ăng thừa kế để tạo ra kế đ ể tạo ra những đối tư ợng mới. những đối tượng mới phong phú hơn. Không cần ph ải khai báo dữ liệu Dữ liệu cần phải khai báo tường minh trước khi sử dụng. trước khi sử dụng. Ngăn cấm các chức n ăn g truy xu ất Có thể truy xuất đ ĩa hay không, do người đ ĩa. lập tình quy đ ịnh. 3.2. Cú phá p JavaScript: Cú ph áp JavaScript rất giống Java như ng JavaScript sử dụng biến không cần khai b áo kiểu trong khi đố i với Java đ iều này là b ắt buộ c. Các đoạn m ã lệnh của JavaScript được đặt trọn trong nội dung củ a trang Web giữa hai thẻ: Error! / Các đoạn mã lệnh của JavaScript được đặt ở đây / < SCRIPT> Mã của JavaScript không thể dấu được vì nó hiện diện cùng với nội dung trang Web. Nhưng ta có thể đ ịnh nơi chứa m ã nguồn bằng thuộc tính SCR trong th ẻ như sau: Error! < SCRIPT> Nếu Java hơi khô khan th ì ngư ợc lại JavaScript rất sống động với những hình ảnh cũng như k ỹ xảo dùng để tương tác với trang Web. JavaScript cũng có th ể điều khiển được Applet nếu như applet cho phép điều đó. II. JAVA SERVER PAGE – JSP. JSP là công ngh ệ rất m ạnh để tạo ra trang HTML về p hía trình chủ. JSP là phần mở rộng trực tiếp của Java Servlet. Bộ diễn dịch JSP sẽ ánh xạ trực tiếp mã Java thành SVTH: Nguyễn Văn Ty Trang 15
  17. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Servlet. Viết JSP ta không cần trải qua quá trình biên dịch tập tin thự c thi .class như trong Servlet. JSP cung cấp mô hình lập trình Web dễ dàng và tiệân dụng hơn Servlet. 1. Cú pháp cơ bản của JSP. 1.1. Sử dụng thẻ bọc mã . Ưu đ iểm của trang JSP là khả năng nhúng m ã Java giữ a các th ể định dạng HTML. Mã Java được đặt trong cặp dấu . Bên trong mã Java nếu muốn kết xu ất dữ liệu HTML ta gọi phương thứ c println() của đ ối tượng out. Đối tượng out là đối tượng m ặc định được trình chủ Web server cung cấp dùng để ghi kết xuất gửi về máy khách. Th ẻ HTML và mã Java có thể trộn lẫn lộn với nhau. Ví dụ: 1 .2. Hiển thị kết xuất bằng cú pháp Thay vì sử dụng cú ph áp để diễn đạt một khối gồm nhiều lệnh ta có th ể sử dụng cú pháp chỉ để hiển th ị kết xu ất của một giá trị biến hay hàm nào đó. Ví dụ: Name Search
  18. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Chú th ích nhiều dòng */ JSP còn cung cấp thêm cho ta cú pháp chú th ích . Tất cả các khối lệnh Java và HTML nằm giữa hai dấu chú th ích này sẽ đ ược trình biên dịch trang bỏ qua không quan tâm đến. Ví dụ: Dấu chú thích này rất có hiệu qu ả. Nó giúp ta tạm thời cô lập hoặc che bỏ tác dụng của một đoạn mã Java nào đó đang bị lỗi trong trang JSP. Ta chỉ tạm thời làm mất tác dụng của chúng chứ không cần xố bỏ. 1.4. Khai báo phương thức và biến hằng Một cú ph áp n ữa m à JSP cung cấp đó là . Cú pháp này cho phép ta định nghĩa một hoặc nhiều ph ương thức và biến. Ph ương thứ c và biến sau đó có thể được triệu gọi bất kỳ nơi đâu trong trang JSP. 2. Các đố i tượng của JSP: Trong JSP chúng ta có thể truy cập một số đối tượng của JSP m à không cần phải khai b áo. Trình d ịch JSP sẽ nh ận dạng những đối tượng này và dịch sang trang Servlet. 2.1. Đối tượng Request: Đối tượng đ ại diện đố i tượng Request cho javax.servlet.http.HttpServletRequest. Giao diện HttpServlet được đ ịnh ngh ĩa như một đối tượng truy cập đ ến thông tin header của giao thức HTTP được gởi về trình kh ách. Đố i tượng request thường đ ược truyền như đố i số cho phương thức service(), ví dụ: Error! public void jspService (HttpServletRequest request, HttpServiceResponse response) throws IOException, Servlet ( ) Một trong những ứng dụng thông thường nh ất của đối tượng request là nắm giữ các tham số. Chúng ta có thể thấy đ iều này b ằng cách gọi phương thức getParameter() củ a request. Phương thức này th ừa kế từ lớp cha là javax.ServletRequest. Ph ương thức này nhận tên tham số và trả về giá trị chuỗi tương ứng với tên của tham số đó. Phương SVTH: Nguyễn Văn Ty Trang 17
  19. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n thức getParameter() sẽ trả về giá trị củ a tham số m à nó giữ, nếu tham số này là n ull, nó sẽ trả về giá trị null. Ngồi ra, vì đố i tượng request đ ại diện cho đối tượng javax.servlet.http.HttpServletRequest nên có th ể sử dụng các phương thức củ a javax.servlet.http.HttpServletRequest trên request như getSession(), getCookies(), getRemoteUser()… 2 .2. Đố i tượng Response: Một đố i tượng khác của JSP là đối tư ợng response. Đố i tượng response cho phép phản hồi thông tin xử lý từ trình chủ trở về trình duyệt. Hầu hết ứng dụng thông thường của đố i tượng response là dùng để xuất HTML ra trình duyệt. Đối tượng response thường gọi phương thức getWriter() để thự c hiện kết xuất. Các phương thức mà đố i tượng respons thư ờng sử dụng được liệt kê như sau: - response.sendRedirect(java.lang.String location): gởi đối tượng response mộ t lần nữa đến một trang JSP được chỉ đ ịnh trong đối số của phương thức. - response.setContenType(java.lang.String type): Định dạng nội dung xuất là kiểu type - đối số của phương thức. 2.3. Đối tượng Session: Đố i tượng session tham chiếu đến đối tư ợng javax.servlet.http.HttpSession. Đối tượng session dùng để lưu các đối tư ợng khác từ những yêu cầu của client. Chúng đưa ra h ầu hết trạng thái đầy đủ của HTTP. Đố i tượng session được khởi tạo bằng cách gọ i phương thức pageContext.getSession() để tạo ra trang servlet. Cú pháp như sau: Error! session = pageContext.getSession() Khi cần một biến nào đó có giá trị tồn cục từ khi mở cho đến khi kết thúc trình duyệt, ta chọ n đố i tượng session. Đố i tượng session sẽ tạo biến cụ c bộ cho ph ép lưu mộ t giá trị nào đó từ trang JSP này đến trang JSP khác trong suốt phiên làm việc củ a chúng ta. Để đố i tượng session có thể lưu giữ nh ững biến của chương trình ta cần ph ải khai b áo như sau: Error! session.setAttribute(java.lang.String name, java.lang.Object value) Trong đó n ame là tên biến value là giá trị củ a biến. SVTH: Nguyễn Văn Ty Trang 18
  20. Đồ án tốt nghiệp đại học GVHD: Nguyễn Đức Thuầ n Khi cần truy xu ất một biến nào đó của đố i tượng session ta cần phải sử dụng phương thức getAtribute() như sau: name ch ính là tên củ a biến mà ta cần truy xu ất. Error! session. getAttribute(java.lang.String name) 2.4. Đối tượng Application: Đố i tượng application tham chiếu đến javax.servlet.ServletContext cho phép lưu giữ cấu hình tồn cụ c của Servlet và JSP. Cách đối tượng application khởi tạo như sau: Epplication = pageContext.getServletContext(); a rror! Trong đó pageContext là một đối tượng JspFactory. Đố i tượng application có phạm vi ho ạt động ở cấp ứng dụng, ngh ĩa là có thể giữ giá trị củ a tất cả các trang JSP ở những session kh ác nhau cho tới khi JSP engine bị đóng lại. Tương tự nh ư session, ta có th ể gọ i phương thức application.setAtribute() đ ể lấy về giá trị lưu giữ trong application. Phương thức application.setAtribute() được dùng đ ể đặt trị cho biến cần ch ứa trong application. 2.5. Đối tượng Out: Đố i tượng out đùng đ ể ghi kết xuất gởi về trình duyệt. Đối tượng out h ình thành từ lớp java.io.Writer. Ví dụ : Error! out.print(“Hello world!”); dùng để ghi câu “Hello world!” lên trình duyệt của m áy kh ách. 2.6. Đối tượng Config: Đố i tượng config tư ợng trưng cho lớp ServletConfig, nó được định nghĩa là đối tượng tạo bởi servlet chứa các thông tin cấu hình củ a servlet. Với thông tin cấu hình này servlet sẽ truy cập đố i tượng ServletContext. Phương thức kh ởi dựng như sau: Error! config = pageContext.getservletconfig(): pageContext là mộ t đố i tượng JspFactory. Trong nhiều trường hợp ta không cần ph ải sử dụng đố i tượng config. Truy cập đến ServletContext thông qua đối tư ợng application cũng đ ạt được kết quả tương tự. 2.7. Đối tượng Exception: Đố i tượng Exception chỉ tồn tại trong trang xử lý lỗi (error page). Nó dùng đ ể tham chiếu đến nguyên nhân gây ra lỗi mà trang xử lý lỗi có liên quan. SVTH: Nguyễn Văn Ty Trang 19
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2