Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    [JSP][JAVA] Ridirezione da servlet a JSP

    ciao,
    ho un problema nella redirezione da una servlet verso una jsp. Nella servlet uso:

    codice:
    String nextJSP = "/jsp/organism/OrganismList.jsp"; 
    RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(nextJSP);
    dispatcher.forward(request,response);
    quando però mi apre la pagina OrganismList.jsp, oltre a non trovare lo stile css, sulla barra degli indirizzi, vedo il path della servlet appena eseguita per cui tutti i riferimenti sono sballati.

    Come posso risolvere il problema?

    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    69
    È normale che ti ritrovi il path della servlet in quanto effettui un forward e quindi al client (il browser) l'azione non viene notificata.

    Nel tuo caso dovresti effettuare un redirect che costringe il client (il browser) a produrre una nuova richiesta. Questo lo puoi fare tramite il comando response.sendRedirect("path").

    Chiaramente se salvi qualcosa nella requst per visualizzarlo nella jsp devi utilizzare la tecnica del forward, se usi il redirect (trattandosi di una nuova richiesta) la request viene spazzata!

    Nel caso prova ad utilizzare il tag html base che ti permette di impostare una specie di "root".

  3. #3
    Se hai problemi con la path
    puoi modificare il file web.xml in modo che la servlet rispondi, ad esempio, all'url
    /jsp/organism/OrganismList

    In questo modo puoi usare la tecnica del forward che spesso è migliore rispetto al redirect e nello stesso tempo non sballare i path

  4. #4
    Ciao grazie per la risposta.

    Io nel file web.xml ho definito così la servlet:

    codice:
    <servlet>
      <servlet-name>InsertOrganismServlet</servlet-name>
      <servlet-class>uarray.servlet.organism.InsertOrganismServlet</servlet-class>
    </servlet>
    
    <servlet-mapping>
      <servlet-name>InsertOrganismServlet</servlet-name>
      <url-pattern>/InsertOrganismServlet</url-pattern>
    </servlet-mapping>
    Come la devo modificare per il reindirizzo?

    Grazie

  5. #5
    in
    <url-pattern>
    devi aggiungere o modificare l'url

    Se intendi far rispondere il server si più di un path separali da virgola

    codice:
    <url-pattern>/InsertOrganismServlet,/jsp/prova</url-pattern>

  6. #6
    Ciao

    Ho seguito le tue indicazioni ma non mi va. Il web.xml è:

    codice:
    <url-pattern>/InsertOrganismServlet, /jsp/organism/OrganismList.jsp</url-pattern>
    Scusa per l'OT ma può essere un problema legato alla definizione del Context?

    Ciao

  7. #7
    Potrebbe essere dovuto al fatto che hai indicato un url che si trova fuori dal context path.

    Inoltre non usare come url-pattern un url al quale già risponde una jsp
    Mi correggo ciò è invece possibile e la precedenza và alla servlet

    http://cds-esd.sun.com/ESD4/JSCDL/se...et2_2-spec.pdf

    Magari se mi dici il tipo di errore che ottieni è più facile risolvere.

  8. #8
    Ciao grazie per il tempo che mi dedichi

    Ti posto il Context:
    codice:
    <Context path="/uarray"
      docBase="/webapps/uarray"
      reloadable="true" >
    </Context>
    L'errore che mi da è che adesso non mi carica più la servlet!!!

    Ciao

  9. #9
    Attraverso quale url richiami la servlet?

    http://localhost/uarray/InsertOrganismServlet

    oppure

    http://localhost/uarray/jsp/organism/OrganismList.jsp

    Sicuro che nel log del server non compaia alcun tipo di errore?

    Bisogna capire se il problema è il web.xml o la servlet..
    Quindi usa il debugger (o banalmente un System.out.println("..")) per capire se il codice della servlet viene eseguito oppure la servlet non viene completamente trovata.

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.