Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    Ho capito perché non funziona.
    Non è possibile mettere nella URL #ancora. Dunque come faccio a puntare ad una pagina e ad una URL?
    grazie
    Più pratica in futuro...

  2. #12
    l'unica soluzione è creare una servlet che rimanda ad un link committed?
    spero proprio di no...
    Più pratica in futuro...

  3. #13
    ho risolto con jquery, grazie per tutto!
    Più pratica in futuro...

  4. #14
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    Non è possibile mettere nella URL #ancora. Dunque come faccio a puntare ad una pagina e ad una URL?
    Sì, scusa, l'avevo notato prima che hai messo un #ancora ma mi sono dimenticato di segnalartelo subito. Una "ancora" serve solo al browser. È il browser che quando riceve un url con #qualcosa va a "scrollare" la pagina fino a quel punto denominato (se presente, ovviamente).
    Nel contesto di una web application, il <location> di un <error-page> è una cosa "interna" al server, il browser NON "vede" in alcun modo quel location. Quindi in quel contesto una ancora non serve a un piffero.

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    l'unica soluzione è creare una servlet che rimanda ad un link committed?
    Ma che significa? Sai cosa vuol dire quando la response è "committed"?

    Quote Originariamente inviata da giannino1995 Visualizza il messaggio
    ho risolto con jquery, grazie per tutto!
    E cosa c'entra JQuery in tutto questo?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #15
    Se aggiungo l'ancora (#ancora) nella URL presente in web.xml l'<error-page> smette proprio di funzionare.
    No, non so cosa significa committed, mi spieghi perfavore?
    Si, è esatto, ho risolto con jQuery perché quando sono nella pagina error.jsp aggiungo qualche riga di codice js che a sua volta aggiunge a error.jsp l'ancora. In pratica grazie a jQuery la URL finale è come piace a me, ovvero ...error.jsp#ancora e il browser visualizza la parte di pagina di mio interesse e non il menu in alto. In pratica con jQuery sposto la vista della pagina dove piace a me.
    Sempre grazie per il tuo supporto!
    Più pratica in futuro...

  6. #16
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    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.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.