Giới thiệu về ngôn ngữ cài đặt JavaServer Pages (JSP)

MỤC LỤC

Chuyển hướng sang trang mới với sendRedirect()

Ngoài việc chuyển tiếp chúng ta có thể sử dụng phương thức sendRedirect() để chuyển hướng và triệu gọi trang JSP khác xử lý. Sự khác nhau giữa chuyển tiếp (forward) và chuyển hướng (redirect) đó là lệnh sendRedirect () chỉ thực hiện triệu gọi trang mà không chuyển tham số của trang hiện hành cho trang chuyển hướng.

SERVLET

  • Các phương thức xử lý cơ bản của Servlet

    Theo đặc tả của giao tiếp Servlet do Sun đưa ra một servlet cơ bản 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ụ (service), hủy (destroy), trả về thông tin cấu hình (getServletConfig), trả về thông tin tư thân của servlet (getServletInfo). Nếu như chúng 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ở…. Phương thức getServletConfig () giúp 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, getServletInfo () trả về một chuỗi thông tin mô tả ý nghĩa và mục ủớch cuỷa servlet.

    Tag LibrariesTag Libraries

    Tag library là gì ? 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 Cách dùng các tags trong JSP

    • Các loại tag Các loại tag
      • Các ví dụ Các ví dụ

        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). Phần này mô tả các thuộc tính của tag handler và các bộ mô tả thư viện tag, cũng trình bày cách phát triển tag handler và các element của bộ mô tả thư viện đối với mỗi loại tag được giới thiệu trong phần trước. Tag handler là một đối tượng được gọi lên bởi JSP container để định trị cho custom tag trong xuốt quá trình thực thi của trang JSP có tham chiếu tới một tag nào đó.

        Khi gặp start tag của custom tag thì lớp cài đặt trang JSP gọi các phương thức để khởi tạo các giá trị thích hợp và sau đó triệu gọi phương thức doStartTag. Con đường vào API này là đối tượng pageContext, qua đó tag handler có thể truy cập vào mọi đối tượng ngầm định khác như request, session, application từ trang JSP. Để định nghĩa các tag handler mới chúng ta có thể dùng các lớp TagSupport và BodyTagSupport như là các lớp cơ sở (xem 4. Tag handler được triệu gọi như thế nào?).

        <!--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 -->. 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. Các tag có tương tác với phần thân : nếu tag handler không cần tương tác với phần thần thì tag handler này nên cài đặt giao tiếp Tag hoặc dẫn xuất từ lớp TagSupport.

        Tag handler sử dụng các phương thức getString, getReader của BodyContent để trích thông tin từ phần thân và phương thức writeOut(out) để ghi các nội dung của thân vào luồng xuất. Thông thường một thuộc tính chuyển vào custom tag phải xác định “tên” của biến đối tượng; Tên này có thể truy xuất bằng cách gọi phương thức get[Attribute]. Do biến được truyền vào như các thuộc tính của tag nên sẽ được truy xuất bởi phương thức getAttributeString của lớp TagData và dùng để lấp đầy hàm tạo của VariableInfo.

        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.

        Tag handler được triệu gọi như thế nào?

        Giao tiếp BodyTag mở rộng từ giao tiếp Tag bằng cách định nghĩa thêm các phương thức cho phép tag handler truy cập vào thân của nó. /* thực hiện các khởi tạo cần thiết sau khi nội dung của thân được gán. /* Khi doAfterBody trả về EVAL_BODY_TAG chúng ta lặp lại phần ủũnh trũ cho thaõn tag */.

        JAVABEAN

        Các thẻ chuẩn của JavaBean trong trang JSP

        Khi chúng ta nhúng JavaBean vào trang JSP, có 3 thẻ chuẩn được định nghĩa để kết hợp JavaBean. Thẻ <jsp:useBean> được dùng để khai báo phạm vi và định danh id (identify) nhan dạng Bean. Thẻ <jsp:useBean> này khá linh động, ngữ nghĩa chính xác phụ thuộc vào giá trị được đưa ra.

        Phạm vi của khai báo mà thành phần Bean có hiệu lực bao gồm: page, request, session, application. Bean sẽ được loại bỏ khi một response gởi trở về client hoặc request được chuyển tới một trang mới. Bean có giá trị này thì có sẵn từ đối tượng ServletRequest của trang hiện hành và bất kỳ trang được include hay forward nào bằng cách sử dụng phương thức getAttribute(name).

        Bean được sử dụng trong bất kỳ trang nào trong ứng dụng hiện hành (cả request hiện tại và tương lai). Thuộc tính tên của Bean chỉ định cho đối tượng phải được định nghĩa và nằm trong phạm vi co phép. Thẻ <jsp:getProperty> dùng lấy giá trị của thuộc tính Bean và chuyển giá trị thành kiểu chuỗi.

        Name Thuộc tính trình bày tên của Bean, tên này đã được khai báo và định nghĩa bởi thẻ <jsp:useBean>.

        GIỚI THIỆU JDBC

        • JDBC kết nối thông qua các trình điều khiển đặc thù ở xa

          Ki Java phát triển, các nhà cung cấp hỗ trợ các trình điều khiển JDBC kết nối trực tiếp với trình điều khiển đặc thù của mỗi hệ cơ sở dữ liệu (native database driver), mà không cần phải qua trung gian ODBC của Windows nữa. Theo mô hình lập trình phân tán, ứng dụng trung gian (middle-ware) trên một máy chủ sẽ chịu trách nhiệm kết nối với cơ sở dữ liệu. Nhiệm vụ của trình khách là sử dụng những trình điều khiển JDBC gọn nhẹ, có khả năng giao tiếp với ứng dụng trung gian qua Internet để truy vấn dữ liệu.

          Mô hình kết nối theo kiểu 3 do phải qua ứng dụng trung gian (middle-ware) nên có thể ảnh hưởng đến tốc độ truy xuất cơ sở dữ liệu phía máy khách. Java đưa ra kết nối JDBC kiểu 4 cho phép trình khách sử dụng các trình điều khiển gọn nhẹ kết nối trực tiếp vào trình điều khiển cơ sở dữ liệu đặc thù (thuần Java) trên máy chủ ở xa thông qua mạng Internet. Kết nối với cơ sở dữ liệu, JDBC đòi hỏi hai yếu tố là trình điều khiển (tương ứng với các kiểu kết nối) và thông tin để kết nối (như địa chỉ máy chủ, tên tài khoản đang đăng nhập và mật khẩu …).

          Cuối cùng đối tượng Connection sẽ thể hiện kết nối đến cơ sở dữ liệu, gọi phương thức getConnection của lớp DriverManager để yêu cầu trình điều khiển nạp bởi Class.forName () trước đây tiếp nhận thông tin và thực hiện kết nối. Lệnh SELECT sau khi nhận được kết quả trả về là tập ResultSet, chúng ta gọi phương thức next () để đi đến từng mẫu tin và in ra kết quả của các cột. Ngoài lệnh SQL SELECT thường sử dụng ra, các lệnh thay đổi dữ liệu như INSERT (tạo một mẫu tin), UPDATE (cập nhật mẫu tin) và DELETE (xóa bỏ mẫu tin) cũng sẽ được sử dụng rất thường xuyên trong chửụng trỡnh.

          <column name>: tên cột cần thêm dữ liệu, nếu không nêu tên cột nó sẽ tự động thêm dữ liệu vào các cột tương ứng trong bảng của theo mệnh đề VALUES.

          PHÂN TÍCH – THIẾT KẾ – CÀI ĐẶT

          • Định nghĩa các yêu cầu - Quản lý
            • Thieát keá 1.Thiết kế xử lý

              Lưu các thông tin đã nhập vào CSDL Thông báo NV đã tồn tại Có. RB4: SoDT là khóa chính của DIENTHOAI RB5: MADUONG là khóa chính của DUONG RB6: MAHUYEN là khóa chính của HUYEN RB7: MALD là khóa chính của LIDO. RB9: MANV & MALD & NgayBD là khóa chính của NGHI RB10: MANN là khóa chính của NGOAINGU.

              RB16: MANV & MANN là khóa chính của NV_NN RB17: user_id là khóa chính của PERMISSION RB18: MATDVH là khóa chính của TDVH RB19: MATINH là khóa chính của TINH. RB23: MANV & MALD là khóa ngoại của NGHI tham chiếu đến NHANVIEN & LIDO. RB24: MANV & MACM & MATRUONG là khóa ngoại của NV_CM tham chiếu đến NHANVIEN & CHUYENMON &.

              RB25: MANV & SoDT là khóa ngoại của NV_DT tham chiếu đến NHANVIEN & DIENTHOAI. RB26: MANV & MALUONG là khóa ngoại của NV_LUONG tham chiếu đến NHANVIEN & LUONG. RB27: MANV & MANN là khóa ngoại của NV_NN tham chiếu đến NHANVIEN & NGOAINGU.

              I.4.2. Sơ đồ phân rã chức năng
              I.4.2. Sơ đồ phân rã chức năng

              CÀI ĐẶT TRIỂN KHAI ỨNG DỤNG

                - Trang login: khi muốn đăng nhập để chỉnh sửa CSDL, thay đổi quyền truy nhập qua trang này để nó đưa đến các trang mà user được sử dụng. - Trang quản lý nhân sử của Manager từ trang này chúng ta có thể gọi các trang thêm, sửa, xóa một nhân viên.