ワン:サーブレットとは何か:
サーブレットjavaWebは、それが動的なリソースである、3つの成分の一つです。アクションが要求を処理するサーブレットで、サーバは通常のサーブレットに必要な、処理された受信サーブレットにリクエストを送信します。
1.リクエストデータを受信
2.リクエスト処理
3.完全寛解
例えば、クライアントは、サーブレットによって処理完了すべきで出力登録要求を、取得、ログイン要求を送りました!サーブレットは、私たち自身を記述する必要がある、各サーブレットが実装しなければならない のjavax.servlet.Servletインタフェースを
2:サーブレットを達成する方法
サーブレットを達成するための3つの方法があります。
1.にjavax.servlet.Servletインタフェースを実現するために、
2.クラスがするjavax.servlet.GenericServletを継承します
3. javax.servlet.http.HttpServletクラスの継承
通常、私たちはサーブレットを完了するために、HttpServletのクラスを継承するだけでなく、java.servlet.Servletから学習を開始するサーブレット・インターフェースを学ぶでしょう。
Servlet.javaを達成
/ ** *チェック方法サーブレット・インタフェース * / パブリック クラス aServlet 実装のサーブレット{ / * *また、ライフサイクル・アプローチである *サーブレットが破壊される前に、それが呼び出されます、そして、それは一度だけ呼び出されます! * / @Override 公共 ボイド破壊(){ System.out.printlnは( "Destoryは()....." ); } / * *設定情報をサーブレット得るために使用することができる * / @Overrideの 公共のServletConfigのgetServletConfigを(){ System.out.println( "のgetServletConfig()........." ); 戻り ヌル; } / * *サーブレットの情報を取得します * / @Override パブリックストリングgetServletInfo(){ System.out.printlnは( "getServletInfo()......" ); 戻り NULL ; } / * *これは、ライフサイクルアプローチである *それサーブレット・オブジェクトが作成された直後実行し、一度だけ実行!(呼び出し音後) * / @Override 公共 ボイドのinit(のServletConfig arg0が)スローServletExceptionが{ のSystem.out.println( "initは()..." ); } / * *これはライフサイクルメソッドは それがあります*複数回呼び出さ! *各処理要求は、このメソッドの呼び出しされている * / @Override 公共 ボイドサービス(リクエストのServletRequest、ServletResponseを応答)が スローServletExceptionがは、IOException { するSystem.out.println( "サービスを()......" )。 }
あなたが終了したら、サーブレットサーブレット・クラスは、web.xmlファイルで設定する必要があります。
<サーブレット> の<servlet-name>のAServlet </サーブレット名> <servlet- クラス > cn.itcast.web.servlet.AServlet </ servlet- クラス > </サーブレット> <サーブレットマッピング> の<servlet-name>のAServlet </サーブレット名> の<url-pattern> / AServlet </のurl-pattern> </のservlet-mapping>
3:サーブレットのライフサイクル
いわゆるライフサイクルXXX、生まれXXX、サービス、そして死。サーブレットのライフサイクル、あまりにも!サーブレットのライフサイクルおよび関連する方法は、次のとおりです。
1. 公共 ボイドのinit(のServletConfigの設定)がスローServletExceptionが 2. パブリック 抽象 ボイドサービス(のServletRequest reqは、たServletResponse RES)がスローServletExceptionが、にjava.io.IOException 3. 公共 ボイド(破壊)
1.Servlet誕生
サーブレット・サーバは、最初の訪問は、サーブレット、サーブレットまたはサーバー啓東で作成を作成することであるだろう。サーバが起動した場合、サーブレットを作成し、あなたはweb.xmファイルを設定する必要があります。そのデフォルト、サーブレットは、サーバが作成、アクセスされた最初の時間です。
ただ、サーブレットの種類、サーバーがオブジェクトのインスタンスを1つだけ作成し、たとえば、httpへの私たちの最初の訪問で:// localhostを:8080 / AServlet、サーバーを介して「/ AServletは」サーブレットcn.itcast.servlet.AServletの名前を見つけるためにバインドされたときに、その後、サーバーは作成されていない場合、サーバは反射によってAServltのインスタンスを作成し、サーブレットのこのタイプが作成されているかどうかを参照してください。我々は再び訪問したとき
cn.itcast.servlet.AServletは、サーバが再びAServletインスタンスを作成したのではなく、直接作成された最後のインスタンスを使用されることはありません。
サーブレットが作成された後、サーバーはすぐにサーブレットボイドのinit(のServletConfig設定)メソッドを呼び出します。、サーブレットの呼び出しのinit()メソッドの後にすぐに作成されたオブジェクトのインスタンス、およびServltのを覚えています
このメソッドは、生涯回呼び出されます。このメソッドは、一度だけ呼び出されます。
私たちは、父サーブレットのinit()メソッドの初期化の数をすることができます!
2.Servletサービス
サーバが要求を受信するたびに、要求を処理するサーブレットサービス()メソッドを呼び出します。サーバーが要求を受信すると、それがseviet()メソッド一度使用サービス()メソッドが呼び出されます複数回呼び出します。
それは、このため、正確であるので、我々はサービス()メソッドでリクエストを処理するコードを記述する必要があります!
3.Servlet破壊
サーバーのシャットダウン時にサーブレットは、通常は破壊されました。サーバーがシャットダウンされると、サーバーは、サーブレットは、()メソッドサーブレットを破壊するサーブレットの呼び出しを破壊する前に、我々は最後の言葉をサーブレット・でき、破壊されて行くだろう
例えば、破壊()メソッドへのコードのような特定のリソースの解放を()メソッドを破壊します。
@Override 公共 ボイドは{(破壊) // デフォルトでNOOP } / ** *という名前の値が含まの<code>文字列</ code>を返します *初期化パラメータ、または、<コード>はnull </ code>をパラメータであればしません *が存在します。{参照@link のServletConfig#getInitParameter}。 * <P> *このメソッドは、利便性のために供給されます。これは、名前付きの値を取得 サーブレットの<code>のServletConfig </ code>のオブジェクトから*パラメータを。 * * @paramの名前 * <コード>文字列</ code>の名を指定します *初期化パラメータ *の@returnストリング<コード>列</コード>の値を含む *初期化パラメータ * / @Override パブリック文字getInitParameter(文字列名){ 返す(のgetServletConfig)をgetInitParameter(名前)。 } / ** *として、サーブレットの初期化パラメータの名前を返します * <code>の<code>の文字列</ code>のオブジェクト、または空のEnumeration </コード> * <コード>列挙</ code>の場合、サーブレット何の初期化パラメータを持っていません。 * {参照@link のServletConfig#getInitParameterNames}。 * < *このメソッドは、利便性のために供給されます。それからパラメータ名を取得します *サーブレットの<code>のServletConfig </ code>のオブジェクト。 * * @return <コード>列</コード>オブジェクトの列挙列挙 *サーブレットの初期化パラメータの名前を含む * / @Override パブリック列挙<ストリング> getInitParameterNames(){ 戻り)(のgetServletConfigをgetInitParameterNames()。 } / ** *戻り値このサーブレットの{ @link のServletConfig}オブジェクト。 * * @return<コード>のServletConfig </コード>オブジェクトのServletConfig このサーブレット初期化* * / @Override 公共のServletConfigのgetServletConfig(){ 戻り値の設定を、 } / ** * {への参照を返し@link このサーブレットいるServletContext} *が実行されます。{参照@link のServletConfig#のgetServletContext}。 * <P> *このメソッドは、利便性のために供給されます。それはからコンテキストを取得します *サーブレットの<code>のServletConfig </ code>のオブジェクト。 * * @return のServletContextの<code>のServletContext </ code>の * <コード>によってこのサーブレットのinit </ code>メソッド * / @Override 公共のServletContextのgetServletContext(){ リターンのgetServletConfig()のgetServletContextを()。 } / ** *作者、バージョン、およびとして、サーブレットについての情報を返します *著作権。デフォルトでは、このメソッドは空の文字列を返します。このオーバーライド それは意味のある値を返すように*メソッドを。参照してください * { @link サーブレット#getServletInfo}。 * * @return デフォルトでこのサーブレットに関する文字列情報、空の文字列 * / @Override 公衆ストリングgetServletInfo(){ リターン "" 。 }