要約: この記事では、Web ベースの管理情報システムを開発するための実装フレームワークを紹介します。 JSP/サーブレット テクノロジを利用し、MVC 設計パターンと組み合わせることで、開発プロセスがより柔軟になり、保守が容易になります。
キーワード: 経営情報システム、JSP、サーブレット、MVC デザインパターン、JDBC
1. はじめに
経営情報システム (MIS) は、情報を収集、送信、保存、処理、使用できる人とコンピュータで構成されるシステムです。科学技術の発展と情報の拡大に伴い、企業の情報化は企業が競争において無敵の地位を維持するための有効な手段の一つとなっています。 MIS は、タイムリーかつ包括的な方法で情報とデータを提供し、統計作業を簡素化し、さまざまな管理レベルに応じたさまざまなレポートを提供できるだけでなく、過去のデータに基づいて将来の状況を予測することもできます。したがって、開発効率と運用効率の両方を考慮し、分散イベント処理機能を満たす経営情報システムをどのような手法で開発するかが特に重要となる。この記事では、JSP/サーブレットを利用して3階層の管理情報システムを構築する方法について説明します。
2. システムの 3 層アーキテクチャ
システムの 3 層アーキテクチャを図 1 に示します。
図 1 Java テクノロジーに基づく Web アプリケーションのアーキテクチャ
管理情報システム全体は、ブラウザ/Web/データベースの 3 層アーキテクチャを採用しています。 Web サーバーはリクエストを受け取り、アプリケーション サーバーを介して Java サーバー側アプレット サーブレットを実行し、その出力を返します。これにより、クライアントとの情報リソースの対話が実現されます。データベースサーバは、経営情報システムで使用する各種データを格納するために使用され、データベース管理プログラムから直接データが入力されます。システムのクライアントにはブラウザのみが必要です。関係者はブラウザを通じてデータのクエリ、追加、変更、削除、情報の管理を行うことができます。
3. システム設計パターン
設計パターンは、オブジェクト指向プログラマーがプログラミングの問題を解決するために使用する形式的な表現です。現在、ブラウザ/サーバー構造を持つほとんどの Web アプリケーションでは、ブラウザは HTML または JSP の形式でユーザーと直接対話し、ユーザーのリクエストに応答します。直感的ではありますが、ほとんどの管理情報システムで操作されるデータの量は膨大です。コードが増加すると、JSP ページが肥大化し、Web サーバーに過負荷がかかります。そのため、中間層にはモデルビューコントローラー(MVC.Model-View-Controller)をベースとした設計パターンが採用されています。モデル層はビジネス ロジックの実装に使用され、ビュー層はユーザー インターフェイスの表示に使用され、コントローラー層は主にビュー層とモデル層の間の制御関係を担当します。具体的な実装では、サーブレットがアプリケーションのコントローラーとして使用され、JSP ドキュメントがビューとして使用され、JavaBeans がモデルを表すために使用されます。すべてのリクエストはコントローラとしてサーブレットに送信され、サーブレットはリクエストを受け取り、リクエスト情報に基づいて適切な JSP にリクエストをディスパッチすることで応答します。同時にサーブレットは、JSP の要件に応じて JavaBeans インスタンスを生成し、JSP 環境に出力します。 JSP は、メソッドを直接呼び出すか、UseBean のカスタム タグを使用して、JavaBeans 内のデータを取得できます。この設計パターンにより、データ層がプレゼンテーション層から効果的に分離され、開発作業がより簡単かつ迅速になります。この設計モードでのさまざまなレベル間のデータ転送を図 2 に示します。
図 2 MVC 設計パターンのデータ転送 図
4. データ アクセス技術
データベースは、経営情報システムの中核となるコンテンツです。現在、多くの Web およびデータベース インターフェイス テクノロジが存在します。その中で、JDBC は、Java プログラムがデータベースに接続してアクセスするためのアプリケーション プログラミング インターフェイスであり、Java 言語で記述された一連のクラスとインターフェイスで構成され、SQL を実行するための Java API です。発言。この記事で紹介する管理情報システムでは、データ アクセスに JSP/サーブレット + JDBC テクノロジが使用されます。つまり、クライアントはデータベース クエリ コマンドを生成せず、クライアント上のブラウザが中間層 Web サーバーとの接続を確立します。 URL を通じて。 Web サーバーは主に、ローカルまたはリモートのブラウザーから HTTP データ リクエストを受信する役割を果たします。その後、中間層のサーブレットがリクエストを受信した後、JDBC が提供する標準 API を使用してデータベースにアクセスし、SQL を実行して対応する操作を実行します。プログラム内の発言。次に、サーブレットはクエリ データを JSP に渡し、最終的に標準の JSP ページを生成して、要求元のブラウザに結果を返します。このようにして、クライアントをデータベース サーバーから分離するだけでなく、データベース アクセスの効率も向上します。
5. 例
JSP/Servlet を使用して 3 層の管理情報システムを構築する方法をよりわかりやすく説明するために、商品通信販売管理情報システムを分析および設計する例を挙げます。この商品通販管理情報システムは、サーバサイドアプリケーションをJava言語で開発し、アプリケーションサーバとしてIBM社のWebshpereを使用し、データベース管理システムはSQL Server7.0を使用し、データベースインターフェースプログラムはJDBC2インターフェースを使用しています。システム全体では、顧客管理、スタッフ管理、受注管理、商品管理、アウトバウンド管理、インバウンド管理などの通信販売業務の業務処理、工程管理、権限管理、クエリ統計、印刷機能などをWebベースで実現しています。 。注文管理部分のクエリ機能を詳細に分析します。
5.1 データベース設計
注文部分では、注文情報テーブル Db_order を定義する必要があります。テーブル内のフィールドには、注文番号 (ddbh)、顧客番号 (khbh)、製品番号 (spbh)、製品単価 (spdj)、および注文数量 (dgsl) 、合計価格 (hjzj)、受領金額 (sdje)、受領日 (sdrq)。アプリケーションで Db_order テーブルを使用するには、データベース接続を確立する必要があります。この関数は sql_data.java によって実装されます。そのコードの一部は次のとおりです。
public class sql_data {
String url = "jdbc:odbc:PostOrder" // ここでホスト名とポート番号を使用します。
String login = "sa" // ここでログイン情報を使用します。
String password ="zh12345" // ここにパスワードを使用します。
パブリック接続接続 = null;
public ステートメント st = null;
パブリック ResultSet rs = null;
試す
{
Class.forName("com.microsoft.jdbc.sqlserver.SqlServerDriver");
conn =DriverManager.getConnection(url, ユーザー, パスワード);
} catch (例外 e)
{
e.printStackTrace();
}
5.2
中間層の設計
商品通販管理情報システムの開発プロセスでは、MVC設計パターンの考え方に基づき、システムの実態と合わせて、分業に応じてモデル層をさらに分割しました。 。モデル層は通常、多くの JavaBean で構成され、これらの Bean がシステム内で果たすさまざまな役割に応じて、コマンド Bean、データ Bean、およびビュー Bean の 3 つのタイプに分類されます。その中で、コマンド Bean はビジネス ロジックを実装するために使用されます。つまり、データ Bean は現実世界から抽象化されたオブジェクト モデルを記述および定義するために使用され、ビュー Bean は処理されたオブジェクト インスタンスをさらにカプセル化して返すために使用されます。 .クライアントに。
まず、Command Beans は、Servlet によって渡された情報を取得し、Data Beans によって定義されたオブジェクト インスタンスにビジネス情報をカプセル化し、ビジネス ロジックに従って情報を処理します。データベース アクセス操作を呼び出す必要がある場合、コマンド Bean はオブジェクト インスタンスと対応する制御情報を使用して、データベース インターフェイス メソッドを通じてデータベース操作を完了します。データベース操作が完了すると、返されたレコード セットは Data Bean のオブジェクト インスタンスにカプセル化され、特定の処理の後、インターフェイスに返す必要がある情報が事前定義された View Bean にカプセル化され、その情報は View Bean を通じて返されます。 .インターフェイスに。
以下は、注文をクエリして処理する OrderGl.java のコードの一部です。
パブリック クラス OrderGl {
…
//注文クエリ操作を完了するには、次のメソッドを定義します。
public Final String currentMultiQuery(
javax.servlet.http.HttpServletRequest リクエスト、
javax.servlet.http.HttpServletResponse 応答)
com.goods.Exception.GoodsException をスローします
{
// JSP ページから対応するクエリ情報を取得します
com.goods.view.OrderView view = getView(リクエスト, レスポンス);
String ddbh = view.getDdbh(); //注文番号
//SQL文を生成
String sqlQuery = "db_order から ddbh、khbh、spbh、spdj、dgsl、hjzj、sdje、sdrq を選択します ";
//クエリ操作を実行する
java.util.Vector ベクトル = 新しい java.util.Vector();
com.goods.sjk.sql_data per = 新しい com.goods.sjk.sql_data();
試す
{
java.sql.ResultSet rs = per.executeQuery(sqlQuery);
while (rs.next())
{
com.goods.dx.Db_order temp = 新しい com.goods.dx.Db_order();
temp.setDdbh(rs.getString("ddbh"));
temp.setKhbh(rs.getString("khbh"));
temp.setSpbh(rs.getString("spbh"));
temp.setSpdj(rs.getString("spdj"));
temp.setDgsl(rs.getString("dgsl"));
temp.setHjzj(rs.getString("hjzj"));
temp.setSdje(rs.getString("sdje"));
temp.setSdrq(rs.getString("sdrq"));
ベクトル.addElement(一時);
}
rs.close();
per.close();
} catch (スロー可能 e)
{
e.printStackTrace();
per.close();
cxyw.printErrorToWeb(リクエスト, レスポンス, e.toString());
e.toString() を返します。
}
//関連情報をインターフェース view.setVct(vector) にエコーします。
request.setAttribute("ビュー", ビュー);
「1」を返します。
}
5.3
クライアント デザイン
ビューは、ユーザーに情報を表示するアプリケーションの一部です。つまり、ユーザーがリクエストを行った後にユーザーに返される Web ページです。 「照会」ボタンをクリックすると、注文番号から取得した注文情報結果ページordercx.jspが表示されます。これは、JSP ページで次の構文を使用して行われます:
<jsp:useBean id="view" class="com.goods.view.OrderView"scope="request" />
<jsp:useBean id="temp" class="com.goods.dx.Db_order"scope="page" />
<jsp:useBean>アクションは ID とスコープを使用して既存の各オブジェクトを検出し、<%=view.getDdbh() を渡します。
<%=temp.getDdbh()%> を使用して関連データを取得します。
6. まとめ
この記事では、JSP/サーブレット技術を使用して Web ベースの 3 層管理情報システムを開発するためのソリューションを提案します。このソリューションは、プレゼンテーション層とロジック層の分離を実現し、システムの拡張性を高めると同時に、管理情報システムの開発のための完全なアイデアと方法を提供します。