以前、JSP プログラムはモジュールであり、強力なプレゼンテーション要求機能を備えていると述べました。完璧なデータベース アクセスを確立することは困難なプロセスですが、JDBC インターフェイスはこのプロセスを適切に完了できます。ただし、JSP コードに埋め込まれた JDBC コードは、JDBC に埋め込まれた SQL コマンドと同様に、JSP の機能を最大限に活用して、クライアント用にクリーンでシンプルな API を作成できます。この目的を達成するために、JSP オペレーションを使用してデータベース インターフェイス コンポーネントを確立することを検討できます。
完璧な JSP 設計パターンは、Model-View-Controller (MVC) です。従来の 3 層システムは、モデルがプログラム ロジックとデータ用、ビューが表示用、コントローラーがリクエスト処理用です。このモデルに従って、JSP プログラムにはクライアント/サーバーの「ダイアログ ボックス」の各「行」のページが含まれます。一般的なプログラムでは、クエリ ページ、検証ページ、データベース挿入ページ、データベース更新ページなどが表示されます。
前回の記事では、プログラムの構造をより合理的にするために各ページに JDBC を埋め込む方法について説明しました。ただし、実行可能な SQL コマンドや、JDBC コマンドを介して渡される変数を作成すると、プログラムが複雑になる可能性があります。
JDBC によって設計された JSP 操作
JSP データベース操作のもう 1 つのアプローチは、JDBC を使用せずにデータベースの操作のコレクションを作成することです。このアプローチを使用すると、2 つの利点が得られます。1 つは、JDBC を使用する必要がなくなり、多くの作業が簡素化されることです。2 つ目は、設計とコードの構成がより合理的になることです (可読性、柔軟性、パフォーマンス、保守性など)。
まだいくつかのドライバーが必要ですが、最初に上記を簡略化します。 JSP プログラム内の操作は、通常は他の JSP プログラム開発者によって作成および使用される論理ブロックですが、サブルーチンとして使用することもできます。 JSP 操作を使用する重要性は、特定の関数を標準化し、JSP に埋め込まれる Java コードの量を最小限に抑えることです。
JSP は、標準の拡張クラスのセットを提供します。これらのクラスを通じて、タグ ハンドラーを介した操作を定義できます。 JSP によって定義される Java インターフェイスには、Tag インターフェイスと BodyTag インターフェイスの 2 つがあり、それぞれ TagSupport クラスと BodyTagSupport クラスによって実行されます。
一般的な JSP 目的でタグ ライブラリを作成したり、クラス サポートを拡張するためにタグ ハンドラーを実装したりすることもできます。これらのプロセスを実装する手順は次のとおりです。
まず、タグ マネージャー クラス
packagecom.myactions;
を実行します。
(インポートステートメントはここにあります)
public class MyActionTag extends TagSupport {
...
次に
、このコードをコンパイルし、クラス ファイルをプログラムのクラス ライブラリに配置します。次に、タグ ライブラリ記述子 (TLD) ファイルが必要になります。これは、アクション名と対応するタグ マネージャーのクラスに一致する XML ファイルです。
<タグ>
<name>MyAction</name>
<tagclass>com.myactions.MyActionTag</tagclass>
<bodycontent> (何でも) </bodycontent>
<attribute>myData</attribute>
</tag>
</tag>
関連トライアルウェア
MyAction という名前のアクションを作成したとします。これは、com.myactions.MyActionTag クラスに一致する TLD です。 TLD ファイルはプログラムの TLD パスに存在する必要があります。
JSP ページからオペレーションを呼び出すと、TLD は JSP にオペレーションを使用するための正しいクラスを指示します。これは非常に便利であり、必要なコードは少量だけです。
しかし、SQL をどこに導入すればよいのでしょうか?まず、接続機能を使用してデータベース アクセスを確立する必要があります。これは、JDBC 2.0 オプション ツールボックスで利用できる javax インターフェイスを使用して実行できます。 JDBC 2.0 の javax.sql.DataSource クラスは、必要な接続を提供します。
この時点で SQL はどこにあるのでしょうか?それは豆の中です。 JDBCcreateStatement および PreparedStatement を使用して、Bean 内にメソッドを作成できます。このメソッドをパブリック Vector にして、SQL ステートメントをこのメソッドに正しく渡します。
概要 データベース Bean は、アクション本体に埋め込まれた SQL ステートメントを実行します。ステートメントを SQL ステートメントに渡すことも、それを使用して事前操作を実行することもできます。タグマネージャーを通じてアクションを実行できます。 JDBC はライブラリ コードに埋め込まれているため、JSP プログラムで明示的に使用することはできません。
一見すると、このアプローチは JDBC の埋め込み SQL や JSP の埋め込み JDBC よりも複雑に見えるかもしれませんが、SQL 操作を構築して TLD に保存するため、すべての JSP プログラムでそれらの操作を 1 回実行するだけでアクセスできます。これらの操作。これがこのアプローチの利点です。
次回は、JSPページとセッション間のデータ転送について説明します。