BEA ホーム | 製品 | dev2dev | support | askBEA
 ドキュメントのダウンロード   サイト マップ   Glossary 
検索

WebLogic Server FAQ 集

 Previous Next Contents PDF で侮ヲ  

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")) {
. . . do some work
}

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

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

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

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

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

 

Back to Top Previous Next