Java: Trang JSP là gì?

Một trang JSP là một tài liệu văn bản có chứa hai loại văn bản: dữ liệu tĩnh có thể được thể hiện ở bất kỳ định dạng nào dựa trên văn bản (như HTML , SVG , WML , và XML ), và các yếu tố JSP dùng để xây dựng nội dung động.

Phần mở rộng tệp được đề xuất cho tệp nguồn của trang JSP là .jsp. Trang có thể bao gồm một tệp tin trên trong đó bao gồm các tệp khác có chứa trang JSP hoàn chỉnh hoặc một đoạn của trang JSP. Khuyến cáo mở rộng cho tệp nguồn của một đoạn của một trang JSP là .jspf.

Các thành phần JSP trong một trang JSP có thể được thể hiện bằng hai cú pháp, chuẩn và XML, mặc dù bất kỳ tập tin nào cũng chỉ có thể sử dụng một cú pháp. Một trang JSP theo cú pháp XML là một tài liệu XML và có thể được thao tác bởi các công cụ và API cho các tài liệu XML. Bài này và bài Thư viện Thẻ Tiêu chuẩn JavaServer Pages cùng với bài Viết kịch bản trong các trang JSP chỉ có cú pháp chuẩn. Cú pháp XML được trình bày trong bài Các Tài liệu JavaServer.

Một ví dụ về trang JSP đơn giản

Trang web trong là một hình thức cho phép bạn chọn một locale và hiển thị ngày theo cách thích hợp với miền địa phương.

Chụp màn hình của mẫu ngày đã bản địa hoá.  Danh mục thả xuống của ngôn ngữ cho thấy tiếng Lithuania.  Get Date nút hiển thị ngày,
Mẫu ngày đã bản địa hoá

Mã nguồn cho ví dụ này là trong Tut-install / javaeetutorial5 / example / web / ngày / thư mục. Trang JSP, index.jsp , xuất hiện dưới đây; Nó là một hỗn hợp điển hình của các đánh dấu HTML tĩnh và các phần tử JSP. Nếu bạn đã phát triển các trang web, có lẽ bạn đã quen thuộc với các câu lệnh cấu trúc tài liệu HTML ( <head> , <body> , v.v.) và các câu lệnh HTML tạo một biểu mẫu ( <form> ) và một trình đơn ( <select> ).

Các dòng in đậm trong mã ví dụ chứa các kiểu cấu trúc JSP sau đây:

  • Chỉ thị của trang ( <% @ page ...%> ) đặt loại nội dung được trả về bởi trang.

  • Chỉ thị các thư viện thẻ ( <% @ taglib ...%> ) nhập thư viện thẻ tùy chỉnh.

  • Jsp: useBean là một phần tử tiêu chuẩn tạo ra một đối tượng có chứa một bộ sưu tập các ngôn ngữ và khởi tạo một số nhận diện chỉ ra đối tượng đó.

  • Các biểu thức (${}) dùng để lấy giá trị của thuộc tính đối tượng. Các giá trị được sử dụng để đặt các giá trị thuộc tính thẻ tùy chỉnh và tạo nội dung động.

  • Các thẻ tùy chỉnh (xem bài Thẻ tùy chỉnh trong các trang JSP) như thiết lập một biến (c:set), lặp một tập hợp các tên miền địa phương (c:forEach) và điều chỉnh có điều kiện văn bản HTML vào phản hồi (c:ifc:choosec:whenc:otherwise).

  • jsp:setProperty là một phần tử tiêu chuẩn khác thiết lập giá trị của một thuộc tính đối tượng.

  • Một hàm (f:equals) kiểm tra tính bằng nhau của một thuộc tính và mục hiện thời của bộ sưu tập. (Một built-in == operator thường được sử dụng để kiểm tra tính bằng nhau).

Đây là trang JSP:

<%@ page contentType="text/html; charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="/functions" prefix="f" %>
<html>
<head><title>Localized Dates</title></head>
<body bgcolor="white">
<jsp:useBean id="locales" scope="application" class="mypkg.MyLocales"/>

<form name="localeForm" action="index.jsp" method="post">
<c:set var="selectedLocaleString" value="${param.locale}" />
<c:set var="selectedFlag" value="${!empty selectedLocaleString}" />
<b>Locale:</b>
<select name=locale>
<c:forEach var="localeString" items="${locales.localeNames}" >
<c:choose>
    <c:when test="${selectedFlag}">
        <c:choose>
            <c:when test="${f:equals(selectedLocaleString, localeString)}" >
                <option selected>${localeString}</option>
            </c:when>
            <c:otherwise>
                <option>${localeString}</option>
            </c:otherwise>
        </c:choose>
    </c:when>
    <c:otherwise>
        <option>${localeString}</option>
    </c:otherwise>
</c:choose>
</c:forEach>
</select>
<input type="submit" name="Submit" value="Get Date">
</form>

<c:if test="${selectedFlag}" >
    <jsp:setProperty name="locales"
        property="selectedLocaleString"
        value="${selectedLocaleString}" />
    <jsp:useBean id="date" class="mypkg.MyDate"/>
    <jsp:setProperty name="date" property="locale"
        value="${locales.selectedLocale}"/>
    <b>Date: </b>${date.date}</c:if>
</body>
</html>

Để triển khai ứng dụng date với NetBeans IDE, hãy làm theo các bước sau:

  1. Khởi động Máy chủ Ứng dụng.

  2. Trong NetBeans IDE, chọn File → Open Project.

  3. Trong hộp thoại Open Project bạn điều hướng đến:

    tut-install/javaeetutorial5/examples/web/
  4. Chọn thư mục date.

  5. Chọn hộp kiểm Open as Main Project.

  6. Nhấp vào Open Project.

  7. Trong tab Projects bạn nhấp chuột phải vào dự án date, và chọn Undeploy and Deploy.

Để triển khai ứng dụng date với công cụ Ant, hãy làm theo các bước sau:

  1. Trong cửa sổ terminal, vào tut-install/javaeetutorial5/ examples/web/date/.

  2. Gõ ant. Lệnh này sẽ sinh ra bất kỳ biên dịch nào cần thiết, bạn hãysao chép các tập tin vào thư mục tut-install/javaeetutorial5/ examples/web/date/build/ và tạo tệp tin WAR.

  3. Khởi động Application Server.

  4. Soạn ant deploy.

Để chạy ví dụ bạn làm như sau:

  1. Đặt mã hoá ký tự trong trình duyệt của bạn thành UTF-8.

  2. Mở trình duyệt và điền vào: http://localhost:8080/date.

  3. Bạn sẽ thấy một hộp combo có mục nhập là locales. Chọn miền địa phương và nhấp vào Get Date. Bạn sẽ thấy ngày được diễn tả theo cách thích hợp cho địa phương đó.

Một số ký tự có thể không hiển thị chính xác nếu bạn không có các tệp ngôn ngữ thích hợp được cài đặt trên máy của bạn, khi đó bạn cần tham khảo hướng dẫn sử dụng hoặc trợ giúp trực tuyến cho hệ điều hành của bạn để xác định cách bạn có thể cài đặt các tệp ngôn ngữ này.