WebLogic Server FAQ 集
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 に追加します。