Netbean 7.1.1 Glassfish 3.1.2
を使用してREST
Webアプリを構築しています
私は2つのURLを持っています:
"http://myPage/resource/getall/name" (get some data by name)
"http://myPage/resource/getall" (get all data)
クライアントが最初のURLを使用してリクエストを送信すると、以下のサーブレットが呼び出され、何らかのプロセスが実行されます。
@Path("getall/{name}")
@GET
@Produces("application/json")
public Object Getall(@PathParam("name") String customerName) {
//here I want to call SQL if customerName is not null. is it possible???
}
しかし、2番目のURLでこのサーブレットを呼び出すことも必要です。
サーブレットが呼び出されると思ったので、customerName == nullを確認してから、別のSQLなどを呼び出すことができます。
ただし、クライアントが2番目のURLを使用して(つまり、パスパラメータなしで)リクエストを送信する場合、URLに{name}パスパラメータがないため、サーブレットは呼び出されません。
2番目のURLを呼び出して、上記のサーブレットを呼び出すことはできませんか?
私が考えることができる1つの代替手段は、query parameter
を使用することです。
http://myPage/resource/getall?name=value
たぶん私はそれを解析して"value"
がnullであるかどうかを確認し、それに応じてアクションを実行することができます。
パスパラメータに正規表現を指定できます( 2.1.1。@ Path を参照)。
.*
を使用すると、空の名前と空でない名前の両方に一致します。
@GET
@Path("getall/{name: .*}")
@Produces("application/json")
public Object Getall(@PathParam("name") String customerName) {
//here I want to call SQL if customerName is not null. is it possible???
}
「http:// myPage/resource/getall」と「http:// myPage/resource/getall/name」の両方に一致します。