2.1 JSP指令
既然我們發現JSP文件被轉換成了一個普通的servlet,那你就可以在裡面寫正常的Java代碼了。在此 Java 代碼中,您可以使用各種類(示例中的數學)。這更好!但是我們可以看到所有的代碼都被移到了一個doGet()
servlet 方法中。這立即引發了幾個問題:
- 如何使代碼移動到方法中
doPost()
? - 如何將自己的代碼添加到方法中
init()
? - 到底如何註冊類導入?
很好的問題,當然,他們有答案 - JSP 指令。JSP 中的所有非 HTML 代碼都必須用特殊的方括號<%
和%>
. 所有 JSP 指令都由一個模板給出:
<%@ directive %>
以下是最流行的頁面指令屬性列表:
例子 | 描述 | ||
---|---|---|---|
1個 | 進口 | <%@ page import="java.util.Date" %> |
導入一個類 |
2個 | 內容類型 | <%@ page contentType=text/html %> |
設置內容類型 |
3個 | 延伸 | <%@ page extends="Object" %> |
您可以設置基類 |
4個 | 信息 | <%@ page info="Author: Peter Ivanович; version:1.0" %> |
為 getServletInfo() 設置數據 |
5個 | 緩衝 | <%@ page buffer="16kb" %> |
設置響應緩衝區的大小 |
6個 | 語言 | <%@ page language="java" %> |
指定語言,默認為Java |
7 | 被忽略 | <%@ page isELIgnored="true" %> |
允許您禁用 EL 腳本 |
8個 | 是線程安全的 | <%@ page isThreadSafe="false" %> |
指向線程安全 |
9 | 自動沖洗 | <%@ page autoFlush="false" %> |
管理緩衝區寫入 |
10 | 會議 | <%@ page session="false" %> |
您可以禁用該頁面的會話 |
十一 | 頁面編碼 | <%@ page pageEncoding="UTF-8"%> |
可以設置頁面編碼 |
12 | 錯誤頁面 | <%@ page errorPage="errorpage.jsp" %> |
你可以設置一個錯誤頁面 |
2.2 進口
為了好玩,讓我們向 JSP 文件添加一些導入並定義一個基類。
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>
這就是它的結果:
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> ");
}
}
作品。偉大的!
GO TO FULL VERSION