0

データベース接続を備えた jsp ページを作成しました。このページには、html コンテンツと Java プログラミングの両方が含まれています。私のデータベースは、IP アドレスのリストで構成されています。

私の Java コードは、各 IP アドレスを取得し、ネットワーク上で現在有効かどうかを確認します。したがって、私の jsp ページは、この Java コードがすべての IP アドレスのチェックを実行した後にのみ読み込まれます。これが、私のページの読み込みが非常に遅くなる理由です。

私のページがより速くロードされるように、これに対する救済策はありますか??

4

4 に答える 4

0

次の 2 つの問題があると思います。

  1. JSP を実際の機能に直接バインドします。いくつかの MVC 構造化を実装し、JSP がコマンドを発行できるようにし、それらのコマンドが実行されているかどうか、結果が利用可能かどうかなどを表示できるようにすることが望ましいでしょう。たとえば、JSP からサーブレットへのコマンドは処理を開始します (別のスレッド)、JSP が「処理中」であることを報告できるように状態を設定します。
  2. コア機能は、さまざまな IP アドレスに問い合わせることです。これは簡単に並列化でき、各 IP クエリを個別のスレッドで発行できます (単純なソリューションであることは確かです)。詳細については、 Executorフレームワークを確認してください。
于 2012-07-03T09:56:59.820 に答える
0

db からすべての IP アドレスを ArrayList にロードし、生きているすべての IP を別の ArrayList にロードして、これら 2 つの配列を比較できます。これははるかに高速です。

于 2012-07-03T10:01:59.337 に答える
0

JSP を Java コードから分離することはベスト プラクティスの 1 つですが、ここで説明する考え方は、より一般的には、データの取得と更新をデータのレンダリングから分離することです。これは解決すべき一般的な問題です。

あなたがする必要があるのは、レンダリングされている JSP からすべてのネットワーク呼び出しを行う Java コードを分離することです。ネットワーク呼び出しをすべて 1 つのスレッドで実行し、各アドレスを 1 分または数分ごとにチェックし、各アドレスのデータベース レコードをステータスで更新できます。次に、JSP が呼び出されると、JSP はデータベースから最新のデータを取得して表示します (これが JSP の使用方法です)。

現在、これを実現する方法は数多くあります。自分でやる場合は、Spring Framework を使用し、@Scheduled アノテーションが付けられたメソッドにネットワーク呼び出しコードを配置し、そのメソッドからネットワーク呼び出しとデータベース更新を実行できます。Spring の使用方法の詳細はこの回答の範囲外ですが、うまくいけば、全体的なアプローチのアイデアと、調査を開始できる 1 つのテクノロジが得られます。

于 2012-07-03T10:07:58.187 に答える
0

-IP リストのみを含む JSP ページをロードする必要があります。ロード後は、AJAX リクエストで IP アドレスのステータスを取得できます。
-ステータスをキャッシュするという前述のアイデアは素晴らしいです。
-また、インターフェイス (ページング、遅延読み込みリストなど) を改善して、チェックする IP アドレスの数を減らすこともできます。

于 2012-07-03T10:22:31.737 に答える