- 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 hoàn toà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 <% %> Web Brows er Trình diễn dịch JSP Trang JSP HTTP Service JRUN Servlet Yêu cầu kết xuất
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 toà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 %>
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 toà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ủ.