Mi spiego meglio. Ho sfruttato una servlet "miaServlet.java" per verificare qualsiasi "azione" su un bottone, essa verifia il nome del bottone sul quale l'utente ha cliccato e lo indirizza verso la pagina opporuna.
La mia web-app si chiama "myApp", la quale contiene tutte le pagine .jsp e i file .java .
Ho una pagina chiamata "index.jsp" dalla quale inserendo User e Pass e cliccando sul bottone di nome "Login", se i dati sono giusti si accede alla "home.jsp", altrimenti se i dati sono errati viene visualizzato l'errore.
Esempio:
Un utente entra nel sito e visualizza la pagina "index.jsp" con il suo style.css.
Supponiamo l'azione di "Login":
il codice contenuto in inex.jsp è

******************************************
<form action="servlet/trameServlet" method="post" name="indexForm">
Username

<input class="textbox" name="USER" id="USER" maxlength="30" title="Username textbox" type="text">


Password

<input class="textbox" name="PASS" id="PASS" maxlength="16" title="Password textbox" type="password">



<input name="action" value="Login" type="submit">
</form>
************************************************

Se inserisce dati errati "miaServlet.java" dopo aver sfruttato altre classi java per la verifica, effetua il forward() verso la stessa index.jsp visulizzandogli l'errore.
Però la pagina "index.jsp" viene visualizzata, questa volta, senza layout.
Ora se riprova l'azione di "Login" e sbaglia nuovamente, mi esce il seguente errore:

************
The requested resource (/myApp/servlet/servlet/miaServlet) is not available.
************

Per quanto ho capito, prende l'indirizzo di "miaServlet" che è situato nella action del form (vedi sopra):

<form action="servlet/trameServlet" .....
.....
</form>


e ricopia il comando /servlet/, per cui la volta successiva per richiamare "miaServlet" punta all'indirizzo sbagliato:
/myApp/servlet/servlet/miaServlet

anzicchè
/myApp/servlet/miaServlet al quale punta solo la prima volta.

Aiuto!!!!