Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343

    [jsp] perde oggetto passato

    Salve ragazzi prima di postare il codice voglio farmi una domanda: ho creato una piccola applicazione in jsp con tomcat5.5 su ubuntu....in locale funziona bene,mentre quando la metto sul server in una pagina non funziona come dovrebbe funzionare
    richiamo un oggetto
    bean.getOggetto()
    lo stampo e mi restituisce null
    in locale invece no...come puo succere ciò....

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    applicazione jsp su tomcat e basta hai detto niente e hai detto tutto.

    1. non è che il bean esce dallo scope o non c'è mai entrato? (cosa probabile)
    2. hai log o trace che possono aiutare?

    se trovi queste cose, insieme al codice che non fa quello che deve fare (tanto per iniziare, mica vogliamo tutto) aiuta noi ad aiutare te (e ci evita di chiederlo)

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    Ciao Valia grazie per la risposta...allora:
    non è che il bean esce dallo scope o non c'è mai entrato? (cosa probabile)
    mi spieghi meglio questa affermazione non mi è molto chiara...
    codice:
    <jsp:useBean id="bean" scope="session" class="beans.UtentiBean"/>
    in questo caso gli oggetti definiti, sono accessibili solo nelle pagine che effettuano richieste e x la stessa sessione...

    ora ti spiego il mio problema:

    questa è la semplice classe che utilizzo nel bean per effettuare...(fare attenzione alla variabile oggetto)
    codice:
    public boolean loginUtente() {
            auth = false;
            try {
                ResultSet r1 = s.executeQuery("SELECT * FROM admin WHERE username='" + getUsername() + "' and password= '" + getPassword() + "'");
                if (r1.next()) {
                    username = r1.getString("username");
                    password = r1.getString("password");
                    oggetto = "admin";
                    auth = true; //se l'utente esiste nel database
                }
                else {
                    ResultSet r2 = s.executeQuery("SELECT * FROM utenti WHERE username='" + getUsername() + "' and password= '" + getPassword() + "'");
                    if (r2.next()) {
                        username = r2.getString("username");
                        password = r2.getString("password");
                        oggetto = "utenti";
                        auth = true; //se l'utente esiste nel database
                    }
            }
            catch (Exception e) {
                msgErrore = e.getMessage();
            }
            return auth;
        }
    nella jsp:imposto la sessione e il tipo di utente loggato
    codice:
    if (bean.getAuth())   //se loggato
    			{	 
    				session.setAttribute("logged", "true");
    				String oggetto=bean.getOggetto();
    				out.println(oggetto);
    			%>        
                            news
    fin qui tutto bene.....quando clicco sul link news
    mi faccio stampare tutte le news ed è ok,ma personalizzo in modo che se l'utente è tipo admin vede delle funzionalità se è di tipo utente ne vede altre...
    nella news.jsp

    cliccando su un link della pagina news.jsp
    codice:
                    while(r.next())
    		{ 
    		Art = r.getString("news"); 
    		ida = r.getString("id_news");
    		//out.println(ida);
    		String id = r.getString("id_news");
    		//out.println(id);
    		 
    				String logged = (String)session.getAttribute("logged");
    				String oggetto = bean.getOggetto();
                                    out.println(oggetto);  //qui mi restituisce NULL
    				if (logged == null || !logged.equals("true"))
    				{
    					bean.getUsername();
    					bean.getPassword();
    				}
    				else if (!oggetto.equals("admin"))
    				{
    					bean.getUsername();
    					bean.getPassword();
    				}
    				else
    				{
    					%>
    		        <%= ida %>elimina news
                    <%= ida %>modifica news	
                        Logout
    					<%
        			}  
    				%>		
            		<%= Art %>       
                    <%
    		}
    		%>
    qui quando stampo il tipo oggetto mi restituisce NULL e di conseguenza non vedo i link...
    ti ripeto questa applicazione su macchina ubuntu in localhost funziona,mentre sul server no...
    2. hai log o trace che possono aiutare?
    si possono vedere i log dal server???se si come?

    saluti

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    certo che si possono vedere i log del server, esegui su localhost? come avvii tomcat? in genere la cartella di tomcat ha una sottocartella chiamata log in cui va a mettere la roba.


    Lo scope è la durata, validità del bean. esistono infatti bean di applicazione, di sessione, di richiesta.
    Non entrare nello scope significa che magari il bean lo crea, ma non nel punto giusto e tu non lo vedi...

    A prima vista non trovo niente di strano, potresti controllare come hai dichiarato i bean, la validità ecc ecc.

    Attenta a come dichiari i bean: admin e utenti sono due oggetti uguali dal punto di vista della modellazione, se aggiungi un campo permessi (in genere mappato con numeri) hai la distinzione admin, user normale. In questo caso eviti ridondanza di dati e codice (sapere se è admin te lo risolvi con il leggere un campo).
    Ovviamente la creazione di un admin è fatta da un altro admin (e ti eviti il problema che qualsiasi utente si dichiari admin). Al max uno user può fare la richiesta di essere admin (è diverso, ma è sempre l'admin che lo autorizza).
    Questo sistema prevede la creazione di un admin manualmente (che è quello di amministrazione totale che garantisce la creazione degli altri)

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    Salve il problema persiste....
    ho realizzato 2 semplici pagine...
    index.jsp
    codice:
    <%@ page language="java"%>
    <jsp:useBean id="bean" scope="session" class="beans.UtentiBean"/>
    </head>
    <body bgcolor="#FFFFFF" >
    <div>    
    <%
    //se l'utente ha compilato il form per il login
    if (request.getParameter("invio")==null) 
    { 
    %>     
    	<form action="index.jsp" method="post" >
    		<h4>login</h4>
    		<div>
            	<label for="username">username</label>
    			<input id="username" name="username" type="text" />
            </div>
    		<div>
        		<label for="password">password</label>
         		<input name="password" type="password" />
            </div>
            </fieldset>
            <div>
                <input type="submit" name="invio" value="invio"/>
    	        
     
            </div>
    <%
    }
    else 
    {
    %>
    <div>   
    	<%
    	bean.connect();
    	String username = request.getParameter("username");
    	String password = request.getParameter("password");
    	bean.setUsername(username);
    	bean.setPassword(password);
    	bean.loginUtente();
    	//controllo l'esito del login
    	if (bean.getAuth()) 
    	{ 
    		//session.setAttribute("logged", "true");
    		String oggetto=bean.getOggetto();
    		out.println(oggetto);
    		%>
    		<h4>Benvenuto nel sito <%=bean.getNome()%> <%=bean.getCognome()%></h4>
    		<% 
    	} 
    	else 
    	{ 
    		%>
    		<h4>Errore!</h4>
    		<% 
    	}
    	bean.disconnect(); 
    }	
    %>
    </div>
    <div>
    
    
    prova session per accedere alla pagina "session.jsp" session</p>
    session.jsp
    codice:
    <body bgcolor="#FFFFFF">
    <%
    //String logged = (String)session.getAttribute("logged");
    String oggetto = bean.getOggetto();
    out.println(oggetto);
    		String a = bean.getUsername();
    		String b =bean.getPassword();
    		out.println(a);
    		out.println(b);
    		out.println(oggetto);
    %>		
        <div id="content">
    	<div id="content-wrapper">
    	<div class="small">
    </div>
    	</div>      
    	</div>
    </body>
    effettua il login e mi restituisce il tipo di oggetto nella stessa pagina,ma quando vado sulla pagina session.jsp
    sul server mi restituisce tutti null... se la eseguo in localhost non da problemi...

    questa è il metodo nell'utentibean
    codice:
    public boolean loginUtente() {
    
            auth = false;
    
            try {
    
                ResultSet r1 = s.executeQuery("SELECT * FROM admin WHERE username='" + getUsername() + "' and password= '" + getPassword() + "'");
    
                if (r1.next()) {
    
                    username = r1.getString("username");
    
                    password = r1.getString("password");
    
                    nome = r1.getString("nome");
    
                    cognome = r1.getString("cognome");
    
                    oggetto = "admin";
    
                    auth = true; //se l'utente esiste nel database
    
                }

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    visto che su localhost non dà problemi, il problema è legato alla configurazione del server, non trovi?

  7. #7
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    edit

    O forse sono sballate le configurazioni per l'accesso al DB, senza vedere i log è impossibile capire cosa succede.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    343
    riguardo al db la connessione è effettuata xkè mi faccio stampare in index.jsp le informazioni di login

  9. #9
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    E quale sarebbe la index.jsp?
    E che informazioni stampi della connessione? I parametri di connessione non bastano a dire che sei connessa... Specie se la connessione la fai tra try e catch e blocchi l'exception...
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    Originariamente inviato da Pastore12
    edit

    O forse sono sballate le configurazioni per l'accesso al DB, senza vedere i log è impossibile capire cosa succede.
    ho già chiesto i log, potrei pensare che è un problema di scope, ma senza log vado solo per ipotesi

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.