![]() |
![]() |
|
|
| |
FAQ: サーバサイド Java(サーブレット)
URL でパラメータを指定してサーブレットを呼び出すには、どうすれば良いですか。
サーブレット パラメータの通常の書式は 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
}
同じ WebLogic Server インスタンスで同じサーブレット クラスの複数のインスタンスを実行する方法を教えてください。
複数のインスタンスを実行する場合、サーブレットは
SingleThreadModel
インタフェースを実装する必要があります。SingleThreadModel
インタフェースを実装したクラスのインスタンスは、同時に複数のスレッドで呼び出されないことが保証されています。SingleThreadModel
インタフェースの複数のインスタンスを使用して、それぞれをシングル スレッドで実行しながら、同時に発生するリクエストを処理します。
サーブレットの設計時に、ファイルやデータベースへのアクセスのようなサーブレット クラスの外部の共有リソースの使い方に注意を払う必要があります。同一のサーブレット インスタンスが複数あり、まったく同じリソースを使用する可能性があるため、SingleThreadModel
インタフェースを実装した場合でも、解決の必要がある同期と共有の問題が発生します。
http セッションをデシリアライズするにはどうすればよいですか。
hppt セッションをデシリアライズするには、現在のスレッドの contextclassloader を使用してアプリケーション コンテキスト内のユーザ定義オブジェクトをロードするユーティリティ クラスを作成します。そして、このユーティリティ クラスを、システムの CLASSPATH に追加します。
![]() |
![]() |
![]() |