web-dev-qa-db-ja.com

サーブレットの代わりにJSPを使用する理由

(再開するために書き直し:)

JSPに対するサーブレット、またはその逆の相対的な利点は何ですか?

JSP内にコードを配置するのは簡単なため、JSPが好まれているのでしょうか。他の考慮事項はありますか?

これに関する情報は非常に役立ちます。

3
JNL

JSPの主な利点は、動的なHTMLフロントエンドを作成するときに、コーディングや読み取りが簡単になることです。

これは、主にHTMLを記述し、一部の場所にJavaコードを埋め込むためです。

サーブレットでは、ロジックを逆にする必要があります。つまり、Javaコードを記述してHTMLを出力します。

これは、プレゼンテーション層のほとんどのコードがHTML/JSであるためです。

一方、ビジネスロジックは大部分がJavaコードであるため、その場合はサーブレットまたはPOJO(プレーン、古いJavaオブジェクト)を使用することをお勧めします) 。

編集:JSPコード自体は決して実行されないため、パフォーマンスの違いはなく、サーブレットに変換されます。変更後の初めてのJSPの実行時のみ、サーブレットに変換する必要があるため、実行に少し時間がかかります。

JSPとサーブレットの単純な「Hello World」プログラムを比較します。

JSP:

<html>
        <head><title>Hello World JSP Page.</title></head>
        <body>
                <font size="10"><%="Hello World!" %></font>
        </body>
</html>

サーブレット

import Java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

    public class HelloWorld extends HttpServlet{ 
      public void doGet(HttpServletRequest request, 
      HttpServletResponse response)
      throws ServletException,IOException{
      response.setContentType("text/html");
      PrintWriter pw = response.getWriter();
      pw.println("<html>");
      pw.println("<head><title>Hello World</title></title>");
      pw.println("<body>");
      pw.println("<h1>Hello World</h1>");
      pw.println("</body></html>");
      }
    }
4