Bài giảng Phát triển Web với Java EE - Bài 3: Cơ bản JSP
Nôi dung bài học
JSP là gì?
- Vòng đời của một JSP
- Mối quan hệ giữa JSP và Servlet
- Kỹ thuật sinh nội dung động với JSP
- Gọi mã nguồn Java sử dụng JSP scripting elements
- Xử lý lỗiThế nào là Static & Dynamic Contents?
Static contents
Điển hình là các trang
HTML tĩnh
Hiển thị như nhau cho tất
cả mọi người
Dynamic contents
Nội dung được sinh tự động
theo 1 số conditions
Các Conditions có thể là
Tài khoản người dùng
Thời gian
Giá trị User nhập vào trên
forms hoặc qua lựa chọn
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phát triển Web với Java EE - Bài 3: Cơ bản JSP", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
Tóm tắt nội dung tài liệu: Bài giảng Phát triển Web với Java EE - Bài 3: Cơ bản JSP
Bài 3: Cơ bản JSP Nôi dung bài học JSP là gì? - Vòng đời của một JSP - Mối quan hệ giữa JSP và Servlet - Kỹ thuật sinh nội dung động với JSP - Gọi mã nguồn Java sử dụng JSP scripting elements - Xử lý lỗi Thế nào là Static & Dynamic Contents? Static contents Điển hình là các trang HTML tĩnh Hiển thị như nhau cho tất cả mọi người Dynamic contents Nội dung được sinh tự động theo 1 số conditions Các Conditions có thể là Tài khoản người dùng Thời gian Giá trị User nhập vào trên forms hoặc qua lựa chọn Trang JSP là gì? Thiết kế các trang web sử dụng HTML chuẩn Vị trí nào cần tạo ra nội dung động chỉ cần chèn các thẻ Java vào bên trong HTML. Toàn bộ trang JSP được thông dịch sang Servlet (một lần) và Servlet được thực thi khi yêu cầu của client gửi đến Ví dụ Hello World! Current time is JSP và Servlet Servlet Thuận lợi -Đọc dữ liệu từ Form -Đọc các HTTP Request Header -Gán HTTP Status Code và Response Header -Sử dụng Cookie và Session -Chia sẽ dữ liệu giữa các Servlet -Xử lý cơ sở dữ liệu, ... Bất lợi -Sử dụng câu lệnh println để phát sinh HTML - Khi thay đổi, phải biên dich lại, (đóng gói lại), deploy lại Servlet rất mạnh về xử lý và điều phối, nhưng Servlet lại rất yếu về tạo giao diện và bảo trì web JSP và Servlet JSP Đơn giản hóa việc phát triển ứng dụng Web với JSP, JavaBeans và custom tags Hỗ trợ tái sử dụng phần mềm qua các components (JavaBeans, Custom tags) Tự động triển khai Tự biên dịch lại các trạng JSP khi có thay đổi Độc lập playform JSP mạnh về xử lý hiển thị nhưng lại yếu về xử lý nghiệp vụ và điều phối JSP và Servlet Trong thực tế, chúng ta kết hợp sức mạnh của Servlet và JSP vào mô hình MVC (Model-View-Controller) • Các Servlet đóng vai trò làm Controller • Các trang JSP đóng vai trò làm View • Model: sử dụng các công nghệ sẵn có khác (JDBC, hibernate, ...) Vòng đời của một trang JSP Vòng đời của một trang JSP Các giai đoạn trong vòng đời trang JSP • Translation • Compile • Execution Vòng đời của một trang JSP Giai đoạn Translation/Compilation • Các file JSP được dịch thành mã Servlet. Sau đó mã này mới được biên dịch tiếp • Thực hiện tự động nhờ container, ở lần đầu tiên trang JSP được truy cập (hoặc khi chỉnh sửa) • Với trang JSP tên là "pageName", mã dịch sẽ nằm ở /work/Standard Engine/localhost/context_root/pageName$jsp.java • Ví dụ: • /work/Standard Engine/localhost/date/mdex$jsp.java • Dữ liệu tính được chuyển thành mã Java, tác động tới output stream trả dữ liệu về cho client • Các phần tử JSP được xử lý khác nhau: • Các chỉ dẫn (Directives) được dùng để điều khiển Web container biên dịch và thực thi trang JSP • Phần tử Scripting được thêm vào lớp servlet tương ứng của trang JSP • Phần tử dạng được chuyển thành lời gọi phơng thức tới JavaBeans components Vòng đời của một trang JSP Các phương thức trong giai đoạn thực thi Vòng đời của một trang JSP Khởi tạo trang JSP • Có thể khai báo phương thức khởi tạo thực hiện nhiệm vụ • Đọc tham số cấu hình • Khởi tạo tài nguyên • Thực hiện bất kỳ công việc khởi tạo nào khác bằng việc override phương thức jspInit() của giao diện JspPage Kết thúc trang JSP • Khai báo phương thức thực hiện nhiệm vụ • Đọc tham số cấu hình • Giải phóng tài nguyên • Thực hiện bất kỳ công việc dọn dẹp nào bằng cách override phương thức jspDestroy() của giao diện JspPage Các bước phát triển ứng dụng Web với JSP Viết code (và biên dịch) cho các Web component (Servlet or JSP), các helper classes sử dụng trong web component Tạo các tài nguyên tĩnh (Images, các trang HTML) Viết file deployment descriptor (web.xml) Build úng dụng Web (Tạo file *.war hoặc thư mục dạng chưa đóng gói nhưng triển khai được) Triển khai ứng dụng Web trên 1 Web container • Web clients có thể truy cập ứng dụng qua URL JSP "là" Servlet! Các trang JSP được dịch thành servlet Tomcat biên dịch greeting.jsp thành greeting$jsp.java Scriptlet (Java code) trong trang JSP sẽ được chèn vào trong phương thức jspServiceQ của servlet tương ứng Các đối tượng Servlet có thể được truy cập từ trang JSP, mã nguồn phát triển JavaBeans, hoặc custom tag. Kỹ thuật sinh nội dung động trong JSP Có thể áp dụng các kỹ thuật khác nhau, tùy các yếu tố sau • Kích thước, độ phức tạp của project • Yêu cầu về tái sử dụng code, bảo trì, ... Có đầy đủ các kỹ thuật từ đơn giản tới phức tạp Kỹ thuật sinh nội dung động trong JSP Gọi mã Java trực tiếp trong JSP Gọi mã Java gián tiếp trong JSP Sử dụng JavaBeans Tự phát triển và sử dụng các custom tags Sử dụng 3rd-party custom tags hoặc JSTL (JSP Standard Tag Library) Sử dụng mẫu thiết kế MVC Sử dụng Model2 frameworks đã được kiểm chứng Gọi mã nguồn Java sử dụng JSP scripting elements Cho phép chèn các đoạn mã nguồn java vào bên trong trang JSP Khi trang JSP thông dịch các đoạn mã nguồn này sẽ được chèn vào bên trong phương thức _jspService của Servlet. Có 3 dạng: • Expressions: • Scriptlets: • Declarations: Gọi mã nguồn Java sử dụng JSP scripting elements JSP Expression Định dạng: • JSP : Lưu ý:- Không được phép sử dụng dấu ; trong các Expression Gọi mã nguồn Java sử dụng JSP scripting elements JSP Expression Kết quả Expression sau tính toán ra kết quả sẽ được chuyển thành một String String được chèn trực tiếp vào bên trong Ouput Stream của Servlet. Kết quả tương tự như: • out.println(Expression); Trong Expression có thể sử dụng các biến: • Các biến được định nghĩa tường minh • Các đối tượng được tạo sẵn ngầm định Gọi mã nguồn Java sử dụng JSP scripting elements Sử dụng JSP Expression Gọi mã nguồn Java sử dụng JSP scripting elements Sử dụng JSP Expression Gọi mã nguồn Java sử dụng JSP scripting elements JSP Scriptlet Định dạng: • JSP : Gọi mã nguồn Java sử dụng JSP scripting elements JSP Scriptlet Kết quả: • Sau khi trang JSP được thông dịch sang Servlet, mã nguồn java trong scriptlet được chèn tương ứng vào bên trong phương thức _jspServiceO Trong Scriptlet có thể sử dụng các biến: • Các biến được định nghĩa tường minh • Các đối tượng được tạo sẵn ngầm định Trong scriptlet được phép khai báo biến, sử dụng các câu lệnh điều kiện, vòng lặp, gọi phương thức,... Gọi mã nguồn Java sử dụng JSP scripting elements Sử dụng JSP Scriptlet Gọi mã nguồn Java sử dụng JSP scripting elements Sử dụng JSP Scriptlet Gọi mã nguồn Java sử dụng JSP scripting elements Sử dụng Scriptlet + Expression + HTML Gọi mã nguồn Java sử dụng JSP scripting elements JSP Declaration Định dạng: • JSP : <%! Khai báo các thuộc tính • Định nghĩa các phương thức %> Gọi mã nguồn Java sử dụng JSP scripting elements JSP Declaration Sau khi trang JSP được thông dịch thành Servlet thì các khai báo thuộc tính và định nghĩa phương thức được chèn vào bên trong Servlet. JSP Declaration được sử dụng với Scriptlet và Expression Gọi mã nguồn Java sử dụng JSP scripting elements JSP Declaration được sử dụng với Scriptlet và Expression JSP Declaration cho phép -Định nghĩa phương thức mới Cài đặt lại các phương thức jspInit(), jspDestroy Không được phép cài đặt lại phương thức _jspService() JSP Declaration không được phép sử dụng các đối tượng được định nghĩa ngầm định Gọi mã nguồn Java sử dụng JSP scripting elements Khai báo JSP Declaration XIN CẢM ƠN!
File đính kèm:
- bai_giang_phat_trien_web_voi_java_ee_bai_3_co_ban_jsp.pdf