Visualizzazione dei risultati da 1 a 6 su 6

Visualizzazione discussione

  1. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da =IngegnerCane= Visualizza il messaggio
    la pagina di errore non viene renderizzata, ovvero a browser mi viene mostrato lo sfondo della pagina nella quale viene catturata l'eccezione (es quindi lo sfondo di xxx.jsp), come quindi se il browser avesse iniziato a renderizzare xxx.jsp, ma una volta catturata l'eccezione, anzichè venire redirezionato a renderizzare la pagina error.jsp rimanesse invece impallato a metà su xxx.jsp... non so se mi sono spiegato...
    Quando c'è una eccezione, il servlet container cerca di fare un forward alla pagina di errore che hai indicato. La questione generale è che un forward può essere fatto solo se la response non è stata ancora "committata", ovvero se non è stato ancora inviato fisicamente alcun byte al client. Le pagine JSP usano un buffer (la dimensione è specifica per il server ma in genere intorno a 8kbyte). Finché non superi questa soglia, se c'è da fare un forward, viene buttato via il contenuto del buffer e si può passare alla pagina di errore, non avendo ancora inviato fisicamente nulla.
    Se superi tale soglia, il container invia fisicamente i dati al client e il forward non è più possibile (e oltretutto lancia IllegalStateException). D’altronde, se lo facesse sarebbe un macello ... un pezzo di una pagina, un pezzo di un'altra! (ovvero HTML completamente sballato)

    Il buffer si può anche espandere con una semplice direttiva nel <%@ page %> ma .... il tuo approccio non è comunque dei migliori. Le pagine JSP non dovrebbero compiere (né direttamente né indirettamente) della logica di elaborazione che può causare errori.
    Ultima modifica di andbin; 11-12-2015 a 19:21
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava 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 © 2025 vBulletin Solutions, Inc. All rights reserved.