学習出典:XML教材JavaWebコースのダークホースJava57部分。
Tomcatの:動的なリソースを実行するためのオープンソースソフトウェア。
サーブレット:ブラウザ(Tomcatは識別することができる)のがアクセスするJava用のルールを定義するインターフェースです。
* 快速入门:
1. 创建JavaEE项目
2. 定义一个类,实现Servlet接口
* public class ServletDemo1 implements Servlet
3. 实现接口中的抽象方法
4. 配置Servlet
在web.xml中配置:
<!--配置Servlet -->
<servlet>
<servlet-name>demo1</servlet-name>
<servlet-class>cn.itcast.web.servlet.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>demo1</servlet-name>
<url-pattern>/demo1</url-pattern>
</servlet-mapping>
- 原則の実装:
- サーバは、リクエストURLパスを解析するクライアントブラウザの要求を受けたリソースパスは、サーブレットへのアクセスを取得するには
- 対応するタグ本文の内容があるかどうか、のweb.xmlファイルを検索します。
- その場合は、対応する完全なクラス名を見つけます
- Tomcatは、メモリにロードされ、そのオブジェクトを作成されたファイルをバイトコードになります
- そのメソッドを呼び出します
複数の実装クラスのHttpServletである
0要求モード決意
- データの取得
HTTPを:
-
コンセプト:ハイパーテキスト転送プロトコルハイパーテキスト転送プロトコル
-
プロトコルを転送します、ときに、クライアントとサーバーの通信、データ伝送フォーマットを定義します
-
特長:
- TCP / IPベースのハイレベル契約
- デフォルトのポート番号:80
- 要求/応答モデルに基づく:応答時間は最初の要求に対応
- ステートレス:各リクエストは独立しており、対話型のデータができません
-
過去のバージョン:
- 1.0:新しい接続の意志を確立するために、各要求に応じて、
- 1.1:多重アクセス
-
-
データ要求メッセージのフォーマット
-
リクエストライン
リクエストメソッドリクエストURL要求プロトコル/バージョン
GET /login.html HTTP / 1.1- 要求モード:
- 7 HTTPプロトコルは、実施例を要求した、そこには、二つの一般的に使用されます
- 取得する:
- URLの後に、要求行のパラメータを要求します。
- URLは、限られた長さを要求します
- 安全性の低いです
- 役職:
- リクエストボディでリクエストパラメータ
- URLは、要求の長さに限定されるものではなく、
- 比較的安全
- 取得する:
- 7 HTTPプロトコルは、実施例を要求した、そこには、二つの一般的に使用されます
- 要求モード:
-
リクエストヘッダ:サーバに関するいくつかの情報伝えるために、クライアントのブラウザ
のリクエストヘッダー名を:リクエストヘッダの値- 一般的なリクエストヘッダ:
-
ユーザーエージェント:ブラウザがサーバーに伝え、私はあなたが情報を使用しているブラウザのバージョンにアクセス
- あなたは、解決のブラウザの互換性の問題を頭のサーバ側の情報を得ることができます
-
リファラーます。http://localhost/login.html
- サーバーに指示し、I(現在の要求は)から来るの?
- 役割:
- セキュリティチェーン:
- 統計:
- 役割:
- サーバーに指示し、I(現在の要求は)から来るの?
-
- 一般的なリクエストヘッダ:
-
要求空白行
ブランク要求ヘッダPOST要求を分割するため、あるラインと、リクエストボディ。 -
リクエストボディ(ボディ):
- パラメータ要求をカプセル化するPOSTリクエストメッセージ
- 字符串格式:
请求行:POST /login.html HTTP / 1.1
请求头:ホスト:ローカルホスト
のUser-Agent:Mozillaの/ 5.0(Windows NTの6.1; Win64の、x64の、RV:60.0)のGecko / 20100101 Firefoxの/ 60.0
受け入れる:テキスト/html,application/xhtml+xml,application/xml;q=0.9、/ ; Q = 0.8
受け入れ言語:ZH-CN、ZH; Q = 0.8、ZH-TWを、Q = 0.7、ZH-HKと、Q = 0.5、EN-US; Q = 0.3、EN; Q = 0.2
のAccept-エンコード:gzipで、デフレート
リファラーます:http://localhost/login.html
接続:キープアライブ
のアップグレード-安全でない-要求:1
-
リクエストボディ:ユーザ名= zhangsan(POSTのみ)
要求
-
リクエストとレスポンスのオブジェクトの原理
- リクエストとレスポンスのオブジェクトがサーバーによって作成されます。私たちは、それらを使用します
- リクエストオブジェクトは、オブジェクトに応じてに設定され、要求メッセージ、応答メッセージを取得することです
-
リクエストオブジェクト継承アーキテクチャ:
のServletRequest -インターフェイス
|継承
のHttpServletRequest -インターフェイス
|達成
org.apache.catalina.connector.RequestFacadeクラス(Tomcatの) -
リクエスト機能:
- データ取得要求メッセージ
-
ラインデータ取得要求
- GET / day14 / DEMO1?名前= zhangsan HTTP / 1.1
- 方法:
-
取得要求メソッド:GET
- 文字列getMethod()メソッド
-
/ day14:(*)の仮想ディレクトリを取得します。
- 文字列getContextPath()
-
サーブレットパスを取得:/ DEMO1
- 文字列getServletPath()
-
名前= zhangsan:リクエストパラメータ取得モードを取得します。
- 文字列getQueryString()
-
(*)の取得要求URI:/ day14 / DEMO1
-
文字列getRequestURI():/ day14 / DEMO1
-
StringBufferのgetRequestURL()ます。http:// localhost / day14 / DEMO1
-
URL:ユニフォームリソースロケータます:http:中国の// localhost /をday14 / DEMO1人民共和国
-
URI:統一資源識別子:/ day14 / DEMO1共和国
-
-
取得プロトコルとバージョン:HTTP / 1.1
- 文字列getProtocol()
-
クライアントのIPアドレスを取得します。
- 文字列getRemoteAddr()
-
-
データ取得要求のヘッダ
- 方法:
- (*)文字列のgetHeader(文字列名):名前で要求ヘッダー要求ヘッダーの値を取得します
- 列挙getHeaderNamesは():すべてのリクエストヘッダー名を取得します。
- 方法:
-
ボリュームデータ取得要求:
- 要求POSTリクエストパラメータのみのモード、唯一のリクエストボディ、リクエストボディでPOSTリクエストをカプセル化:リクエストボディ
- ステップ:
-
ストリームオブジェクトを取得します。
- BufferedReaderのgetReader():文字入力ストリーム、文字データの操作のみを取得します。
- サーブレット入力のgetInputStreamは():入力バイトストリームを取得し、あなたはすべてのタイプのデータを操作することができます
- ファイルには、知識のポイントを説明するためにアップロードされた後
-
そして、ストリーム・オブジェクトからデータを取ります
-
-
- データ取得要求メッセージ