2017-03-24 1 views
1

Je développe actuellement une servlet qui renvoie beaucoup de données à un ID donné. Il est appelé sous l'URLChemin relatif appelé avec HTTPServlet

localhost: 8080/RTC_W/api id = 123

et n'a pas de chemin spécial donné dans le code source. Mon web.xml mappe comme suit:

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

Il est appelé par un fichier de bienvenue, qui ressemble à ceci (partie pertinente seulement) et offre une petite boîte à taper dans l'ID:

<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> 

Comme vous pouvez le voir, l'action de formulaire doit appeler path/api où se trouve la servlet. L'URL est appelée mal cependant, il appelle toujours

localhost: 8080/api id = 123

Ainsi, le/RTC_W/manque. Si je l'ajoute à <form action="RTC_W/api" method="get">, cette URL est appelée:

localhost: 8080/RTC_W/RTC_W/api id = 123

Ainsi, le chemin est appelé deux fois. Qu'est-ce que je fais mal?

Répondre

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

Voici ce que vous devez utiliser.

Quand une URL commence par / il est toujours une URL absolue, à savoir juste après le joint <hostname>:<port>

Si une URL ne démarre pas avec / il se joint à l'URL actuelle.

+0

Merci, cela a fonctionné. – Ben