2.1 JSP ディレクティブ
JSP ファイルは通常のサーブレットに変換されることがわかったので、その中に通常の Java コードを記述することができます。この Java コードでは、さまざまなクラス (例の Math) を使用できます。これはさらにいいですね!ただし、すべてのコードがサーブレット メソッドに移動されていることがわかりますdoGet()
。そして、これによりすぐにいくつかの疑問が生じます。
- コードをメソッドに移動するにはどうすればよいですか
doPost()
? - 独自のコードをメソッドに追加するにはどうすればよいですか
init()
? - 結局、クラスのインポートを登録するにはどうすればよいでしょうか?
素晴らしい質問ですが、もちろん、JSP ディレクティブという答えがあります。JSP 内のすべての非 HTML コードは、特殊な括弧 と で囲む必要があり<%
ます%>
。すべての JSP ディレクティブはテンプレートによって指定されます。
<%@ directive %>
最も一般的なページ ディレクティブ属性のリストを次に示します。
例 | 説明 | ||
---|---|---|---|
1 | 輸入 | <%@ page import="java.util.Date" %> |
クラスをインポートします |
2 | コンテンツタイプ | <%@ page contentType=text/html %> |
contentType を設定します |
3 | 伸びる | <%@ page extends="Object" %> |
基本クラスを設定できます |
4 | 情報 | <%@ page info="Author: Peter Ivanovich; 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