ナビゲーションをスキップ

WebLogic Server FAQ 集

  前 次 前/次ボタンと目次ボタンとの区切り線 目次  

FAQ : サーバサイド Java (サーブレット)


Q. URL でパラメータを指定してサーブレットを呼び出すには、どうすればよいですか。

A. サーブレット パラメータの通常の書式は name=value で、URL の最後の疑問符 (?) の後に記述します。これらのパラメータにアクセスするには、HttpServletRequest オブジェクトで getParameter() メソッドを呼び出し、文字列をテストするコードを記述します。たとえば、URL パラメータが「func=topic」の場合、URL は次のようになります。

  http://www.myserver.com/myservlet?func=topic

この場合は、次のようにしてパラメータを解析できます。ここで、「req」は HttpServletRequest オブジェクトです。

  String func = req.getParameter("func");
if (func.equalsIgnoreCase("topic")) {
. . . 何らかの処理を行う
}

Q. 同じ WebLogic Server インスタンスで同じサーブレット クラスの複数のインスタンスを実行する方法を教えてください。

A. 複数のインスタンスを実行する場合、サーブレットは SingleThreadModel インタフェースを実装する必要があります。SingleThreadModel インタフェースを実装したクラスのインスタンスは、同時に複数のスレッドで呼び出されないことが保証されています。SingleThreadModel インタフェースの複数のインスタンスを使用して、それぞれをシングル スレッドで実行しながら、同時に発生するリクエストを処理します。

サーブレットの設計時に、ファイルやデータベースへのアクセスのようなサーブレット クラスの外部の共有リソースの使い方に注意を払う必要があります。同一のサーブレット インスタンスが複数あり、まったく同じリソースを使用する可能性があるため、SingleThreadModel インタフェースを実装した場合でも、解決の必要がある同期と共有の問題が発生します。


Q. HTTP セッションのデシリアライズはどのように行うのですか。

A. HTTP セッションのデシリアライズを行うには、現在のスレッドのコンテキスト クラスローダを使用してアプリケーション コンテキストでユーザ定義のオブジェクトをロードするユーティリティ クラスを作成します。その後、このユーティリティ クラスをシステム CLASSPATH に追加します。

 

フッタのナビゲーションのスキップ  ページの先頭 前 次