ホームページ >Java >&#&チュートリアル >JavaWeb に関する重要な知識ポイント

JavaWeb に関する重要な知識ポイント

angryTom
angryTomオリジナル
2019-07-16 16:56:283442ブラウズ

1. WEB アプリケーション

B/S (ブラウザ/サーバー、ブラウザ/サーバー) アーキテクチャ

HTTP 伝送プロトコル (ハイパーテキスト転送プロトコル (HTML の名前を思い出してください: ハイパーテキスト マークアップ言語)

#WEB プログラムは、Tomcat/Jboss/WebLogic などの Web コンテナ上で実行する必要があります。


#2. HTTP プロトコル
HTTP はサポートするトランスポート層プロトコルとして TCP を使用し、デフォルト ポートは 80 (デフォルト ポート) です。

ハイパーテキスト転送プロトコル (略して HTTP) は、アプリケーション層プロトコルです。 HTTP は要求/応答プロトコルです。つまり、クライアントはサーバーとの接続を確立した後、サーバーに要求を送信し、サーバーが要求を受信した後、対応する応答情報を返します。 ,

HTTP リクエスト メッセージは、リクエスト ライン、リクエスト ヘッダー、空行、リクエスト本文の 4 つの部分で構成されます。リクエスト メッセージの形式を簡単に分析すると、次のようになります。

リクエスト ライン: リクエストこの行は、スペースで区切られたメソッド フィールド、URL フィールド、HTTP プロトコル バージョン フィールドの 3 つの部分で構成されます。一般的に使用される HTTP リクエスト メソッドには、GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT があります。


GET: クライアントがサーバーからリソースを読み取りたい場合は、GET メソッドを使用します。 GET メソッドでは、サーバーが、URL によって特定されたリソースを応答メッセージのデータ部分に入れてクライアントに送り返す、つまり、サーバーにリソースを要求する必要があります。 GET メソッドを使用する場合、リクエスト パラメータと対応する値が URL に追加されます。URL の終わりとリクエスト パラメータの始まりを表すために疑問符 ("?") が使用されます。パラメーターは限られています。たとえば、/index.jsp?id=100&op=bind のようになります。


POST: POST メソッドは、クライアントがサーバーに多くの情報を提供する場合に使用できます。POST メソッドは、フォーム データの送信の完了やデータの送信など、サーバーにデータを送信します。処理のためにサーバーに送信されます。 GET は通常、リソース情報の取得/クエリに使用され、POST はユーザー データとともに使用され、通常、リソース情報の更新に使用されます。 POST メソッドは、名前/値の形式で表示される HTTP リクエスト データ内のリクエスト パラメータをカプセル化し、大量のデータを送信することができます; リクエスト ヘッダー: リクエスト ヘッダーは、キーワードと値のペア (1 行に 1 つのペア) で構成されます。と値は英語のコロン「:」で区切って使用されます。


リクエスト ヘッダーは、クライアントのリクエストについてサーバーに通知します。一般的なリクエスト ヘッダーは次のとおりです:


ユーザー エージェント: リクエストを生成したブラウザの種類。


Accept: クライアントによって認識される応答コンテンツ タイプのリスト。アスタリスク「*」は範囲ごとにタイプをグループ化するために使用され、すべてのタイプが受け入れられることを示すには「*/*」を使用し、「type/*」を使用します。受け入れ可能な型 type のすべてのサブタイプを示します;


Accept-Language: クライアントが受け入れられる自然言語;


Accept-Encoding: クライアントが受け入れられるエンコーディングformat;


Accept-Charset: 受け入れ可能な応答文字セット;


Host: 要求されたホスト名。複数のドメイン名が同じ IP アドレスに存在することを許可します。仮想ホスト;


connection: 接続方法 (クローズまたはキープアライブ);


Cookie: クライアント拡張フィールドに保存され、サーバーに属する情報をクライアント拡張フィールドに送信します。ドメイン名 ドメイン Cookie;


空行: 最後のリクエスト ヘッダーの後に空行があり、以下にリクエスト ヘッダーがもうないことをサーバーに通知するためにキャリッジ リターンとライン フィード文字が送信されます。


リクエスト パッケージの本体: リクエスト パッケージの本体は GET メソッドでは使用されませんが、POST メソッドで使用されます。 POST メソッドは、顧客がフォームに記入する必要がある状況に適しています。リクエストのパッケージ本体に関連して最も一般的に使用されるものは、パッケージ本体のタイプ Content-Type とパッケージ本体の長さ Content-Length です。


次に、応答メッセージの形式の簡単な分析を示します。

ステータス行: ステータス行は、HTTP プロトコルのバージョン フィールド、ステータス コード、およびステータス コード 説明テキストはスペースで区切られた 3 つの部分で構成されます。ステータス コードは 3 桁の数字で構成され、最初の桁は応答のタイプを示します。一般的に使用されるステータス コードには次の 5 つのカテゴリがあります:

1xx : サーバーがクライアント リクエストを受信し、クライアントがリクエストの送信を続行できることを示します。

2xx: サーバーがリクエストを正常に受信し、処理したことを示します。

3xx:サーバーがクライアントに方向の再試行を要求していること;

4xx: クライアントのリクエストに不正なコンテンツが含まれていることを示します;

5xx: サーバーがクライアントのリクエストを正常に処理できず、予期しないエラーが発生したことを示します発生;

ステータス コード説明テキストの値は次のとおりです:

200 OK: クライアント要求が成功したことを示します;

400 Bad Request : クライアント要求に構文エラーがあり、サーバーが理解できないことを示します。

401 Unauthonzed: 要求が承認されていないことを示し、このステータス コードは WWW-Authenticate ヘッダー フィールドと一緒に使用する必要があります。

403 禁止: サーバーがリクエストを受信したが、サービスの提供を拒否したことを示します。通常は、応答本文にサービスを提供しない理由を示します。

404 見つかりません: リクエストされたリソース存在しません (たとえば、間違った URL が入力されました);

500 内部サーバー エラー: サーバーに予期しないエラーが発生し、クライアントのリクエストを完了できなかったことを示します;

503 サービスが利用できません: サーバーが現在クライアントのリクエストを処理できないことを示します。一定時間が経過すると、サーバーは通常に戻る可能性があります;

3. サーブレット

サーブレットは javaWEB の中核であり、簡単に言うと Java で書かれたサーバーサイド プログラムです。ユーザーが動的リクエスト (静的リクエストは HTML に対する直接リクエストです) を行うと、実際にはサーブレットがリクエストされます。

WEB コンテナはサーブレットをメモリにロードし、init メソッドを通じて初期化します

Service() メソッド リクエストメソッドに応じて対応する処理メソッド doPost() または doGet() が呼び出されます。その他のリクエストメソッド doPut() doOptions() などもありますが、これらのメソッドは一般的には使用されず、セキュリティの観点からブロックすることをお勧めします。

サーバーがサーブレットを必要としなくなったとき (通常はサーバーがシャットダウンしたとき)、サーバーはサーブレットの destroy() メソッドを呼び出します。

4. JSP

Java Server Pages は、静的コーディング マシンと動的コーディング Java を組み合わせた技術です。 HTMLにはコードが埋め込まれており、JSP以前はサーブレットが主体で、比較的強力な機能と高度なデザインを備えていましたが、HTMLページは完全にJavaのout.print()で、ページ作成に重要な1行ずつ出力するものでした。これは非常に不便だったので、SUN は JSP を立ち上げることになりました。 JSP は、ASP や PHP と同様、すべて埋め込み言語です。また、WEBコンテナを移動すると、JSPはサーブレットにコンパイルされますが、JSPはサーブレットのバージョンアップ版とも言われます。

5. Tomcat

Java WEB コンテナは数多くありますが、ここでは Tomcat を例に挙げます。前述したように、WEB プログラムは WEB コンテナ上で実行する必要があります。 Tomcat は、Java WEB プログラムを実行するための WEB コンテナとして使用されます。 Tomcat は JAVA 言語で書かれており、実行環境として JVM が必要です。

Tomcat のディレクトリ構造

bin………………………………実行可能プログラム (スクリプト)、Tomcat のいくつかの Bat.sh のデバッグを開始および停止します

conf……………………………….設定ファイル webx.ml server.xml など

#lib……………………………….jars の実行に必要Tomcat パッケージ

logs…………………….ログ ファイル

temp……………………………….一時ファイル

webapps………………WEB プログラム (コンパイルされたプロジェクト ファイル)

作業………………………….このディレクトリに jsp ファイルを Java ファイルに生成します

補足ですが、TomcatはリアルタイムでjspをJavaファイルにコンパイルするわけではないので、ページが変更されて反映が間に合わない場合がありますが、その際は作業ディレクトリ内の該当ファイルを削除するだけで済みます。

6. Java WEB プロジェクトの構造

一般的に、よく話題になる Java プロジェクトは基本的に WEB プロジェクト (B/S アーキテクチャ) です。 Java が C/S プログラムを実行できないわけではありません。実際、Java の Swing はインターフェイスを描画するために使用されます。しかし、現在では C# がインターフェイスを描画するための最も人気のある言語になっています。高速でシンプルなので、使用する人はますます少なくなっています。それをJavaで行うC/Sプログラムを開発。主に Java WEB プロジェクトについて説明しますが、最も基本的なプロジェクト構造は次のとおりです。

src…………………….JAVA ソース コード、Java ファイル ディレクトリ

webContent/webRoot…………プロジェクト リリース ディレクトリ

WEB- INF

lib…………………………………….jar プロジェクトに必要なパッケージ

web.xml……………… WEBプログラムへの入り口

上記は Java WEB プロジェクトの中心的な構造ですが、実際の開発では、プロジェクトのビルドはこれよりも複雑になり、特にフレームワークを参照した後は、設定ファイルの追加によっていくつかの新しいディレクトリが追加されます。

#7. 開発フレームワーク

#前述したように、クライアントが動的リクエストを開始すると、リクエストは処理のためにサーブレットに送られます。と戻ってリクエスト全体が処理される すべての作業はサーブレットで処理され、比較的単純に見えます 別のリクエストが必要になるたびにサーブレットを作成します しかし、実際の開発では、機能モジュールが多数ある場合、多くのサーブレットを作成する必要があり、変更したい場合は、Java コード (サーブレット) を変更することによってリクエストを返す必要もあります。

これは機能の拡張やメンテナンスが面倒なため、Java WEB 開発の主流である Webwork、Struts、SpringMVC、Jfinal などの多くの統合開発フレームワークや同時開発フレームワークの人気を促進しました。フレーム。

フレームワークを使用する利点について、非常に一般的な概要があります。フレームワークにより、開発プロセスがスピードアップします。同様のプロジェクトでコードを再利用すると、開発者の時間とエネルギーを大幅に節約できます。フレームワークは、次のような事前構築されたモジュールを提供します。面倒なコーディング作業を実行します。ユーザーはコア事業の開発のみに関心を持ち、本来の技術や事業開発とは関係のないさまざまな技術的問題をフレームワークによって保護できます。しかし、フレームワークを深く理解し、より巧みに使用したい場合は、基礎となる原則を理解し、そのソースであるサーブレットを見つける必要があります。

SpringMVC を例として動作原理を簡単に説明します

SprfngMVC は主に、フロントとも呼ばれる DispatcherServlet (web_xml で構成されたサーブレット ディスパッチャー) を通じてサーブレット インターフェイスを実装します。エンド コントローラーでは、フロントエンドからのリクエストが最初にここに到着し、適切なハンドラーをバックグラウンドに一致させる責任があります。

DispatcherServlet の主なワークフローは次のとおりです:

1. クライアントは http リクエストを Web サーバーに送信し、Web サーバーは http リクエストを解析し、DispatcherServlet のリクエスト マッピング パス (web.xml で指定) と一致する場合、Web コンテナはリクエストを次の場所に転送します。 DispatcherServlet.

2. このリクエストを受信した DipatcherServlet は、リクエスト情報 (URL、HTTP メソッド、リクエスト ヘッダー、リクエスト パラメータ Cookie などを含む) に基づいてリクエストを処理するプロセッサ コントローラ (ハンドラ) を見つけます。そしてHandlerMappingの設定。

3. DispatclierServlet は、HandlerMapping に従って対応する Handler を見つけ、その Handler に処理能力を渡し (Handler は特定の処理をカプセル化します)、その後、特定の HandlerAdapter が Handler に対して特定の呼び出しを行います。

5. Handler がデータ処理を完了すると、ModeAndView オブジェクトが DispatcherServlet に返されます。

6. Handler によって返される ModelAndView は単なる論理ビューであり、正式なビューではありません。DispatcherSevlet は使用しますViewResolver から編集ビューを実際のビューに変換します (この文は単に返されるページへの相対パスを返し、try パーサーを通じて特定のページに変換されます)。

7. ディスパッチャーはモデルを通じて ModeAndView のパラメーターを解析し、最終的に完全なビューを表示してクライアントに返します。

8. SpringMVCを使って機能モジュールを書く

フレームワークの設定は作業量が多く、各種技術の理解も必要となるため、今回は説明しませんいる。実際の開発において、既存のフレームワークに基づいて機能モジュールを完成させる方法と、機能の基本的なプロセスを理解するために、ログインを例に簡単に説明します:

1. まず、ログイン ポータル (JSP ページ)、SpringMVC フレームワークでは JSP ページへの直接アクセスは推奨されていないため、ログイン ページへのアクセスもバックグラウンドで処理されます;

2. 丨ogin.jsp ページを作成しますログイン ページのインデックス .jsp ;

3. 2 つのリクエスト コントロール メソッド (preLogin() と doLogin() の 1 つ) を含む LoginController を作成します。PreLogin() は、ログイン ページのリクエストを処理します。 (login.jsp に戻る)、doLogin() はログイン要求を処理し、index.jsp に戻ります。

4. ログイン要求は、login.jsp のフォームまたは ajax を通じて行う必要があります。

Request/preLogin ビジネス ロジック処理により、login.jsp が返されます。 à ユーザー名とパスワードを入力してください...

Request/doLogin ビジネス ロジック処理により、ログイン結果の Index.jsp が返されます。

9. その他の基礎知識

データベース操作、Jdbc/Hibernate/Mybatis

JSP タグ、EL 式、Strutsタグ、C タグなど

基本的なフロントエンド技術 CSS/JS/jQuery/Ajax

以上がJavaWeb に関する重要な知識ポイントの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。