- JSP (Java Server Page) là cách kết hợp ngơn ngữ HTML truyền thống và ngơn ngữ Java phía máy chủ để sinh ra các trang web động phụ vụ các ứng dụng web uyển chuyển hơn các cơng nghệ CGI, Servlet.
Cơ chế hoạt động của JSP :
- JSP đưa lệnh Java vào các mã (hay thẻ) HTML. Các trang JSP chứa các thẻ đặc biệt qui định gần giống như thẻ của ngơn ngữ HTML. Khi bạn yêu cầu một trang JSP, trình chủ sẽ đọc trang JSP từ đĩa cứng, bộ diễn dịch JSP (JSP Page Compiler) sẽ diễn dịch mã lệnh Java chứa trong trang JSP thành một servlet. Sau đĩ trình chủ Web Server sẽ triệu gọi servlet trả kết xuất thuần HTML về cho trình khách. Với trang JSP bạn hồn tồn cĩ thể lấy dữ liệu do trình duyệt phía máy khách chuyển lên trình chủ xử lý sau đĩ gửi trả kết quả
về cho trình khách.
- Cơ chế hoạt động của trang JSP được minh hoạ trong hình sau :
Các thẻ lệnh cơ bản của JSP
- JSP cung cấp các thẻ lệnh giúp tạo trang web. Cũng tương tự như thẻ HTML, thẻ lệnh JSP bao gồm thẻ mở và thẻ đĩng. Thực sự các thẻ JSP
được xây dựng theo đặc tả và chuẩn XML (Extension Markup Language) nên cĩ hơi khác với thẻ HTML vì chuẩn XML khơng xem chữ hoa và chữ thường giống nhau. Mỗi thẻ cĩ các thuộc tính quy định cách dùng thẻ.
Thẻ <jsp:scriptlet> hay <% %>
Thẻ này cho phép đặt các đoạn mã lệnh Java ở giữa cặp thẻ
tương tự một chương trình java thơng thường. Thẻ khai báo và thực hiện biểu thức <%! , <%=
Thẻ này dùng để khai báo một biến dùng cho tồn trang jsp. Biến khai báo phải đúng theo cú pháp của ngơn ngữ Java. Thẻ <%= được dùng để hiển thị một biểu thức.
Thẻ nhúng mã nguồn <%@ include file %> Web Brows Trình diễn dịch JSP Trang JSP HTTP JRUN Servlet Yêu cầu kết xuất
Với thẻ này cĩ thể nhúng một trang. html vào trang jsp hiện hành. Thẻ này tương tự chỉ dẫn #include trong ngơn ngữ C. Cú pháp đầy đủ
của thẻ này là:
<%@ include file = “URL or FilePath “ %> Thẻ chỉ dẫn biên dịch trang <%@ page %>
Thẻ này chỉ dẫn một số tính chất biên dịch áp dụng cho tồn trang jsp. Cĩ thể sử dụng thẻ này để khai báo các thư viện import của java, chỉ định tuỳ chọn trang jsp cĩ cần giữ trên cache bộ nhớ của trình chủ để tăng tốc hay khơng …
Thẻ chuyển hướng <jsp:forward>
Thẻ này giúp chuyển hướng trang Web sang địa chỉ khác. Ví dụ, khi xử lý trang nhận dữ liệu đăng nhập (login page) bạn kiểm tra mật khẩu, nếu hợp lệ bạn chuyển người dùng đến trang tài nguyên cho phép truy cập. Nếu khơng hợp lệ, bạn chuyển người dùng đến trang thơng báo lỗi.
Thẻ sử dụng thành phần Bean <jsp:useBean>
Bạn cĩ thể tự tạo các lớp đối tượng Java và triệu gọi chúng từ
bên trong trang jsp. Hướng theo cơng nghệ thành phần (component) Java gọi những đối tượng cĩ thể gắn vào những ứng dụng là thành phần Bean.
Thẻđặt thuộc tính cho Bean <jsp:setProperty>
Thẻ này được sử dụng để triệu gọi một phương thức nào đĩ của Bean.
Thẻ lấy thuộc tính của Bean <jsp:getProperty>
Ngược với thẻ <jsp:setProperty, thẻ <jsp:getProperty> dùng để
lấy về nội dung của một thuộc tính.
Các đối tượng mặc định của trang JSP :
- Trang diễn dịch JSP cho phép sử dụng một số đối tượng đã khai báo trước. Điều này giúp viết mã lệnh trong trang jsp nhanh hơn servlet.
- Đối tượng out: xuất phát từ lớp PrintWriter. Bạn cĩ thể sử dụng đối tượng này để định dạng kết xuất gửi về máy khách. Ví dụ: <% out.println(“Result”+7*3;%>
- Đối tượng request: xuất phát từ lớp HttpServletRequest. Đối tượng này giúp lấy về các tham số hay dữ liệu do trình khách chuyển lên.
- Đối tượng response: tương tự đối tượng out, đối tượng response dùng để đưa kết xuất trả về trình khách. Tuy nhiên, đối tượng out được dùng thường xuyên hơn. out hỗ trợ thêm luồng đệm để tăng tốc kiết xuất.
- Đối tượng session: xuất phát từ lớp HttpSesssion. Sử dụng đối tượng session để theo dõi kết nối và lưu vết một phiên làm việc giữa trình khách và trình chủ.