MỤC LỤC
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. 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).
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.
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 đó. Cũng như Java, JSP cho phép ta dùng cú pháp // để chú thích một dòng mã lệnh trong khi cú pháp /* */ áp dụng cho nhiều dòng.
Ngoà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 treõn request nhử getSession(), getCookies(), getRemoteUser()…. Đố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. Ở bước này trang JSP nhận yêu cầu từ trình khách và chuẩn bị thực thi, tuy nhiên trước khi thực thi trang JSP cần được dịch ra mã .class của Java và quá trình dịch có thể sinh lỗi.
Tuy nhiên đối với những ngoại lệ phát sinh nhưng không được người ta viết trang JSP đón bắt xử lý thích hợp thì ngoại lệ và lỗi sẽ được gởi đến bộ xử lý lỗi của trình biên dịch JSP. Hành động <jsp:plugin> cho phép JSP tạo trang HTML chứa đựng tính hợp lệ của cấu trúc trình duyệt máy khách, ví dụ như đối tượng Object hay đối tượng nhúng (Embed). Một trong những lý do chính của Microsoft khi giới thiệu kỹ thuật này là cho phép lập trình viên có một phương pháp dễ dàng đễ truy cập nội dung của các cơ sở dữ liệu không thuộc về một định dạng quen thuộc đối với lập trình viên.
Vì SQL là ngôn ngữ không thân thiện lắm đối với người sử dụng nên ta phải sử dụng qua một công cụ trung gian đóng vai trò thiết kế để thể hiện các câu lệnh của SQL cho người sử dụng dễ thao tác hơn, công cụ đó chính là JRUN, để JRUN có thể truy xuất các tập tin MDF của SQL ta phải sử dụng cầu nối ODBC. ODBC có hai tập hợp các trình điều khiển: một tập hợp sử dụng tiếng nói của trình quản lí cơ sở dữ liệu và tập kia cung cấp phương pháp giao tiếp thông thường cho ngôn ngữ lập trình. 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.Việc truy xuất cơ sở dữ liệu trong JSP và servlet dựa vào trình truy xuất ODBC theo chuẩn java.
Cụ thể, khi người dùng kích chuột vào một sản phẩm, họ có thể biết được tên, giá cả, những chú ý khác về sản phẩm,…. Người dùng có thể thay đổi số lượng mua, thêm bớt các mục hàng tại đây hoặc quay trở lại chọn các mục hàng khác. Lỳc này, khỏch hàng thấy rừ tổng số tiền cần phải trả, số mặt hàng cần mua cùng với số lượng, đơn giá cụ thể.
Những thông tin này bao gồm: loại hình thanh toán (bằng tiền mặt, bằng credit card, sec), cách thức giao hàng, địa chỉ liên lạc,… sau cùng khách hàng nhấn vào nút Save Order để tạo đơn đặt hàng và hoàn tất quá trình giao dịch. Từ trangchủ, nếu nhập vào một tên sản phẩm nào đó và nhấn nút search, danh mục các sản phẩm có trong danh sách sản phẩm sẽ hiển thị theo mong muốn của khách hàng. Ngoài việc tìm kiếm theo tên sản phẩm, để tạo thuận tiện cho người dùng ta bố trí thêm trang thực hiện tìm kiếm những yêu cầu cao hơn (để đến với trang này người dùng kích chuột vào liên kết Advance Search của trang chủ).
Trang tìm kiếm Advance Search cho phép tìm mục hàng hay tên sản phẩm, tên công ty sản xuất, giá cao nhất và giá thấp nhất…. Trang đăng ký sẽ nhập đầy đủ những thông tin cần thiết giúp người dùng tận dụng những Web site forum, … Đăng ký làm thành viên cũng là yêu cầu bắt buộc nếu như khách hàng đó thực hiện mua hàng trên Web site. Nếu khách hàng đăng ký làm thành viên của Web site bạn sẽ được cấp một tài khoản đăng nhập (gồm Username/password).
Trang quản trị người dùng này hoạt động giống với các trang quản lý các, nó cơ chế duyệt xem danh sách các thành viên đã đăng ký, xoá thành viên đăng ký. Tại trang chủ, ta có thể sắp xếp các đề mục theo chủ đề, theo tên người gửi bài hoặc theo ngày tháng, hoặc ta có thể xoá đi một chủ đề. Nếu muốn xem nội dung của một chủ đề đã được mọi người thảo luận trước đó như thế nào, ta có thể kích chuột vào tên của từng chủ đề.
Danh sách và nội dung thảo luận sẽ được trang viewthread.jsp hieồn thũ nhử hỡnh 2.2. Từ trang chủ, ta cũng có thể chọn hyperlink New Thread để tạo một mục mới (một chủ đề mới) hình 2.3. Từ trang chủ, ta có thể nhập vào một chuỗi thông tin và nhấn nút Search xem đã có người thảo luận về thông tin mà ta cần tìm hay chưa hình 2.4.
Một khi danh sách các đề mục khá dài, để hiển thị, sử dụng kỹ thuật phân trang chỉ cho hiển thị 5 đề mục trên một trang.
Các topic ở đây là các vấn đề mà khách hàng muốn trao đổi với công ty, hoặc muốn các thành viên trong công ty với nhau nhằm bàn bạc về một vấn đề nào đó. Mỗi khách hàng hoặc thành viên của công ty có thể trao đổi kinh nghiệm về một vấn đề mà mình biết cho các khách hàng hoặc thành viên khác mà họ đang quan tâm vấn đề đó. Xây dựng diễn đàn bằng JSP cho Web site này, chúng ta cần một bảng cơ sở dữ liệu để lưu nội dung của chủ đề bàn bạc, tên tác giả, người gửi bài, ngày tháng bài được gởi, … cùng các trang JSP tương tác khác.
Ta cũng được cung cấp cơ chế sắp xếp dữ liệu theo tên đề mục (topic), tên người gửi, ngày tháng bài được gửi… Trang chủ index.jsp cũng bao gồm một thẻ <form> trỏ đến trang search.jsp thực hiện thao tác tìm kiếm khi ta nhấn vào search (submit). Khi người dùng kích chuột vào một hyperlink của một chủ đề cần thảo luận ta sẽ sử dụng trang viewthread.jsp để hiển thị chi tiết các mục trả lời đã được gởi lên. Mỗi chủ đề cung cấp số mid (message_id) trên đường liên kết URL dạng query string, trang viewthread.jsp sử dụng tham số này để tìm ra chủ đề chính cũng như các câu trả lời con liên quan (căn cứ vào trường message_parent_id).
Trong quá trình xem trả lời của các mục thảo luận, người dùng có thể nhấn vào nút Reply để phản hồi hoặc góp thêm ý kiến vào mục thảo luận. Tuy nhiên, vì đây là câu trả lời liên quan đến đề mục đã có, ta lấy khoá của đề mục cha từ đối số gửi lên bởi trang reply.jsp mang tên mid. Cơ chế hiển thị của trang search.jsp rất giống với trang index.jsp, tuy nhiên trang search.jsp thực hiện chức năng tìm kiếm trong mệnh đề WHERE của câu.
Trang search.jsp được gọi từ thuộc tính action của thẻ <form> trong trang index.jsp. Chương trình xây dựng phức tạp nên việc cập nhật, nâng cấp chương trình hơi khó thực hiện.