0

ネットワークで使用可能なデバイスのトポロジ マップを作成しようとしています。

IP、デバイス名など、システムの詳細があります。

私がする必要があるのは、それらをグラフに取り込んでグラフィカルに表示することだけです。問題は、JSP でそれを行う必要があることです。

Flex を使用して表示するなど、IP/デバイス名を渡して環境を作成する別の方法はありますか。ところで、システムの数が固定されていないため、動的にする必要があります。

誰か助けてくれませんか?

4

2 に答える 2

2

まず第一に、これは必ずしも JSP の問題ではありません。ネットワーク デバイスのリストの取得は、JSP ファイルではなく、実際の Java クラスで行います。JSP は単なるビュー テクノロジです。

実際の問題に戻ると、まずjava.net.NetworkInterface API を使用できます。

最初に、メソッドで のListを取得するサーブレットを作成し、それをリクエスト スコープに入れ、リクエストを JSP に転送します。クラスはすでに Javabean 仕様にいくつかの便利なゲッター メソッドを準拠させているため、別の Javabean クラスでラップする必要はなく、再利用することができます。NetworkInterfacedoGet()NetworkInterface

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    try {
        List<NetworkInterface> networkInterfaces = Collections.list(NetworkInterface.getNetworkInterfaces());
        request.setAttribute("networkInterfaces", networkInterfaces);
    } catch (SocketException e) {
        throw new ServletException("Cannot obtain networkinterfaces.", e);
    }
    request.getRequestDispatcher("/WEB-INF/networkinterfaces.jsp").forward(request, response);
}

このサーブレットをたとえばweb.xmlにマップします。このサーブレットは からアクセスできます。url-pattern/networkinterfaceshttp://example.com/context/networkinterfaces

ここで、 (ユーザーがサーブレットの使用を強制されるように)による直接アクセスを防止するためnetworkinterfaces.jspに配置する JSP ファイルを作成します。JSTLを使用します(まだ行われていない場合はJAR を入れるだけです) c:forEachタグを反復処理し、ELによってゲッターにアクセスします。WEB-INFhttp://example.com/context/networkinterfaces.jsp/WEB-INF/libList

<c:forEach items="${networkInterfaces}" var="networkInterface">
    Name: ${networkInterface.name}<br>
    Display name: ${networkInterface.displayName}<br>
    MTU: ${networkInterface.MTU}<br>
    <c:forEach items="${networkInterface.interfaceAddresses}" var="interfaceAddress" varStatus="loop">
        IP address #${loop.index + 1}: ${interfaceAddress.address}<br>
    </c:forEach>
    <hr>
</c:forEach>

それだけです。

「視覚的に表示」するように編集します。Java 2D API を使用して画像を生成するか、HTML/CSS を使用して、サーブレットで収集された情報に基づいて要素を配置します。

于 2009-12-08T17:08:54.840 に答える
0

合理的に最新の (恐ろしく遅い) オプションが必要な場合は、一連の tracert インスタンスを起動し、出力を取得して IP ホップを解析できますか? 次に、結果を使用して、グラフ API を使用してツリー構造にノードをリンク/追加できます。

ただし、これは時間のかかるプロセスになります。もっと良い方法があると確信していますが、これはオプションを考えさせるかもしれません。

于 2009-12-08T15:58:36.080 に答える