CodeGym/コース/All lectures for JA purposes/JSP: サーブレットを定義する宣言的な方法

JSP: サーブレットを定義する宣言的な方法

使用可能

1.1 JSP の概要

サーブレットを作成するには、命令型宣言型の2 つの一般的な方法があります。最初のものについてはすでに説明しました。これは実際にはサーブレットです。2 つ目は JSP (Java Server Pages) と呼ばれるもので、ここで詳しく説明します。

サーブレット JSP の例:

<html>
    <body>
        <% out.print(2*5); %>
    </body>
 </html>

私たちが慣れ親しんでいる古典的なサーブレットとはあまり似ていませんね。これは本当です。JSP は、Java コードが挿入された HTML ページです (緑色で強調表示されています)

ご存知のとおり、サーブレットに大量の Java コードがあり、HTML コードが少ない場合は、従来のサーブレットを使用するほうが快適です。しかし、サーバーによって数行しか変更されない大きな HTML ページが必要な場合はどうすればよいでしょうか?

この場合、最も簡単なのは、この HTML ページを作成し、その中でサーバー上の Java コードを何らかの方法で実行することです。

1.2 JSPのコンパイル

別の例を見てみましょう。

<html>
  <body>
    <%
        double num = Math.random();
        if (num > 0.95) {
     %>
         <h2>You are lucky, user!</h2><p>(<%= num %>)</p>
    <%
        }
    %>
  </body>
</html>

乱数を取得し、それが 0.95 より大きい場合は、「幸運です、ユーザー!」というテキストを出力します。

ここでは Java コードが青で強調表示されています。通常 (強調表示されていない) - HTML コード、および赤色 - サービス タグ。Java コードがどこにあるか、HTML がどこにあるかを理解するのに役立ちます。

何かおかしいことに気づきましたか?閉じ中括弧は"}"別の にあります"code block"。このようなコードを記述する正しい方法は何でしょうか? それはどのように機能するのでしょうか?

答えはとても簡単です:)

Web サーバーは、JSP ファイルを見つけた後、それをクラシック サーブレットにコンパイルします。上記の JSP ページに基づいて、このサーブレットが生成されます。

public class HelloServlet extends HttpServlet {
    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>");
    }
}

Web コンテナはサーブレット コードを生成したところです。HTML はテキストに変わり、挿入された Java コードは通常の Java コードになりました。

コメント
  • 人気
  • 新規
  • 古い
コメントを残すには、サインインしている必要があります
このページにはまだコメントがありません