TỔNG QUAN VỀ CÔNG NGHỆ JSP

Một phần của tài liệu Giáo trình lập trình Web với Servlet và JSP - Đặng Thanh Dũng (Trang 80 - 85)

TỔNG QUAN VỀ CÔNG NGHỆ JSP

Công nghệ JSP cho phép kết hợp HTML tĩnh với các nội dung động. Chúng ta chỉ cần viết một trang HTML thông thường, sau đó chèn một đoạn code vào (cho các nội dung động), đặt code trong cặp tag <% và %>. Bảng 8.1 - OrderConfirmation.jsp <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Order Confirmation</TITLE> <LINK REL=STYLESHEET HREF="JSP-Styles.css" TYPE="text/css"> </HEAD> <BODY> <H2>Order Confirmation</H2>

Thanks for ordering <I><%= request.getParameter("title") %></I>!

</BODY></HTML>

Hình 8.1 - Kết quả của OrderConfirmation.jsp

Có thể nói rằng servlet chính là chương trình Java code, trong đó có chèn HTML và ngược lại, JSP chính là chương trình HTML, trong đó có chèn Java code. Ngoài điều này, chúng hoàn toàn giống nhau. Các trang JSP sẽ được chuyển đổi thành các servlet, sau đó các servlet này sẽ

được biên dịch và được thực thi vào thời điểm có request. Cách viết một trang JSP cũng giống như cách viết một servlet.

Phần này tập trung vào việc nêu các ưu điểm và giải thích lý do sử dụng JSP, các ưu điểm của nó.

8.1. SỰ CẦN THIẾT CỦA JSP

Servlet thực sự rất hữu ích trong lập trình và xử lý dữ liệu nhưng lại không tốt trong việc hiển thị:

(1) Khó tạo và duy trì trang HTML bằng servlet (với hàm println). (2) Không sử dụng được các công cụ HTML chuẩn.

(3) HTML gây khó hiểu cho các nhà lập trình web nếu họ không biết ngôn ngữ Java.

Chính vì vậy, JSP thật sự cần thiết trong một số trường hợp. Các trang JSP được chuyển đổi thành các servlet. Do đó, có thể nói rằng, những gì JSP làm được thì servlet cũng làm được.Tuy nhiên, không phải servlet và JSP tương đương nhau trong mọi trường hợp. Có những lúc vấn đề này không phải là thế mạnh của công nghệ A, nhưng lại là thế mạnh của công nghệ B. Có thể tóm lược một số thế mạnh của JSP như sau:

(1) Dễ tạo và duy trì trang HTML.

(2) Có thể sử dụng các công cụ HTML chuẩn (Macromedia Dreamweaver).

(3) Có thể chia đội ngũ phát triển trang web thành nhiều nhóm nhỏ: nhóm viết code động, nhóm hiển thị,…

8.2. CÀI ĐẶT TRANG JSP

Thay vì phải chia thành nhiều package như servlet, chúng ta hoàn toàn có thể đặt các trang JSP trong cùng một thư mục, chúng được truy xuất thông qua URL dưới cùng một hình thức giống như đối với trang HTML, images và style sheets.

Dưới đây là một vài ví dụ về thư mục cài đặt mặc định và kết hợp URL. Khi nói đến SomeDirectory nghĩa là có thể dùng bất kỳ thư mục nào được đặt tên mà người dùng muốn, ngoại trừ tên WEB-INF và META-INF. Việc sử dụng ứng dụng web mặc định cũng giúp tránh được việc để tên thư mục trùng với URL prefix của các úng dụng web khác.

8.2.1. Thư mục JSP trong TomCat (mặc định)

Thư mục chính: install_dir/webapps/ROOT URL tương ứng: http://host/SomeFile.jsp

Thư mục con trong thư mục chính: install_dir/webapps/ROOT/SomeDirectory

URL tương ứng: http://host/SomeDirectory/SomeFile.jsp

8.2.2. Thư mục JSP trong Jrun (mặc định)

Thư mục chính: install_dir/servers/default/default-ear/default-war URL tương ứng: http://host/SomeFile.jsp

Thư mục con trong thư mục chính: install_dir/servers/default/default-ear/default-war/SomeDirectory

URL tương ứng: http://host/SomeDirectory/SomeFile.jsp

8.2.3. Thư mục JSP trong Resin (mặc định)

Thư mục chính: install_dir/doc

URL tương ứng: http://host/SomeFile.jsp

Thư mục con trong thư mục chính: nstall_dir/doc/SomeDirectory URL tương ứng: http://host/SomeDirectory/SomeFile.jsp

Lưu ý:

- Dù các trang JSP không cần đặt trong một thư mục cài đặt đặc biệt nào, tuy nhiên, bất kỳ một Java class nào được gọi từ trang JSP đều cần phải đặt trong thư mục chuẩn được sử dụng bởi Java các servlet class (ví dụ: .../WEB-INF/classes/).

- Các java class được dùng bởi trang JSP đều phải đặt trong các package.

8.3. CÚ PHÁP JSP 8.3.1. HTML Text 8.3.1. HTML Text

Mô tả: nội dung của tập tin HTML, được gửi nguyên vẹn tới client. Ví dụ:

8.3.2. HTML Comments

Mô tả: ghi chú trong tập tin HTML, được gửi tới client nhưng sẽ không được hiển thị trên browser.

Ví dụ:

<!-- Blah -->

8.3.3. Template Text

Mô tả: văn bản, được gửi nguyên vẹn tới client. Văn bản HTML và các ghi chú trong tập tin HTML là trường hợp đặt biệt của template text.

8.3.4. JSP Comment

Mô tả: các ghi chú của lập trình viên, không được gửi tới client. Ví dụ:

<%-- Blah --%>

8.3.5. JSP Expression

Mô tả: biểu thức, được đánh giá và gửi tới client mỗi khi trang JSP được request.

Ví dụ:

<%= Java Value %>

8.3.6. JSP Scriptlet

Mô tả: một hoặc nhiều lệnh được thực thi mỗi khi trang JSP được request.

Ví dụ:

<% Java Statement %>

8.3.7. JSP Declaration

Mô tả: là các field hoặc method, trở thành một phần trong khai báo class khi trang JSP được chuyển đổi thành servlet.

Ví dụ:

<%! Field Definition %> <%! Method Definition %>

8.3.8. JSP Directive

Mô tả: thông tin ở mức cao về cấu trúc của servlet code Ví dụ:

8.3.9. JSP Action

Mô tả: hành động diễn ra khi trang JSP được request. Ví dụ:

<jsp:blah>...</jsp:blah>

8.3.10.JSP Expression Language Element

Mô tả: là một dạng ngắn gọn của JSP expression. Ví dụ:

${ EL Expression }

8.3.11.Custom Tag (Custom Action)

Mô tả: điều chỉnh tag. Ví dụ

<prefix:name> Body

</prefix:name>

8.3.12. Escaped Template Text

Mô tả: văn bản được hiển thị đặc biệt. Dấu “/” sẽ được loại bỏ, chỉ giữ lại văn bản khi gửi tới client.

Ví dụ: <\%

Một phần của tài liệu Giáo trình lập trình Web với Servlet và JSP - Đặng Thanh Dũng (Trang 80 - 85)