Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11

Discussione: dubbio html

  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    40

    dubbio html

    devo controllare il login(ma non ho una registrazione precedente l'esercizio non lo chiede)ovvero solo username rossim o bianchil sono ammessi e le password rossino e bianchino rispettivamente e ho fatto cosi:

    codice HTML:

    codice:
    
    
    codice:
    <% 
                String uservar =(String)application.getAttribute("user");
                String passwordvar =(String)application.getAttribute("password");
                if(uservar!=null&& uservar.equals(request.getParameterValues("rossim"))|| 
                        uservar.equals(request.getParameterValues("bianchil"))
                        && passwordvar!=null&& passwordvar.equals(request.getParameterValues("rossino")) 
                        || passwordvar.equals(request.getParameterValues("bianchino")))
                {  %>
                    <p>
                        Utente <%= uservar %>  loggato con successo
                    </p>
            <% 
                session.setAttribute("user", uservar);
    
    
                }else{ %>
                    <p>Errore di login</p>
                    <%
                }
                %>

    Ma ricevo un java.lang.nullPointer.exception
    Ultima modifica di LeleFT; 22-12-2014 a 10:45 Motivo: Aggiunti tag CODE

  2. #2
    Utente di HTML.it L'avatar di Renny
    Registrato dal
    Nov 2012
    Messaggi
    16
    Innanzitutto l'utilizzo di tutte queste scriptlet te lo sconsiglio, crea una classe (o una servlet se preferisci) e inserisci lì tutto il codice, così è anche più leggibile.
    Comunque, passando al tuo codice, tu devi controllare se il contenuto di "uservar" è uguale ad una semplice stringa (rossim, o bianchil), quindi non vedo il motivo di usare
    codice:
    request.getParameterValues("bianchil")
    . Basta un
    codice:
    uservar.equals("bianchil")||uservar.equals("rossim")
    Inoltre aggiungo due osservazioni di cui non sono sicuro siano corrette:
    1) Credo non serva il cast nella dichiarazione delle variabili 'uservar' e 'passwordvar';
    2) Non so se è possibile utilizzare in questo modo le scriptlet (se non lo sai, le scriptlet sono i tag <% codice java %>, quindi ti consiglio nuovamente di creare una classe o una servlet.

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il metodo da usare per ottenere il valore di un campo dalla Request è "getParameter()" non "getParameterValues()". Quest'ultimo, infatti, non ritorna una stringa, ma un array di String (ed è usato per quei casi in cui c'è più di un campo con lo stesso nome nel form).


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    40
    Quote Originariamente inviata da Renny Visualizza il messaggio
    Innanzitutto l'utilizzo di tutte queste scriptlet te lo sconsiglio, crea una classe (o una servlet se preferisci) e inserisci lì tutto il codice, così è anche più leggibile.
    Comunque, passando al tuo codice, tu devi controllare se il contenuto di "uservar" è uguale ad una semplice stringa (rossim, o bianchil), quindi non vedo il motivo di usare
    codice:
    request.getParameterValues("bianchil")
    . Basta un
    codice:
    uservar.equals("bianchil")||uservar.equals("rossim")
    Inoltre aggiungo due osservazioni di cui non sono sicuro siano corrette:
    1) Credo non serva il cast nella dichiarazione delle variabili 'uservar' e 'passwordvar';
    2) Non so se è possibile utilizzare in questo modo le scriptlet (se non lo sai, le scriptlet sono i tag <% codice java %>, quindi ti consiglio nuovamente di creare una classe o una servlet.

    Errori miei a parte purtroppo il professore vuole quel tipo di scriptlet all'esame,intanto grazie ora modifico e buone feste

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    40
    purtroppo stesso errore

  6. #6
    Utente di HTML.it L'avatar di Renny
    Registrato dal
    Nov 2012
    Messaggi
    16
    Ora che rileggo, hai scritto che non hai una classe per controllare il login, quindi che senso ha scrivere
    codice:
    String uservar =(String)application.getAttribute("user");
    ? Hai un'altra pagina jsp che ti porta a questa che ci hai fatto vedere?

    Grazie, buone feste anche a te

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    40
    Quote Originariamente inviata da Renny Visualizza il messaggio
    Ora che rileggo, hai scritto che non hai una classe per controllare il login, quindi che senso ha scrivere
    codice:
    String uservar =(String)application.getAttribute("user");
    ? Hai un'altra pagina jsp che ti porta a questa che ci hai fatto vedere?

    Grazie, buone feste anche a te
    si nella pagina precedente ho una form

    codice HTML:
    <form method="post" action="checklog.jsp">            <p>Username:<input type="text" name="user" >            <p>Password:<input type="password" name="password" >              <input type="submit" value="invia" id="subm">          </form>

  8. #8
    Utente di HTML.it L'avatar di Renny
    Registrato dal
    Nov 2012
    Messaggi
    16
    Adesso che ho provato mi è tutto più chiaro!
    Allora, quando dichiari le variabili "uservar" e "passwordvar" le stai andando a prendere da dentro l'application (che a dire il vero non so cos'è), ma i dati non sono mai stati settati (per esempio: application.setAttribute("user", username); ). Per andare a prendere direttamente i valori dall'altra pagina JSP si usa il
    codice:
     request.getParameter("username");
    Quindi il codice corretto sarà questo:
    codice:
    <% 
                String uservar = request.getParameter("user");
                String passwordvar = request.getParameter("password");
                if(uservar!=null&& uservar.equals("rossim")|| 
                        uservar.equals("bianchil")
                        && passwordvar!=null&& passwordvar.equals("rossino") 
                        || passwordvar.equals("bianchino"))
                {  %>
                    <p>
                        Utente <%= uservar %>  loggato con successo
                    </p>
            <% 
                session.setAttribute("user", uservar);
    
    
    
    
                }else{ %>
                    <p>Errore di login</p>
                    <%
                }
                %>
    Un consiglio, scrivendo così la condizione, se io inserisco come username "rossim" e come password "bianchino" loggherà lo stesso, se vuoi associare la password "rossini" all'username "rossim" devi fare due if o sistemare la condizione

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2014
    Messaggi
    40
    ok tutto a posto,solo che sempre per quel es devo far apparire un pulsante vicino al nome di uno dei due loggati
    e ho fatto cosi ma mi dà sempre il solito nullPoint exception
    codice HTML:
    <div>
                        <b>Autore</b>:Mario Rossi <% 
                            String uservar = (String)session.getAttribute("user");
                            String passwordvar = (String)session.getAttribute("password");
                            if(uservar!=null && uservar.equals("rossim")&& 
                                    passwordvar.equals("rossino")){ 
                        %>
                            <button class="visible" type="button">Modifica</button>
                            <%}else{ %>
                            <button class="invisible" type="button">Modifica</button>
                            <% } %>
                </div>

  10. #10
    Utente di HTML.it L'avatar di Renny
    Registrato dal
    Nov 2012
    Messaggi
    16
    Credo che ti stia dando un nullPoint exception perché scrivendo così:
    codice:
    String uservar = (String) session.getAttribute("user");
    Stai andando a prendere i valori dalla sessione e, a meno che non hai modificato la pagina precedente (quella dove si esegue il login), la sessione è vuota.
    Quindi, a meno che tu non voglia creare una servlet/classe dove settare i dati nella sessione, ti ripropongo il getParameter, ovvero:
    codice:
    String uservar = request.getParameter("user");

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.