Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615

    Web application java, mantenere sempre lo stesso indirizzo nella barra di navigazione

    Cari utenti, nella mia web application sviluppata in Java vorrei fare in modo che l'utente evitasse di vedere nella barra di navigazione del browser i link di servlet e pagine via via aperte, ma anzi vorrei che l'utente vedesse solo sempre lo stesso indirizzo da me impostato di default. Ecco sotto l'istruzione che utilizzo dalle servlet per aprire le varie pagine, come modificarla? Grazie.

    codice:
    request.getRequestDispatcher("miapagina.jsp").forward(request,response);

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    10 anni fa ti avrebbero suggerito di usare i frame... oggi c'è ajax, ma alla fine a te che importa se si vede un'indirizzo oppure no? Ne vale lo sbattimento?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Originariamente inviato da Andrea1979
    10 anni fa ti avrebbero suggerito di usare i frame... oggi c'è ajax, ma alla fine a te che importa se si vede un'indirizzo oppure no? Ne vale lo sbattimento?
    In realtà non mi risulta che ci sia necessità di usare ajax ne iframes, è sufficiente richiamare sempre la stessa servlet (che chiameremo dispatcher) con parametri (in query string o in post) diversi a seconda delle azioni da intraprendere, e poi lei farà forward ad una jsp piuttosto che un'altra (lasciando invariata la url sulla barra degli indirizzi perché non sono stati inviati degli header di redirect).
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  4. #4
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    sono d'accordo con te... ma in get (quindi in query string) l'indirizzo sostanzialmente cambia ed è soggetto anche a limitazioni di lunghezza della query string stessa, nonché al genere di dato passato (niente binary). Resta la soluzione post, e qui non so perché ho citato ajax,visto che comunque andrà gestita l'intera casistica delle azioni - a quel punto passare per ajax sarebbe solo uno step in più ed inutile. I frame sono pura cosmetica... è per il programmatore pigro che non vuole nè gestire casi nè altro
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  5. #5
    Originariamente inviato da Andrea1979
    sono d'accordo con te... ma in get (quindi in query string) l'indirizzo sostanzialmente cambia ed è soggetto anche a limitazioni di lunghezza della query string stessa, nonché al genere di dato passato (niente binary).
    Corretto. Resta solo il post e una bella dispatcher servlet che fa forward alle varie viste (jsp) di risposta, sulla base dell'azione da intraprendere e del risultato ottenuto.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  6. #6

    Rewrite Url

    Potresti utilizzare un rewrite url , per organizzare gli url del tuo sito.

    In questo modo sarà anche più semplice per i motori di ricerca indicizzare i tuoi contenuti.

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2005
    Messaggi
    615
    Intanto, un grazie a tutti per le vostre risposte. Voi mi suggerite il metodo post e la dispatcher servlet. Io già uso una servlet dispatcher come da voi indicato, che apre qualsiasi pagina jsp, e che è chiamata da tutte le altre servlet dell'applicazione; solo che non la chiamo con il metodo post come dite voi, col risultato che nella barra di navigazione non è indicato il nome della servlet dispatcher che è sempre la stessa (avrei risolto il problema) ma quello della servlet che la istanzia a monte.

    Vi indico quindi come procedo attualmente per poi chiedervi come modificare i miei due semplicissimi frammenti di codice che seguono, a questo punto il problema è solo passare dal metodo get a quello post e per questo chiedo lumi.

    Piccolo frammento della servlet che apre la servlet dispatcher in base a vari eventi:
    codice:
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //... precedono altre istruzioni
    request.getRequestDispatcher("my_dispatcher").forward(request,response);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request,response);
    }

    Piccolo frammento della servlet my_dispatcher:
    codice:
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    request.getRequestDispatcher("pages/myPage.jsp").forward(request,response);
    }
    
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		doGet(request,response);
    }
    Grazie a tutti.

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.