2017-03-24 3 views
1

私は現在、特定のIDに多くのデータを返すサーブレットを開発中です。 ID = 123HTTPServletで呼び出される相対パス

8080/RTC_W/APIとソースコードで指定された特別なパスを持っていない: これはローカルホスト

URLの下に呼ばれます。以下のように 私のweb.xmlが、それをマップ:

<servlet-mapping> <servlet-name>APICaller</servlet-name> <url-pattern>/api</url-pattern> </servlet-mapping>

それは、この(関連部分のみ)のように見え、IDを入力する小さな箱を提供していますwelcomeファイルによって呼び出されます。

<body> 
RTC W Front End 

<form action="/api" method="get"> 
    Work Item ID:<br> 
    <input type="text" name="id" value=""><br> 

    <input type="submit" value="Submit"> 
</form> 
</body> 

ご覧のとおり、フォームアクションは、サーブレットが配置されているpath/apiを呼び出す必要があります。呼ばれるURLはしかし間違っている、それは常に

localhostを呼び出します:?8080/APIをID = 123

だから、/ RTC_Wは/不足しています。私は<form action="RTC_W/api" method="get">に追加した場合は、このURLが呼び出されます:

はlocalhost:8080/RTC_W/RTC_W/API = 123

IDだからパスが2回呼び出され?。私は間違って何をしていますか?

答えて

1
<form action="api" method="get"> 

これはあなたが使用すべきものです。

URLが/を起動すると、それはURLが、それは現在のURLに追加されます/に起動しない場合、すなわち右<hostname>:<port>

の後に追加、常に絶対URLです。

+0

ありがとうございました。 – Ben