2.1 Chỉ thị JSP
Vì chúng tôi phát hiện ra rằng tệp JSP được chuyển đổi thành một servlet thông thường, nên bạn có thể viết mã Java bình thường trong đó. Và trong mã Java này, bạn có thể sử dụng nhiều lớp khác nhau (Math từ ví dụ). Điều này thậm chí còn tốt hơn! Nhưng chúng ta có thể thấy rằng tất cả mã đã được chuyển sang một doGet()
phương thức servlet. Và điều này ngay lập tức đặt ra một số câu hỏi:
- Làm cách nào để mã được chuyển sang phương thức
doPost()
? - Làm cách nào để thêm mã của riêng bạn vào phương thức
init()
? - Làm thế nào cuối cùng để đăng ký nhập khẩu lớp học?
Những câu hỏi hay, và tất nhiên, chúng có câu trả lời - các chỉ thị JSP. Tất cả mã không phải HTML trong JSP phải được đặt trong dấu ngoặc đặc biệt <%
và phần mở rộng %>
. Tất cả các chỉ thị JSP được cung cấp bởi một mẫu:
<%@ directive %>
Dưới đây là danh sách các thuộc tính chỉ thị trang phổ biến nhất:
Ví dụ | Sự miêu tả | ||
---|---|---|---|
1 | nhập khẩu | <%@ page import="java.util.Date" %> |
Nhập một lớp |
2 | nội dungType | <%@ page contentType=text/html %> |
Đặt loại nội dung |
3 | mở rộng | <%@ page extends="Object" %> |
Bạn có thể đặt lớp cơ sở |
4 | thông tin | <%@ page info="Author: Peter Ivanович; version:1.0" %> |
Đặt dữ liệu cho getServletInfo() |
5 | đệm | <%@ page buffer="16kb" %> |
Đặt kích thước của bộ đệm phản hồi |
6 | ngôn ngữ | <%@ page language="java" %> |
Chỉ định ngôn ngữ, mặc định là Java |
7 | isELIgnored | <%@ page isELIgnored="true" %> |
Cho phép bạn tắt tập lệnh EL |
số 8 | isThreadSafe | <%@ page isThreadSafe="false" %> |
Điểm đến chủ đề an toàn |
9 | tự động xả | <%@ page autoFlush="false" %> |
Quản lý ghi bộ đệm |
10 | phiên họp | <%@ page session="false" %> |
Bạn có thể vô hiệu hóa phiên cho trang |
mười một | mã hóa trang | <%@ page pageEncoding="UTF-8"%> |
Bạn có thể đặt mã hóa trang |
12 | trang lỗi | <%@ page errorPage="errorpage.jsp" %> |
Bạn có thể đặt một trang lỗi |
2.2 Nhập khẩu
Hãy thêm một vài thao tác nhập vào tệp JSP của chúng ta để giải trí và định nghĩa một lớp cơ sở.
Ví dụ về tệp JSP:
<%@ page import="java.util.Date" %>
<%@ page import="java.lang.Math" %>
<%@ page extends="com.codegym.MyHttpServlet" %>
<html>
<body>
<%
double num = Math.random();
if (num > 0.95) {
%>
<h2>You are lucky, user!</h2><p>(<%= num %>)</p>
<%
}
%>
</body>
</html>
Và đây là những gì sẽ đến của nó:
import java.util.Date;
import java.lang.Math;
public class HelloServlet extends com.codegym.MyHttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws Exception {
PrintWriter out = response.getWriter();
out.print("<html> ");
out.print("<body> ");
double num = Math.random();
if (num > 0.95) {
out.print("<h2> You're lucky, user! </h2> <p> (" + num + ")</p> ");
}
out.print("</body> ");
out.print("</html> ");
}
}
Làm. Tuyệt vời!
GO TO FULL VERSION