Javaサーブレットを理解するために多くの記事を読みましたが、成功しませんでした。
Javaサーブレットの簡単な紹介を(簡単な言語で)お願いできますか?サーブレットとは何ですか?利点は何ですか?そして、そのすべて。
サーバー側プログラミング言語(PHP、ASP)とサーブレットの違いを理解できません。
Javaサーブレットを理解するために多くの記事を読みましたが、成功しませんでした。
Javaサーブレットの簡単な紹介を(簡単な言語で)お願いできますか?サーブレットとは何ですか?利点は何ですか?そして、そのすべて。
サーバー側プログラミング言語(PHP、ASP)とサーブレットの違いを理解できません。
回答:
サーブレットは、特定のタイプのネットワーク要求(通常はHTTP要求)に応答するクラスです。基本的にサーブレットは通常、Webアプリケーションの実装に使用されますが、サーブレット(たとえばStruts)の上で動作して、「ここにHTTPリクエストがあります。このHTTPレスポンスに書き込む」レベルよりも高いレベルの抽象化を提供するさまざまなフレームワークもあります。提供します。
サーブレットは、ネットワーク側(HTTPリクエストの解析、接続処理など)を処理するサーブレットコンテナで実行されます。最もよく知られているオープンソースサーブレットコンテナの1つがTomcatです。
その中核となるサーブレットはJavaクラスです。HTTPリクエストを処理できます。通常、HTTPリクエストとワイヤ経由の応答を読み取る内部の要点は、Tomcatのようなコンテナによって処理されます。これは、サーバー側の開発者として、HTTPリクエストとHTTPレスポンスの処理に集中でき、ネットワーキングなどを処理するコードの処理に煩わされないようにするために行われます。コンテナは、全体をラップするなどの処理を行います。 HTTP応答オブジェクト。クライアント(ブラウザなど)に送信します。
次に尋ねるべき論理的な質問は、コンテナが何をすることになっているのかを誰が決めるのかということです。そして答えは; 少なくともJavaの世界では、仕様によってガイドされています(私は制御されたという言葉を使用していません)。たとえば、サーブレット仕様(リソース2を参照)は、サーブレットが何を実行できなければならないかを規定します。したがって、仕様の実装を記述できる場合は、コンテナーを作成したことを祝福します(技術的には、Tomcatのようなコンテナーは他の仕様も実装し、カスタムクラスローダーなどのトリッキーなことを行いますが、アイデアはわかります)。
コンテナーがあるとすると、サーブレットはJavaクラスになり、そのライフサイクルはコンテナーによって維持されますが、着信HTTP要求に対する応答はユーザーが決定します。そのためには、init()、doGet()、doPost()などの事前定義されたメソッドに、何をしたいかを記述します。リソース3を見てください。
ここにあなたのための楽しい運動があります。リソース3のような単純なサーブレットを作成し、そのコンストラクターメソッド(はい、サーブレットのコンストラクターを持つことができます)、init()、doGet()、doPost()メソッドにいくつかのSystem.out.println()ステートメントを記述して実行します。 Tomcatのサーブレット。コンソールログとtomcatログを参照してください。
これがお役に立てば幸いです。
資源
上記に加えて、そして明らかなことを指摘するために...
多くの人にとってこれは非常に明白ですが、実行されて終了するアプリを作成するのに慣れている人にとっては、サーブレットはほとんどの時間を費やして何もせずに、何かが送られるのを待ち、リクエストを送り、それに応答します。 。このため、サーブレットには有効期間があります。初期化されてから待機し、スローされたものに応答してから破棄されます。つまり、別の何か(フレームワーク)によって作成(および後で破棄)する必要があり、独自のスレッドまたはプロセスで実行し、要求されない限り何もしないことを意味します。また、なんらかの手段で、この「エンティティ」がリクエストを「リッスン」できるメカニズムを実装する必要があることにも注意してください。
スレッド、プロセス、ソケットについて読むことで、これに光を当てることをお勧めします。これは、基本的な「hello world」アプリの機能とはかなり異なります。
「サーバー」または「サーブレット」という用語は少しやり過ぎだと主張することもできます。より合理的でシンプルな名前は「レスポンダー」かもしれません。「サーバー」という用語を選択した理由は歴史的です。最初のそのような配置は「ファイルサーバー」でした。複数のユーザー/クライアントターミナルが中央マシンから特定のファイルを要求し、このファイルが「提供されます」 「本やフィッシュアンドチップスのようなものです。
サーブレットとは何ですか?
サーブレットは、ネットワーク側(HTTPリクエストの解析、接続処理など)を処理するサーブレットコンテナで実行されます。最もよく知られているオープンソースサーブレットコンテナーの1つはTomcatです。
要求/応答パラダイムでは、Webサーバーは静的ページのみをクライアントに提供できます
依頼の流れ
コンテナはどのサーブレットクライアントが要求したかをどのようにして知るのですか?
このファイルにはサーブレットに関する情報があります-
Webアプリ内のすべてのサーブレットには、このファイルへのエントリが必要です
サーブレットを「インストール」する方法は? *さて、サーブレットオブジェクトは、library- javax.servlet。*から継承されます。TomcatとSpringを使用して、これらのオブジェクトを利用し、ユースケースに適合させることができます。
Ref- 1.5x- https://www.youtube.com/watch?v=tkFRGdUgCsEでこれをご覧ください。これは素晴らしい説明があります。
サーブレットは、Webアプリケーションで動的なWebページを作成するために使用されるサーバー側のテクノロジーです。実際にサーブレットは、クラスとインターフェイスのグループで構成されるAPIであり、いくつかの機能があります。サーブレットAPIを使用する場合、サーブレットクラスとインターフェースの事前定義された機能を使用できます。
サーブレットのライフサイクル:
Webコンテナは、サーブレットインスタンスのライフサイクルを維持します。
1。ロードされたサーブレットクラス
2。作成されたサーブレットインスタンス
3。init()メソッドが呼び出されます
4。呼び出されたservice()メソッド
5。destroy()メソッドが呼び出された
client(browser)によってリクエストが発生すると、Webコンテナはサーブレットが実行されているかどうかをチェックし、実行されている場合はservice()メソッドを呼び出してブラウザに応答を返します。
サーブレットが実行されていない場合、Webコンテナは次の手順に従います。
1.クラスローダーがサーブレットクラスをロードする
2.サーブレットをインスタンス化します
3.サーブレットを初期化します
4. service()メソッドを呼び出す
リクエストを処理した後、Webコンテナは特定の時間待機します。この時間にリクエストが来た場合は、service()メソッドのみを呼び出し、それ以外の場合はdestroy()メソッドを呼び出します。
あなたが初心者であれば、このチュートリアルはサーブレットとは何かについての基本的な考えを与えると思います...
いくつかの重要なポイントは、与えられたリンクから以下です。
サーブレット技術は、サーバー側に常駐し、動的なWebページを生成するWebアプリケーションを作成するために使用されます。
サーブレットは、コンテキストに応じて、さまざまな方法で記述できます。
Javaサーブレットは、サーバー側のJavaプログラムモジュールであり、顧客の要求を処理して応答し、サーブレットインターフェースを実現します。それは無視できるオーバーヘッド、維持、サポートでWebサーバーの有用性を改善するのに役立ちます。
サーブレットは、顧客とサーバーの間の仲介者として機能します。サーブレットモジュールはサーバー上で実行を続けるため、顧客からの要求を取得して対応できます。サーブレットのデマンドオブジェクトとリアクションオブジェクトは、要求されたHTTPを処理し、コンテンツ情報を顧客に送り返すのに役立つ方法を提供します。
サーブレットはJavaダイアレクトと連携しているため、移動性が高い、ステージの自律性、セキュリティ、Javaデータベースの可用性など、Javaのすべてのハイライトが追加されています。
サーブレットは、WebサイトのユーザーがサーバーからURLを要求したときに特定の機能を実行するJavaクラスです。これらの関数は、データベースへのデータの保存、ロジックの実行、ページの読み込みに必要な情報(JSONデータなど)の返送などのタスクを実行できます。
ほとんどのJavaプログラムは、プログラムのmain()
実行時にコードを実行するメソッドを使用します。JavaサーブレットにはdoGet()
、doPost()
メソッドと同じように機能するメソッドとメソッドが含まれていますmain()
。これらの関数は、ユーザーがそのサーブレットにマップされたURLに対してGET
またはをPOST
要求したときに実行されます。したがって、ユーザーはGET
リクエストのページをロードしたり、POST
リクエストからデータを保存したりできます。
ユーザーがGET
or POST
リクエストを送信すると、サーバーは@WebServlet
ディレクトリ内の各サーブレットクラスの上部にあるを読み取り、呼び出すサーブレットクラスを決定します。たとえば、ChatBoxクラスがあり、これが一番上にあるとします。
@WebServlet("/chat")
public class ChatBox extends HttpServlet {
ユーザーが/chat
URLを要求すると、ChatBox
クラスが実行されます。
通常のサーブレットに対する答えが得られました。ただし、サーブレット3.0について何かお話ししたいと思います。
最初のサーブレットとは何ですか?
サーブレットは、コンテナによって管理され、動的コンテンツを生成するWebコンポーネントです。サーブレットは、Javaテクノロジ対応のWebサーバーまたはサーブレットコンテナに動的にロードして実行できるバイトコードにコンパイルされたJavaクラスです。
サーブレット3.0は、既存のサーブレット2.5仕様のアップデートです。サーブレット3.0には、Java Platform、Enterprise Edition 6のAPIが必要でした。サーブレット3.0は、拡張性とWebフレームワークのプラグイン性に重点を置いています。サーブレット3.0は、開発の容易さ(EoD)、プラグ可能性、非同期サポート、セキュリティ拡張などの拡張機能を提供します
開発のしやすさ
サーブレット、フィルター、リスナー、Init Paramsを宣言でき、注釈を使用してほとんどすべてを構成できます。
プラグイン可能性
web-fragment.xmlを使用してサブプロジェクトまたはモジュールを作成できます。つまり、プラグ可能な機能要件を個別に実装することができます。
非同期サポート
サーブレット3.0は、非同期処理の機能を提供します。たとえば、リソースが利用可能になるのを待つ、非同期に応答を生成する、などです。
セキュリティの強化
認証、ログイン、およびログアウトのサーブレットセキュリティメソッドのサポート
Javaサーブレットチュートリアルから見つけました
servlets
黒いボックスがポップアップするまで、質問の下にタグを置きます。その中の情報リンクをクリックします。