インターネット上の数多くの Web サイトの中で、Web データベースをベースとした動的 Web サイトが広く使用されています。 Web ネットワーク データベースに基づく動的 Web サイトは、クライアント インターフェイスとしての Web ブラウザ、情報を保存するデータベース サーバー、および両者を接続する Web アプリケーション サーバーで構成されます。 Web アプリケーションのクライアント テクノロジが発展し続けるにつれて、動的な Web サイトを開発するための元の CGI テクノロジは、Java アプレット、ActiveX コントロール、DHTML、および JavaScript に徐々に置き換えられてきました。これらのテクノロジーによりユーザー インターフェイスは大幅に改善されましたが、より詳細な作業を行おうとすると、クライアント ブラウザーの非互換性、サーバーの過負荷、アクセスの遅さ、セキュリティの問題などの問題が発生し始めました。 JSP テクノロジは、これらの問題を解決するための黄金の鍵です。この記事では主に、JSP テクノロジを使用して動的 Web サイトを構築するプロセスにおけるいくつかの技術的な問題について説明します。
JSP テクノロジ
JSP は、Java サーブレットと Java システム全体に基づく Web 開発テクノロジであり、このテクノロジを使用して、高度で安全かつ高速なクロスプラットフォームの動的 Web サイトを構築できます。 Java プログラム フラグメントと JSP タグを従来の Web ページ HTML ファイルに追加すると、JSP Web ページが形成されます。 Web サーバーは、JSP Web ページへのアクセス要求を受け取ると、まずプログラム部分を実行し、実行結果を HTML 形式でクライアントに返します。プログラムのフラグメントは、データベースの操作、Web ページのリダイレクト、電子メールの送信などを行うことができます。これは、動的な Web サイトを構築するために必要な機能です。すべてのプログラム操作はサーバー側で実行され、結果のみがネットワーク上のクライアントに送信され、クライアントのブラウザーの要件は非常に低くなります。図 1 に示すように、ユーザーが JSP Web サイトに接続すると、ユーザーは Web ページをリクエストします。JSP ページはそのリクエストに単独で応答し、Web ページに対するユーザーのリクエストをデータのリクエストに変換し、次の方法でリクエストを処理します。 JavaBean を使用し、返されたデータを HTML ページにカプセル化し、ユーザーに返します。
JSP には多くの利点があります。
1. プログラムを一度作成すれば、どこでも実行できます。 JSP を設計する際には、アプリケーション プラットフォームの独立性が十分に考慮されました。 Java の移植性を利用した JSP は、多くの一般的なオペレーティング プラットフォームでサポートされており、Apache、NetScape、IIS などのサーバー上で実行できます。
2. 迅速な実行。 JSP ページは 1 回コンパイルして Java バイト コードに変換するだけで済み、その後はサーバー メモリに常駐するため、JSP ページへの応答が高速化されます。初めて JSP ページをコンパイルするのにかかる時間を考慮しない場合、JSP の応答速度は ASP の応答速度よりもはるかに高速です。
3. Java の利点。 JSP テクノロジは、スクリプト言語として Java 言語を使用します。クロスプラットフォームで成熟し、堅牢で拡張が容易な Java テクノロジにより、他の面でも開発者の作業が容易かつシンプルになります。 Windows システムのクラッシュが疑われる場合、Java はシステムのクラッシュを効果的に防止できます。 Java 言語は、メモリ リークを防ぐメソッドを備えているため、メモリ管理に優れています。さらに、JSP はアプリケーションに対してより堅牢な予期せぬイベント処理メカニズムを提供し、Java の利点を最大限に活用します。
JSP の技術的な問題
1. データベースへの接続
データベース接続は、動的 Web サイトの最も重要な部分であり、バックエンド データベースに接続するときに ODBC または JDBC テクノロジを使用できます。データベースに接続する従来の手段として ODBC が選択肢にありますが、ODBC には次のような致命的な欠陥があり、JSP リクエストには対応できません。
(1) ODBC は C 言語で実装された API であり、Java プログラムからローカルの C プログラムを呼び出します。セキュリティ、完全性、堅牢性と同様の一連の問題が発生します。
(2) 第 2 に、C コードの ODBC から Java API への変換から完全に正確な ODBC の実装は満足のいくものではありません。Java にはポインタがなく、ODBC は非常にエラーが発生しやすい null ポインタ「void」を含む多くのポインタを使用するためです。 「*」。
(3) プラットフォームの移植性を考慮すると、JSP プログラムの開発に ODBC を使用すると悪影響があり、移植性に適さないコードになります。
セキュリティ、完全性、堅牢性を確保しながらプログラムを移植しやすくするには、JDBC を使用してデータベースに接続するのが適切です。 JDBC は、SQL ステートメントの実行に使用できる Java API であり、Java 言語で記述されたいくつかのクラスとインターフェイスで構成されており、開発者は完全なデータベース アプリケーションを Pure Java 言語で作成できます。 JDBC を使用すると、SQL ステートメントをほぼすべてのデータベースに簡単に送信できます。つまり、Sybase にアクセスするためのプログラム、Oracle にアクセスするための別のプログラム、Microsoft の SQL Server にアクセスするための別のプログラムを作成する必要はありません。 JDBC で作成されたプログラムは、SQL ステートメントを対応するデータベース管理システムに自動的に送信できます。
ローカルのデータベースプログラムが Microsoft の Access などのデータベースを使用する場合、Sun が開発した JDBC-ODBC ブリッジを利用することで、JSP プログラムが ODBC ドライバーを使用してデータベースにアクセスできます。これにより、JDBC の利点が維持されるだけでなく、Microsoft が提供する ODBC データ ソースを使用して Access に接続することもできます。相手がどのようなデータベースであっても、ODBCインターフェースがあれば、バックエンドデータベースの変更により対応するプログラムコードを変更することなく、JDBC-ODBCブリッジを利用して直接データベースに接続できます。アプリケーション層とデータベース層の間の完全な分離を実現します。バックエンド データベースを MySQL に変更する必要がある場合は、ODBC データ ソースに MySQL ドライバーをインストールするだけで、MySQL データベースを直接使用できます。
2. 組み込みコンポーネントを使用して Web サイトを実装する場合
、客観的なニーズにより、ローカル LAN ユーザーとリモート ユーザーを簡単に区別し、対応する権限を提供するために、組み込みコンポーネントのリクエストを使用して、サーバーへのすべての接続をキャプチャできます。ユーザーの IP アドレスが比較され、対応する権限が与えられます。このようにして、このローカル エリア ネットワーク内のユーザーは、Web サイト上のすべての公開リソースと非公開リソースを使用できます。既存の方法は、データベースにさまざまな IP アドレスを入力し、さまざまな IP アドレスにさまざまな権限を付与することで改善し、ユーザーによる Web サイト リソースの使用を完全に制御することもできます。
セッション状態の維持は、Web アプリケーション開発者が直面しなければならない問題です。ユーザーがまだオンラインであるかどうかを確認するために、組み込みの Session コンポーネントが使用されます。ログインしている各ユーザーに Session 変数を与えることで、ユーザーが Web サイトから異常終了した後にユーザーが使用したリソースを閉じることができ、それによってリソースを節約できます。メモリを増やし、サーバーのパフォーマンスを向上させます。
Cookie クラスも JSP で提供されており、そのコンストラクターには Cookie の名前と値を表す 2 つのパラメーターがあります。 Cookie クラスは、Cookie の属性を設定するためのさまざまなメソッドを提供します。たとえば、setMaxAge メソッドを使用して Cookie の有効期間を設定できます。生存時間が負の値の場合は、ブラウザが Cookie を閉じて消滅することを意味し、生存時間が 0 の場合は、Cookie が削除されることを意味し、生存時間が正の数値の場合は、何秒かを意味します。クッキーが存在します。 Cookie はユーザーのアカウントとパスワードを一時的に保存するために使用でき、JSP はいつでもそれらを読み取ってユーザーの正当性を確認できます。ユーザーの閲覧ステータスは Cookie に保存でき、次回ユーザーが Web ページにアクセスすると、JSP はブラウザーにパーソナライズされたページを表示します。
3. Unicode エンコーディングの変換:
多くの JSP ページのデバッグ プロセス中に、ブラウザで表示される JSP ページ内の中国語の文字がすべて文字化けするなど、中国語の文字エンコーディングと Unicode エンコーディングの変換によって引き起こされる問題が発生しました。 JSP ページが正常に表示されない、JSP がフォームで送信された漢字を受信できない、JSP データベースの読み書きが正しい内容を取得できない、などです。これは、国際的な特性を持つソフトウェアの主要な文字処理のほとんどが に基づいているためです。ソフトウェアの実行時は、「ロケール/言語/コードページ」設定に基づいて、対応するローカル文字エンコーディング設定が決定され、それに応じてローカル文字が処理されます。そのため、Unicode とローカル文字セットの間で相互変換を行う必要があります。処理プロセス中に、Unicode を文字セット間の変換の仲介として使用して 2 つの異なるローカル文字を実現することもできます。この方法はネットワーク環境でもさらに拡張され、ネットワークの両端にある文字情報も文字セット設定に従って許容可能なコンテンツに変換する必要があります。
IE のデフォルトの文字セットは GB2312、Windows のデフォルトの文字セットは GBK、Java のデフォルトの文字セットは Unicode であるため、何らかの変換を行わないと、GBK または Unicode から取得したページは GB2312 文字セットで直接表示されます。文字化けする。 Java 言語は Unicode を使用して文字を処理しますが、別の観点から見ると、Java プログラムでは非 Unicode も使用できます。重要なのは、プログラムの入口と出口での漢字情報が歪められないことです。 ISO-8859-1 を完全に使用して漢字を処理すると、変換後に正しい結果が得られ、Web ページの文字セットが強制的に GB2312 文字セットで表示され、中国語の文字が正常に表示されます。