XML グラファーの例で使用された IlvManagerServlet クラスは、Rogue Wave® JViews JavaScript Web アプリケーション・プロトコルをサポートするサーブレットを作成する簡単な方法を提供します。
IlvManagerServlet
クラスを使用するとサーブレットを簡単に作成できますが、大きな欠点が 1 つあります。IlvManagerServlet
クラスは HttpServlet
クラスから派生しているため、 Rogue Wave JViews JavaScript Web アプリケーション・プロトコルに対するサポートを既存のサーブレットに追加できません。 IlvManagerServletSupport クラスの場合はできます。このクラスの API は IlvManagerServlet
と同じですが、サーブレットではありません (つまり、HttpServlet
クラスからの派生ではありません)。したがって、このサーブレットに IlvManagerServlet
サポート・クラスの独自のサーブレットとインスタンスを作成して、Rogue Wave JViews クライアント・サイドから送信される要求を処理できます。XML グラファー例での Web アプリケーション・サポート
この XML グラファー例では、サーブレットのコードは
IlvManagerServletSupport
クラスを使用して次のように再記述することができます。package demo.xmlgrapher.servlet; import javax.servlet.*; import javax.servlet.http.*; import java.net.*; import java.io.*; import ilog.views.*; import ilog.views.servlet.*; import demo.xmlgrapher.*; public class XmlGrapherServlet extends HttpServlet { IlvManagerServletSupport servletSupport ; class MySupport extends IlvManagerServletSupport { private XmlGrapher xmlGrapher; public MySupport(ServletConfig config) { super(); xmlGrapher = new XmlGrapher(); String xmlfile = config.getInitParameter("xmlfile"); if (xmlfile == null) xmlfile = config.getServletContext().getRealPath("/data/world.xml"); try { xmlGrapher.setNetwork(new URL("file:" + xmlfile)); } catch (MalformedURLException ex) { } setVerbose(true); } public IlvManagerView getManagerView(HttpServletRequest request) throws ServletException { return xmlGrapher; } protected float getMaxZoomLevel(HttpServletRequest request, IlvManagerView view) { return 30; } } /** * Initializes the servlet. */ public void init(ServletConfig config) throws ServletException { servletSupport = new MySupport(config); }
public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { if (!servletSupport.handleRequest(request, response)) throw new ServletException("unknown request type"); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { doGet(request, response); } }
このコードでは、
HttpServlet
クラスから直接派生する新規クラス、新しいサーブレット・クラス XmlGrapherServlet
を作成しています。doGet
メソッドは、要求を IlvManagerServletSupport
クラスのインスタンスに渡します。クライアント・サイドの固定ズーム・レベルの指定
IlvManagerServletSupport クラスの次のメソッドをオーバーライドして、クライアント・サイドで使用するズーム・レベルを指定します。
public double[] getZoomLevels(HttpServletRequest request, IlvManagerView view)
この場合には、最大ズーム・レベルを使用しません。