この記事では主にサーブレットの基本情報を詳しく紹介します。興味のある方は参考にしてください。
サーブレットは、動的 Web リソースを開発するために特別に使用されるテクノロジーであり、サーブレット インターフェイスを提供します。したがって、狭義のサーブレットはこのインターフェイスを指し、広義のサーブレットはこのサーブレット インターフェイスのクラスを指します。 。 サーブレットを使用して動的 Web リソースを開発することは、実際にはブラウザにデータを出力する Java プログラムを開発することになります。
サーブレットは、実際にはサーバー上で実行される Java プログラムです。したがって、初心者の方は、J2SE の API ドキュメントを読むことをお勧めします。サーブレット。サーブレットのドキュメントの紹介を見てみましょう:
このサーブレット インターフェイスの紹介から、サーブレット インターフェイスを実装したい場合は、そのすべてのメソッドを実装する必要があることがわかります。 Web サーバー。クライアントからのリクエストを受信して応答するために使用します。もちろん、前に述べたように、サーブレット インターフェイスを実装するクラスを作成する場合は、サーブレットのすべてのメソッドをオーバーライドする必要がありますが、GenericServlet クラスや HttpServlet クラスなどの実装クラスを継承できます。オーバーライドしたいものだけをオーバーライドする必要があるということです。メソッドを使用するだけです。
サーブレットのメソッドには、ライフサイクル メソッドと非ライフサイクル メソッドが含まれます。サーブレットのライフサイクル メソッドには、init(ServletConfig config)、destroy()、service(ServletRequest req、ServletResponse res)、つまりサーブレットの初期化、リクエストに対する応答サービス、およびサーブレットの破棄が含まれます。
サーブレットのライフサイクル メソッドに加えて、サーブレットに関する情報を取得できる getServletConfig() メソッドや getServletInfo() メソッドなどの非ライフサイクル メソッドもあります。
サーブレットのライフサイクルとは、サーブレットインスタンスの作成からクライアントリクエストへの応答、そして最終的に破棄までのプロセスを指します。具体的なプロセスは次のとおりです:
1. サーバーはサーブレットのインスタンスを作成します、つまり init() メソッドを呼び出します
2. クライアントのリクエスト (オブジェクト) がサーバーに到着します
3. サーバーがリクエストを送信します。サーブレットへ;
4. サーブレットはリクエストに対するレスポンス(オブジェクト)を生成します
5. サーバーはリクエストオブジェクトとレスポンスオブジェクトをパラメータとして渡します。 ) メソッドはリクエスト オブジェクトの情報を取得し、それを処理します リクエストを行い、リソースにアクセスし、必要な情報を取得します
7. Service() メソッドは、レスポンス オブジェクトのメソッドを使用してレスポンスをサーバーに送り返し、最終的にクライアントに到達します。 。 Service メソッドは、doGet() メソッドや doPost() メソッドなどの他のメソッドを起動してリクエストを処理することもあります
8. さらに多くのクライアント リクエストに対して、サーバーは新しいリクエスト オブジェクトと応答オブジェクトを作成し、引き続きこのサービス メソッドを起動します。サーブレット。これら 2 つのオブジェクトはパラメータとして渡されるため、init() メソッドを再度呼び出す必要はありません。通常、サーブレットは 1 回だけ初期化されます。サーバーがサーブレットを必要としなくなった場合 (通常、サーバーはシャットダウンされます)、サーバーはサーブレットの destroy() メソッドを呼び出してサーブレットを破棄します。
上記のことから、サーブレットのライフサイクルにおける 3 つのメソッドはサーバーによって呼び出されることはわかりますが、これらはサーブレットの存在開始から開始に至るまでのプロセスのある時点で必ず実行されると言えます。 (イベントがトリガーされた場合) メソッドはライフサイクル メソッドと呼ばれます。
したがって、サーブレットで最も重要なことは、サーバーからクライアントにリソースを転送したり、クライアントにデータを送信したりする場合、service()メソッドで行われます。
service(ServletTequest req, ServletResponse res) メソッドから判断すると、service() メソッドがサーバーによって呼び出されて実行されるだけでなく、必要に応じて ServletTequest リクエスト オブジェクトと ServletResponse レスポンス オブジェクトもサーバーによって提供されます。単純なデータを client に書き込むには、service() メソッドで ServletResponse 応答オブジェクトを操作できます: 手始めに、Servlet を記述するために開発ツール IDE を使用する必要はありませんが、最初に手動で記述します。これは、サーブレットの基礎となる原則を理解するのに役立ちます。 Tomcat の [webapps] ディレクトリに Web アプリケーションを作成します。Web アプリケーションが配置されているディレクトリは [myservlet] です。まず、[myservlet] ディレクトリに [WEB-INF] を作成し、次に [WEB] に [classes] を作成します。 -INF] ディレクトリ、[lib ディレクトリ]、および web.xml ファイルを [classes] ディレクトリに作成し、Java プログラム FirstServlet.java作成するサーブレットはサーバーによって呼び出されるため、作成するサーブレット実装クラスは public である必要があります まず、サーブレットのすべてのメソッドを実装する必要はないため、サービスをコピーするだけでよいことを言っておきます。クライアントにデータを転送するには、() メソッドだけで十分なので、サーブレット実装クラスを継承し、対応するオブジェクト ServletResponse の出力ストリーム ServletOutputStream を取得して、同時にクライアントにデータを出力します。出力はバイト ストリームであるため、文字をバイト配列に変換し、カスタム パッケージ名とインポートする Java パッケージを手動で記述する必要があります:
package fjdingsd.web; import java.io.*; import javax.servlet.*; public class FirstServlet extends GenericServlet{ public void service(ServletRequest req, ServletResponse res) throws ServletException, java.io.IOException { OutputStream out = res.getOutputStream(); out.write("Hello Servlet".getBytes()); } }
したがって、カスタム .さまざまなサーブレットの web.xml。
以上がJavaのサーブレットの基礎知識を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。