Quote Originariamente inviata da giannino1995 Visualizza il messaggio
Se aggiungo l'ancora (#ancora) nella URL presente in web.xml l'<error-page> smette proprio di funzionare.
Sì e tra l'altro Tomcat (prova al volo fatta stamattina) dà una pagina "vuota" e non si degna di dare neanche un warning/error su standard-output né alcuna eccezione. E le specifiche Servlet non dicono nulla a riguardo per quanto ne so. Strano ma comunque la questione l'ho chiarita prima: non serve a nulla una ancora in quel contesto.

Quote Originariamente inviata da giannino1995 Visualizza il messaggio
No, non so cosa significa committed, mi spieghi perfavore?
Una response è "committed" quando il server ha già inviato al client gli header in response (e poi man mano sta inviando il body della response).

Quando si scrive la response, implicitamente con del testo in una JSP (es. HTML) o esplicitamente in una Servlet con il ServletOutputStream o PrintWriter ottenuto dal (Http)ServletResponse, c'è di mezzo un sistema di "buffering".
La grandezza del buffer dipende dalla configurazione del servlet-container ma si può anche indicare una dimensione in vari modi. Tipicamente per default è qualcosa intorno a 8192 bytes.
All'inizio che si genera la response, finché si rimane entro questo buffer, il server non invia nulla fisicamente al client e si è liberi di fare es. un sendRedirect in qualunque momento. Nel caso di un sendRedirect, il container butta via il contenuto del buffer e imposta lui una response di redirect.

Nel momento in cui si va oltre la dimensione del buffer O si fa un flush() esplicito, allora il container invia gli header in response e inizia a mandare fisicamente su networking i byte del body in response. A quel punto è troppo "tardi" per fare un sendRedirect o altre operazioni particolari sulla response.

sendRedirect e altre operazioni (es. sendError) NON possono essere usate dopo che la response è committed. La documentazione lo dice chiaramente:

void sendError(int sc)
throws java.io.IOException
[...]
IllegalStateException - If the response was committed before this method call
Idem es. il forward di RequestDispatcher: "IllegalStateException - if the response was already committed"

Quando la response è già committed è tardi per queste operazioni. E se anche si riesce a passare ad una pagina di errore, avendo già committato tutto/parte della pagina richiesta, avresti una accozzaglia di HTML.

Quote Originariamente inviata da giannino1995 Visualizza il messaggio
e il browser visualizza la parte di pagina di mio interesse e non il menu in alto.
Va beh, una "finezza", ok. Ma allora si può fare anche senza JQuery ma con semplice Javascript.