比較表
比較基準 | アプレット | サーブレット |
---|---|---|
実行 | アプレットは常にクライアント側で実行されます。 | サーブレットは常にサーバー側で実行されます。 |
パッケージ | import java.applet。*; import java.awt。*; | import javax.servlet。*; import java.servlet.http。*; |
ライフサイクル方法 | init()、stop()、paint()、start()、destroy()。 | init()、service()、およびdestroy()。 |
ユーザーインターフェース | アプレットはAWTやSwingなどのユーザーインターフェースクラスを使用します。 | ユーザーインターフェイスは必要ありません。 |
要件 | 実行にはJava互換ブラウザが必要です。 | クライアントサイドからの入力を処理し、HTMLページ、Javascript、アプレットに関する応答を生成します。 |
リソース | クライアントに到着すると、クライアントのリソースを使用してグラフィカルインターフェイスを作成し、複雑な計算を実行します。 | サーバーのリソースを利用してクライアントの要求と応答を処理します。 |
帯域利用率 | アプレットは、クライアントマシン上で実行されるにつれて、より多くのネットワーク帯域幅を利用します。 | サーブレットはサーバー上で実行されるため、必要な帯域幅は少なくて済みます。 |
セキュリティ | クライアントマシンにあるため、より危険になりやすいです。 | それはサーバーのセキュリティの下にあります。 |
アプレットの定義
アプレットは、実行するためにHTMLコードに埋め込まれた小さなJavaプログラムで、クライアント側のマシンで実行されます。 JavaのAPIライブラリには、「アプレット」という名前のクラスが含まれている「アプレット」という名前のパッケージが含まれています。 作成するアプレットはすべてAppletクラスのサブクラスでなければなりません。また、そのサブクラスはプログラムの外部にあるコードからアクセスされるため、そのサブクラスは「public」と宣言する必要があります。 それでは、簡単な例を使ってアプレットの作成を理解しましょう。
import java.awt。*; import java.applet。*; パブリッククラスHelloはアプレットを拡張します。{public void paint(Graphics g){g.drawString( "Hello Applet"、20、20); }}
上記のコードでは、2つのimportステートメントはパッケージ“ awt”とパッケージ“ applet”であり、これらはすべてのアプレットの作成に必要です。 コード内のpaint()メソッドは、作成されたアプレットによってオーバーライドされるパッケージawtで定義されています。 ご覧のとおり、Helloクラスは、パッケージアプレット内で定義されているクラスAppletを拡張しました。 さて、あなたはこのファイルをクラス名、すなわちHello.javaで保存しなければなりません。 アプレットを実行する方法は2つあります。
- Java互換のWebブラウザでアプレットを実行します。
- アプレットを実行する最速の方法でもあるappletviewerを使用して実行します。
Java互換のWebブラウザでアプレットを実行する最初の方法では、Hello.javaファイルに作成されたアプレットを埋め込むHTMLプログラムを作成する必要があります。
// HTMLコード
ここで、アプレットコード「Hello」は、アプレットを作成したファイルの名前です。 では、このファイルを保存して、hello.htmlとしましょう。 このファイルをWebブラウザで実行するために必要なのは、このHTMLファイルをWebブラウザにロードするだけで、アプレットが実行されます。
アプレットビューアでアプレットを実行する2番目の方法は、アプレットビューアでアプレットを実行するために必要なコマンドを以下に示します。
>アプレットビューアhello.html
実行速度を上げるための別の便利な方法もあります。 ソースコードHello.javaの先頭にHTMLコードをコメントとして埋め込む
import java.awt。*; import java.applet。*; / * * / public class Helloアプレットを拡張します。{void void(Graphics g){g.drawString( "Hello Applet"、20、20); }}
アプレットを実行するには、コマンドを渡す必要があります。
> javac Hello.java> appletviewer Hello.java
Appletクラスのライフサイクルメソッドはinit()、service()、destroy()です。 init()メソッドは、アプレットが初期化されたときに呼び出されます。 start()メソッドはアプレットの起動時または再起動時に呼び出されます。 stop()メソッドはアプレットが終了したときに呼び出されます。 paint(Graphics)メソッドはアプレットを再描画する必要があるときに呼び出されます。 destroy()メソッドはアプレットが破棄されているときに呼び出されます。
注意:
アプレットクラスにmain()メソッドが含まれていないことがわかります。代わりに、アプレットの名前がアプレットビューアに渡されるか、アプレット名を含むHTMLファイルがWebブラウザに読み込まれると、アプレットの実行が開始されます。
サーブレットの定義
アプレットと同様に、サーブレットもサーバー側で実行される小さなJavaプログラムです。 プラットフォームに依存するCGIプログラムのパフォーマンスの問題から、サーブレットが導入されています。 サーブレットはプラットフォームに依存しません。 サーブレットの主な目的は、クライアントからの要求を収集し、対応する要求に対して要求されたWebページを動的に生成し、それをクライアントに送り返すことです。
サーブレットは、パッケージjavax.servletおよびjava.servlet.httpを使用して作成できます。 サーブレットのライフサイクルメソッドはinit()、service()、およびdestroy()です。 これらのメソッドは、必要なときにサーバーによって呼び出されます。
init() :このメソッドは、サーブレットが最初にメモリにロードされたときにサーバーによって呼び出されます。
service() :このメソッドは、クライアントによって送信されたHHTPリクエストtを処理するために呼び出されます。
destroy() :このメソッドはサーブレットに割り当てられていたリソースを解放するために呼び出されます。
Javaにおけるアプレットとサーブレットの主な違い
- アプレットはクライアントマシン上で実行されるアプリケーションですが、サーブレットはサーバマシン上で実行されるアプリケーションです。
- アプレットを作成するために使用されるパッケージは次のとおりです。import java.applet。*; java.awt。*をインポートします。 一方、サーブレットの作成に使用されるパッケージは、import javax.servlet。*です。 java.servlet.http。*をインポートします。
- アプレットクラスのライフサイクルメソッドはinit()、stop()、paint()、start()、destroy()です。 一方、ライフサイクルメソッドはinit()、service()、およびdestroy()です。
- アプレットはユーザーインターフェイスクラスAWTとSwingを使用してユーザーインターフェイスを作成しますが、サーブレットはユーザーインターフェイスクラスを必要としません。
- クライアントマシン上でアプレットを実行するには、Java互換のWebブラウザが必要です。 一方、サーブレットでは、Webサーバーがクライアントの要求と応答を処理するためにJava対応のJavaが必要です。
- アプレットは、クライアント側で実行されるときにクライアントマシンのリソースを利用します。 サーブレットは、サーバー側で実行されるときにサーバーのリソースを利用します。
- アプレットはサーブレットと比較してより多くのセキュリティ問題に直面します。
結論:
アプレットとサーブレットはどちらも、サーブレットがクライアントの要求に応じてアプレットを生成することができる小さなJavaプログラムです。