Giới thiệu về Công nghệ JSP trong Lập trình Web

MỤC LỤC

JSP directives

The page directive

Giá trị “false” có nghĩa rằng chẳng có session nào được sử dụng tự động và nếu cố truy cập vào biến session sẽ trả lỗi vào lúc trang được dịch thành servlet. Xác định liệu luồng xuất có vùng đệm được tự động flush (giá trị “true” mật định) khi vùng đệm đầy hay sẽ tung ra một ngoại lệ khi vùng đệm tràn (“false”).

The include directive

Đặc tính này cho phép chúng ta tạo các thanh định hướng, các phần thông tin cần tương tác, đếm số trang,. File đầu tiên là một đoạn của trang chứa các thông tin tương tác cần thiết cho file thứ hai dùng lại bằng include directive.

Các action chuẩn

Action chèn vào files ở thời gian request

<b>Bill Gates acts humble.</b> In a startling and unexpected development, Microsoft big wig Bill Gates put on an open act of humility yesterday. <b>Larry Ellison acts conciliatory.</b> Catching his competitors off guard yesterday, Oracle prez Larry Ellison referred to his rivals in friendly and respectful terms.

Action chèn vào Applets cho Java Plug-In

Hơn nữa vì chúng ta không biết loại trình duyệt nào sẽ truy cập vào trang chúng ta nên chúng ta phải hoặc là include cả OBJECT lẫn EMBED (đặt EMBED trong phần COMMENT của OBJECT) hoặc là xác định loại trình duyệt vào thời gian yêu cầu để dùng tag đúng cho loại trình duyệt đó. Ngoài bốn thuộc tính này jsp:plugin còn có các thuộc tính sau và hầu hết giống (nhưng không phải là tất cả) như các thuộc tính của APPLET tag. codebase, align, archive, hspace, name, vspace, title Gioỏng nhử APPLET tag. Đồ án tốt nghiệp Gvhd: Ts.Nguyễn Thúc Hải. URL cho Netscape mà có thể download Plug-In. Giá trị mật định sẽ hướng người dùng đến web site của Sun, nhưng với intranet chúng ta có thể muốn chỉ dẫn người dùng đến một bản sao cục bộ. URL cho Internet Explorer mà có thể download Plug-In. b) jsp:param và jsp:params action.

Actions dùng để forward và sử dụng Components

<APPLET CODE=“MyApplet.class”. <B> Error: this example requires Java. <jsp:plugin type=“applet”. <jsp:fallback>. <b> Error: this example requires Java. </jsp:fallback>. Đồ án tốt nghiệp Gvhd: Ts.Nguyễn Thúc Hải. b) Sử dụng component trong JSP. Chúng ta có thể sử dụng các actions sau để sử dụng lại các component (Beans) trong JSP: jsp:useBean, jsp:setProperty, jsp:getProperty.

JSP JAVABEANS

    JSP sử dụng Beans

      Các thuộc tính của một thành phần JSP thì không giới hạn giá trị chuổi (string) nhưng rất quan trọng để hiểu rằng tất cả giá trị của thuộc tính được truy cập qua <jsp:getProperty> tag sẽ được chuyển thành kiểu chuổi. Introspector là bộ phân tích mà qua đó Java xem xét các đoạn mã của chương trình để tìm ra những phương thức dùng để xây dựng và áp dụng cho từng thuộc tính cũng như tình huống cụ thể.

      Các giao tiếp bổ trợ cho Bean

      Việc cài đặt giao tiếp HttpSessionBindingListener của Servlet API trong Beans chúng ta sẽ cho phép các thể hiện nhận được thông báo của các sự kiện session. Khi JSP container dự định chấm dứt một session của người dùng vì hoạt động kém, trước tiên JSP container xoá từng mục dữ liệu trong session, rồi kích hoạt valueUnBound(). Thứ hai, Sự kiện này sẽ được kích hoạt nếu servlet, scriptlet, hay đoạn mã Java nào đó xoá bỏ Bean khỏi session vì một số lý nguyeân nhaân.

      TAG LIBRARIES

      Tag library là gì ?

      - Chúng có thể được lồng với nhau và cho phép các tương tác phức tạp trong một trang. Chúng ta có thể tạo và khởi tạo một thành phần JavaBean, tạo một biến tham chiếu đến Bean đó trong một tag và sau đó sử dụng Bean này trong tag khác.

      Cách dùng các tags trong JSP

        - Chúng có thể được lồng với nhau và cho phép các tương tác phức tạp trong một trang. - Chúng có thể truyền thông với nhau. Chúng ta có thể tạo và khởi tạo một thành phần JavaBean, tạo một biến tham chiếu đến Bean đó trong một tag và sau đó sử dụng Bean này trong tag khác. Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải Một tag đơn giản sau triệu gọi một action và xuất ra lời chào “Hello World.”. <tlt:helloWorld />. b) Các tag có thuộc tính. Kiểu thuộc tính Phương thức valueOf chuyển chuổiPhương thức valueOf chuyển chuổi boolean or Boolean java.lang.Boolean.valueOf(String) byte or Byte java.lang.Byte.valueOf(String) char or Character java.lang.Character.valueOf(String) double or Double java.lang.Double.valueOf(String) int or Integer java.lang.Integer.valueOf(String) float or Float java.lang.Float.valueOf(String) long or Long java.lang.Long.valueOf(String). Giá trị của biểu thức tuỳ thuộc vào kiểu thuộc tính được xác định trong đối tượng cài đặt tag còn gọi là tag handler (tag handler trong phần định nghĩa các tag). <tlt:helloWorld name=’DHBK Ha Noi’/>. c) Các tag có nội dung. Tag có thể bao hàm các custom tag, scripting element, HTML, và nội dung nằm giữa start tag và end tag. Trong ví dụ sau sẽ đưa ra thông tin “lời chào” được cung cấp trong thân tag thay vì trong thuộc tính của nó. <tlt:helloWorld>. DHBK Ha Noi. </tlt:helloWorld>. d) Các tag định nghĩa các biến kịch bản. Một tag có thể định nghĩa ra một biến mà biến này được dùng trong cùng một trang. Ví dụ sau đây minh hoạ cách thức định nghĩa và sử dụng một biến chứa một đối tượng được trả về. e) Kết hợp các tag.

        Định nghĩa các tag

          Tag library descriptor (TLD) là một tài liệu XML dùng để mô tả thư viện tag. Một TLD chứa toàn bộ thông tin về thư viện và mỗi tag chứa trong thư viện. JSP container và các công cụ phát triển JSP sử dụng TLD để xác định các tag. Các element của TLD sau dùng để định nghĩa thư viện tag:. Code 21: HelloWorldTag.java. <!DOCTYPE taglib. <taglib>. <jspversion>. <!--Tên mặt định đơn giản có thể dùng bởi công cụ tạo trang JSP để tạo tên với giá trị gợi nhớ; chẳng hạn shortname có thể được dùng như giá trị tiếp đầu ngữ thích hợp trong taglib directive và/hoặc tạo ra các tiếp đầu ngữ cho các id -->. <shortname>. Tag element yêu cầu đối với mọi tag để xác định một lớp có trong thư vieọn tag. <tagclass>classname</tagclass>. Để tạo các custom tag chúng ta cần hai import gói cơ bản:. import javax.servlet.jsp.*;. import javax.servlet.jsp.tagext.*; // tag extension a) Các tag đơn giản. Hãy nhớ rằng, nếu thuộc tính được đặt tên là id và tag handler kết thừa từ lớp TagSupport thì chúng ta không cần định nghĩa các phương thức get/set[Attribute] bởi vì những thứ này đã được TagSupport làm sẵn. Lớp này cung cấp thông tin cho JSP container về đặt tính của của biến kịch bản, phải cài đặt phương thức getVariableInfo để trả về một mảng các đối tượng VariableInfo chứa các thông tin sau: tên biến, lớp của biến, liệu biến này có tham khảo tới một giá trị đối tượng mới hay đã có, tính sẳn dùng của biến này.

          Bảng sau mô tả tính sẳn dùng của biến kịch bản và các phương  thức để xác lập và xác lập lại giá trị của biến.
          Bảng sau mô tả tính sẳn dùng của biến kịch bản và các phương thức để xác lập và xác lập lại giá trị của biến.

          PHAÂN TÍCH – THIEÁT KEÁ

          Phaân Tích

            Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải - Lập bảng đánh giá nhân viên bằng biểu đồ. - Tổng hợp báo cáo. - Thiết lập chế độ làm việc trực tiếp giữa hai nhân vieân. - Xem các công việc được giao. - Báo cáo tiến độ thực hiện theo ngày. - Đề xuất cách giải quyết công việc theo ngày. - Báo cáo công việc thực hiện xong. - Xem các đánh giá của bên quản lý. - Gán quyền cho user. Phạm vi đề tài. Cho phép lưu trữ trong một năm phát sinh dữ liệu Dữ liệu cập nhật trực tuyến. Hệ thống hoạt động trên môi trường Web. Hoạt động trong môi trường mạng Intranet. Thiết lập chế độ làm việc giữa hai nhân viên Lập báo cáo. Làm tươi/ Phục hồi CSDL 4. Mô hình xử lý quan niệm. a) Sơ đồ ngữ cảnh. Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải. b) Sơ đồ phân rã chức năng. c) Sơ đồ hệ thống.

            Sơ đồ thực thể kết hợp (ERD):
            Sơ đồ thực thể kết hợp (ERD):

            Thieát Keá

              Nhập: Tên CSDL mới cần phục hồi khi bị hỏng & làm tươi từ ngày nào đến ngày nào | từ tháng nào đến tháng nào | năm nào. Nhập: Tên CSDL cần phục hồi (đã có từ làm tươi CSDL). Xuất: Thông báo đã phục hồi hoàn toàn / thông báo lỗi. Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải. c) Một số giải thuật được thể hiện bàng lưu đồ. Thông báo CSDL đã có - Tạo CSDL mới (Backup). - Xoá các mẩu tin trong các bảng phát sinh. Làm Tươi CSDL. Thiết kế cơ sở dữ liệu. d) Mô hình dữ liệu vật lý. Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải. e) Bảng mô tả chi tiết.

               (RB24) MAPER & MAGROUP là khoá ngoại của GROUP_PER tham chiếu từ GROUPS & PERMISSION.  (RB27) Một công việc có thể có nhiều nhân viên nhưng tại một thời điểm chỉ có một nhân viên thực hiện một công việc. Đồ án tốt nghiệp Gvhd: Ts. Nguyễn Thúc Hải. g) Bảng tầm ảnh hưởng.

              Sơ đồ thực thể kết hợp (ERD):
              Sơ đồ thực thể kết hợp (ERD):

              TRIỂN KHAI ỨNG DỤNG

              Triển khai ứng dụng web

              Do đó với từng kỷ thuật tôi có chi tiết hai mô hình (có thể nhiều hơn) dựa trên mô hình ba lớp tổng quát này và gọi là Kiến Trúc Mô Hình Một và Mô Hình Hai. Ứng dụng sử dụng cả hai mô hình web trên nền Java là Kiến Trúc Mô Hình Một và Mô Hình Hai mà đã và đang còn tranh luận trên các sites nỗi tieỏng nhử javaworld.com, developer.com, weblogic.com. Ở đây, Servlets hoạt động như một trạm điều khiển (controller) chịu trách nhiệm xử lý các yêu cầu và khởi tạo các components (Beans, Custom Tag) cho JSP sử dụng.

              Hướng dẫn sử dụng

              Vào Navigation menu, chọn Set home page…, hiện ra một input box cho chép bạn nhập địa chỉ mới vào.