サーブレット-1

*概念:サーバー側のアプレットを実行する
*サーブレットは、ブラウザ(Tomcatの認識)がアクセスするJavaクラスのルールを定義するインタフェースです。
*今後の私たちは、クラス、Servletインタフェース複製方法をカスタマイズします。

*はじめに:
1のJavaEEプロジェクト作成
2. Servletインタフェース実装するクラス定義
を実装サーブレットServletDemo1 *パブリッククラス
3は、抽象メソッドインタフェースを実装
4.設定サーブレットの
web.xmlの設定:
<! -設定サーブレットを- - >
の<servlet>
の<servlet-name>のDEMO1 </サーブレット名>
の<servlet-class>のcn.itcast.web.servlet.ServletDemo1 </サーブレットクラス>
</サーブレット>

<サーブレットを-mapping>
の<servlet-nameに> DEMO1 </サーブレット名>
の<url-pattern> / DEMO1 </ URLパターン>
</ servlet-のマッピング>

*原則の実装
サーバは、クライアントのブラウザからのリクエストを受信1.リクエストのURLパスを解析するには、リソースへのパスサーブレットへのアクセスは、アクセス
の<url-pattern>がある場合は、2検索web.xmlファイルをタグ対応ボディコンテンツ。
3.存在する場合、対応の<servlet-class>の完全なクラス名を見つける
メモリにロードされたファイルをバイトコードになる4. Tomcatを、その目的を作成することです
、そのメソッドを呼び出す5.

*サーブレットのライフサイクルアプローチは、次のとおりです。
1.作成する:initメソッド、一度だけ
*サーブレット作成されたとき?
*デフォルトでは、それがアクセスされた最初の時間は、サーブレットが作成された
*は、サーブレットは、機会を作成、実行するように構成することができます。
*に設定<サーブレット>タグ
1の場合に最初にアクセスし、作成された
*の<load-on-startup>負の値
2.サーバが作成起動
0 *の<load-on-startup>値をまたは正の整数

サーブレットの* Initメソッド、1つのオブジェクトのみがメモリ内に存在するサーブレットを示し、通常、リソースをロードするために使用される、一度だけ行わ、サーブレットは、シングルトンである
複数のユーザが同時に*アクセスすると、スレッド安全性の問題が存在してもよいです。
*解決策:サーブレットでのメンバ変数を定義しないようにしてください。あなたはメンバ変数を定義した場合でも、の値を変更しないでください

2.サービスの提供:サービス実行方法は、複数の実行
*あなたがサーブレットを訪れるたびに、サービスメソッドが一度呼び出されます。
3.破壊される:実装では、方法は、一度だけ実行される破壊
*サーブレットが破棄された場合に実行されます。サーバーがシャットダウンされると、サーブレットが破壊され
、通常は閉じ*サーバーのみ、destroyメソッドを実行します。
サーブレットが実行破壊される前に*一般的なリリースのリソースに対して、法を破壊します

 

Servlet3.0 *:
*利点:
*注釈の設定のサポート。あなたは、web.xmlを必要としない場合があります。

*手順:
1. web.xmlの作成することはできません、JavaEEのプロジェクトを選択しサーブレットのバージョン3.0以上を作成
Servletインタフェース実装するクラスの2.定義
3.レプリケーションの方法
構成し、クラスの4 @WebServlet注釈を
* @WebServlet (「リソース・パス」)

 

@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
公共@interface WebServlet {
文字列名()デフォルト""; //相当于の<servlet-name>の

文字列[]の値()デフォルト{}。 //代表urlPatterns()属性配置

文字列[] urlPatterns()デフォルト{}; //相当于の<url-pattern>

INT loadOnStartup()デフォルト-1; //相当于の<load-on-startup>

WebInitParam [] initParams () デフォルト {};

ブールasyncSupported()デフォルトはfalse;

文字列smallIcon()デフォルト"";

文字列largeIcon()デフォルト"";

文字列の説明()デフォルト「」;

文字列のdisplayName()デフォルト"";
}

 

おすすめ

転載: www.cnblogs.com/LihanyangQAQ/p/11532894.html