Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65

    [JSP]Reindirizzare a diverse pagine dopo login

    Ciao a tutti, vi spiego il mio problema.

    Ho necessità di fare un login che sappia distinguere tra 3 categorie diverse di utenti: medicoremoto medicospecialista e admin. Il login, tramite pagina jsp, fa il controllo nel database della correttezza di username e password.

    Ora ho creato 3 pagine html con 3 diversi login a seconda dell'utente, ma capite che non è proprio il massimo della vita....come posso fare a far sì che l'utente arrivi, metta nome e password e il controllo reindirizzi alla giusta pagina personale?

    Mi viene in mente una specie di costrutto IF, ma nn ho la piu pallida idea di come si usi...

    grazie!

  2. #2
    Nel database oltre a login e password aggiung (se non c'è già) un campo che identifica la tipologia di utente. Nella pagina di login dopo aver verificato la correttezza dell'user e pass ti vai a ricavare la tipologia corrispondente dal database. Poi in base al valore ricavato fai un redirect verso la pagina che ti interessa:

    codice:
    //verifica login
    ...
    //se il login è corretto recupera il tipo_utente
    String tipo_utente = .... ;
    String url = "";
    if(tipo_utente.equals("admin"))
         url = "..." //pagina relativa agli admin
    else if (tipo_utente.equals("medicoremoto"))
         url = "..." //pagina relativa a medicoremoto
    else if (tipo_utente.equals("medicospecialista"))
         url = "..." //pagina relativa a medicospecialista
    
    response.sendRedirect(url);
    Al mio segnale... scatenate l'inferno!

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    grazie Rave, quello che tu mi hai detto riguarda la "seconda parte" del mio problema, cioè il reindirizzare verso la giusta pagina.

    Però, anche mettendo un identificatore di utente nelle entità del db, come fa la jsp a controllare SE in admin, OPPURE in medicoremoto OPPURE in medicospecialista?


    la query x lo specialista sarebbe:

    codice:
    String querySQL = "SELECT nome, cognome FROM medicospecialista WHERE medicospecialista.username = ? AND medicospecialista.password = ?";
    mentre per il remoto sarebbe:

    codice:
    String querySQL = "SELECT nome, cognome FROM medicoremoto WHERE medicoremoto.username = ? AND medicoremoto.password = ?";
    e un'altra simile per l'admin.
    Vorrei che l'utente arrivi, e senza dover specificare nulla, inserisca SOLO Username e Password e io devo fornirgli la giusta pagina in base alla sua tipologia



  4. #4
    Utente di HTML.it L'avatar di nether
    Registrato dal
    Dec 2006
    Messaggi
    376
    come dice giustamente RaveMaster, il ruolo dovrebbe essere UNA COLONNA aggiuntiva della tabella "utente" (questo va bene nel caso non ti interessi gestire la possibilita' che un utente abbia piu' di un ruolo).
    non devi fare tante tabelle tanti quanti sono i ruoli, non ha nessuna utilita' e credo che tu te ne sia resa conto

    quindi le query vanno TUTTE sulla tabella utente: esempio:
    codice:
    String querySQL = "SELECT nome, cognome FROM utente WHERE utente.ruolo = ?
                                            AND utente.username = ? AND utente.password = ?";
    e poi setti i "?":
    - il primo sara' uno tra medicospecialista/medicoremoto/admin
    - il secondo lo username, cosi' come lo setti ora
    - il terzo la password, cosi' come la setti ora

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    ho avuto oggi stesso questa identica illuminazione, ma grazie mille per avermela confermata, vi rivelate sempre ultra preziosi, grazie

  6. #6
    In realtà io intendevo una cosa leggermente diversa. Si, è vero che tutto avviene sulla tabella utente ma la query che intendevo io è:

    codice:
    String query = "select nome,cognome,ruolo from utente where username = ... and password= ..."
    
    //inizializza la connessione al db
    ...
    
    ResultSet rs = statement.executeQuery(query);
    if(rs.next()){
         String tipo_utente = rs.getString(ruolo) ;
         String url = "";
         if(tipo_utente.equals("admin"))
              url = "..." //pagina relativa agli admin
         else if (tipo_utente.equals("medicoremoto"))
              url = "..." //pagina relativa a medicoremoto
         else if (tipo_utente.equals("medicospecialista"))
              url = "..." //pagina relativa a medicospecialista
    
         response.sendRedirect(url);
    }
    Al mio segnale... scatenate l'inferno!

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    65
    grazie Rave, così funziona

    ora volevo chiedere, come si fa a passare un parametro da una pagina a un altra?

    volevo fare una cosa del genere:

    codice:
    <%  String url = "";
    if (qualifica.equals("remoto"))  
    	url = "home_remoto.jsp";
    else if (qualifica.equals("specialista")) 
    	url = "home_specialista.jsp";
    else if (qualifica.equals("admin"))  
    	{out.println("<jsp:forward page="home_admin.jsp?nome= <%=nome%>"/></jsp:forward>");} 
    %>
    vedesi 3° ELSE IF: voglio passare alla pagina home_admin.jsp il nome e cognome dell'admin...com'è la sintassi?
    ciao grazie

  8. #8
    Puoi fare in diversi modi (riporto solo il terzo IF):

    codice:
    if (qualifica.equals("admin")){
         out.println("<jsp:forward page=\"home_admin.jsp?nome="+nome+"\"/></jsp:forward>");
    }
    oppure:

    codice:
    if (qualifica.equals("admin")){
    %>
         <jsp:forward page="home_admin.jsp?nome=<%=nome%>"/></jsp:forward>
    <%
    }
    oppure:

    codice:
    if(qualifica.equals("admin")){
    %>
         <jsp:forward page="home_admin.jsp"> 
              <jsp:param name="nome" value="<%=nome%>" /> 
         </jsp:forward>
    <%
    }
    Al mio segnale... scatenate l'inferno!

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.