Vai al contenuto

Primario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Secondario: Sky Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Sfondo: Blank Waves Squares Notes Sharp Wood Rockface Leather Honey Vertical Triangles
Corsi di Laurea










ROX @ Unisa - Forum degli studenti di Ingegneria utilizza i cookie. Se prosegui la navigazione accetti il loro uso.    Accetto l'uso dei cookie
-->
Foto

Domanda strana LTWeb Appello del 18/06/2010


  • Effettua l'accesso per rispondere
Questa discussione ha avuto 18 risposta/e

#1
ub_88

ub_88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 91 Messaggi:
Domanda: effettuare il controllo sul login, in modo che se un utente digita sul browser l'url di una pagina dove occorre essere loggati per entrare, se non è loggato non potrà accedervi. Ciò deve essere fatto usando le proprietà dei bean, e non con gli if che tutti noi abbiamo messo nel contest.

Mi è stato detto che i prof hanno insistito sul fatto che si può fare anche con le proprietà.

Qualcuno conosce una risposta esaustiva?



#2
pifmfe

pifmfe

    Admin

  • Amministratore
  • 1689 Messaggi:
non ti so dare una risposta esaustiva, ma ti posso dire che si può usare la proprietà session dei bean.

Non sono più uno studente, sono admin ad honorem, ma non gestisco più r0x. Per qualsiasi problema contattate un altro admin o la super associazione StudentIngegneria :)
 
Cerca nel forum prima di postare

Associazione StudentIngegneria

Ci sono cose che non si possono chiedere per tutto il resto c'è r0x
La vita è l'inseguimento di un buco.


#3
zxzxasas

zxzxasas

    Advanced Member

  • Utente
  • StellaStellaStella
  • 789 Messaggi:
Non so se ricordi, ma il prof ci fece vedere a lezione una tecnica che, dato un oggetto non istanziato, l' esecuzione si fermava quando si arrivava a quel punto.
Ora non so come si potrebbe fare, tra l' altro mi sono appena svegliato e non è che tanto ci sono, ma se arrivo ad una conclusione ti dico...
Io mi chiedo chi ca**o me lo fa fare...

#4
merlincaf

merlincaf

    Advanced Member

  • Utente
  • StellaStellaStella
  • 434 Messaggi:
puoi utilizzare la proprietà scope dei bean. Informati in merito:

http://java.sun.com/... ... .fm14.html

Ciao
I talk to the wind.
You are my satellite of LOVE!

#5
zxzxasas

zxzxasas

    Advanced Member

  • Utente
  • StellaStellaStella
  • 789 Messaggi:
Merlincaf, scusami ma non capisco...
Come usando una qualsiasi delle 4 opzioni in scope riesci a regolamentare gli accessi alle pagine senza fare un if()?
Io mi chiedo chi ca**o me lo fa fare...

#6
merlincaf

merlincaf

    Advanced Member

  • Utente
  • StellaStellaStella
  • 434 Messaggi:
scusami, ma non avevo ben capito la richiesta...
Cmq nemmeno io ho capito come realizzare sta cosa con le proprietà dei bean...
Alcune alternative sono:

1) Forse si devono usare dei speciali tag come quelli definiti dalla libreria JSTL: http://java.sun.com/products/jsp/jstl/

2) Oppure si potrebbe usare le servlet, in particolare le classi Filter, e tramite un file xml di configurazione (in genere chiamato web.xml) definire su quali pagine deve agire il filtro in questo modo si inserisce l'if solo in questa classe filter e non nelle pagine...Con questo metodo nella pagina non bisogna definire alcun controllo viene gestito tutto da tomcat che grazie al file di configurazione applica o meno il filtro. Una piccola guida in italiano la trovi qua: http://www.javastaff... ... cle&id=161
I talk to the wind.
You are my satellite of LOVE!

#7
ub_88

ub_88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 91 Messaggi:
Non ci ho capito molto, ma è pur sempre una domanda fatta ad un orale, quindi credo che la soluzione non sia così complessa.

La cosa più semplice che mi viene in mente è fare un controllo in java, e con le getProperty prendere l'url della pagina giusta, direttamente cablata nel java stesso. Una cosa del tipo:

public String getControllaUtente(){
String url;
if(isLoggato){
url = "url corretta.html";
}else{
url ="url di una pagina che segnala il permesso violato.html";
}
return url;
}

E poi gestire con una forward o non so che altro.

Non ho ancora preparato l'esame, quindi non riesco ad essere più preciso. Cmq tale soluzione mi sembra troppo "sporca".

#8
goodhelp88

goodhelp88

    Advanced Member

  • Utente
  • StellaStellaStella
  • 308 Messaggi:
Ragazzi, la chiave della risposta potrebbe essere l'utilizzo dell'oggetto implicito Session che gestisce appunto le informazioni a livello di sessione, relative all'utente a partire dal suo ingresso fino alla sua uscita. In questo modo possiamo creare applicaz che riconoscono l'utente nelle varie pagine del sito senza inserire controlli con script java.
Ci sono 2 cose infinite nell'universo: l'universo e la stupidità umana, e della prima non ne sono sicuro. (Albert Einstein)

#9
Losaitu

Losaitu

    Advanced Member

  • Utente
  • StellaStellaStella
  • 348 Messaggi:

Ragazzi, la chiave della risposta potrebbe essere l'utilizzo dell'oggetto implicito Session che gestisce appunto le informazioni a livello di sessione, relative all'utente a partire dal suo ingresso fino alla sua uscita. In questo modo possiamo creare applicaz che riconoscono l'utente nelle varie pagine del sito senza inserire controlli con script java.

Secondo me come dici tu è giusto ma non risponde alla domanda e comunque resta il fatto che bisognerebbe usare codice Java.
Una possibile soluzione che ho pensato e che ho provato e sembra funzionare è:
-usare un metodo/proprietà nel bean "utente" - getIsLogged che controlla se l'utente è loggato, se l'utente non è loggato lancia un'eccezione, e un metodo/proprietà - getLogin se l'utente non è presente lancia un'eccezione
-la pagina "login.jsp" che ha all'inizio la direttiva
<%@ page errorPage="error.jsp?error=Dati Errati" %>
-la pagina "cheneso.jsp" con all'inizio al direttiva
<%@ page errorPage="error.jsp?error=Permessi Insufficienti" %>
-la pagina error.jsp fatta così


<%@ page isErrorPage="true" %>


Errore



<%= request.getParameter("error") %>


C'e stato un errore






ps: ho fatto un esempio semplice senza contare il fatto che c'è distinsione tra amministratore e utente però in linea di massima dovrebbe esser così, il request.getParameter nella errorPage si dovrebbe rimpiazzare ma può essere sostituito in un miliardo di modi

Ditemi che ne pensate eventualmente allego i file che ho usato...
Who shot ya?

#10
Flower

Flower

    Advanced Member

  • Utente
  • StellaStellaStella
  • 155 Messaggi:
Secondo Peppeweb..una soluzione potrebbe essere questa:

public string getAut(){
stringa = niente
if(ruolo == sconosciuto )
response.sendredi.....
else
stringa = quello che vuoi
return stringa }

in pratica la response.send... la si chiama nella proprietà del bean e non nella pagina...
fatemi sapere cosa ne pensate.
---->Flower<----

#11
Losaitu

Losaitu

    Advanced Member

  • Utente
  • StellaStellaStella
  • 348 Messaggi:
Scusa flower la response.sendredirect sarebbe il metodo per fare il reindirizzamento automatico? Quindi gli si deve dare l'URL dove vogliamo essere reindirizzati?
Who shot ya?

#12
Flower

Flower

    Advanced Member

  • Utente
  • StellaStellaStella
  • 155 Messaggi:
sisi...response.sendRedirect("pagina")...noi l'abbiamo utilizzata per il contest di quest'anno però nello scriplet, quindi all'interno della pagina jsp facevamo un controllo con un if e poi se l'utente non era loggato utilizzavamo questa istruzione
---->Flower<----

#13
Losaitu

Losaitu

    Advanced Member

  • Utente
  • StellaStellaStella
  • 348 Messaggi:
Io ora vorrei capire una cosa, forse tu sai spiegarlo... qual'è la prassi quando si sviluppa un'applicazione web in jsp? Cioè il bean chi lo fa? Il programmatore Java, giusto? Ma il suddetto programmatore Java deve fare un bean a posta per me che faccio il sito o deve fare un bean di carattere generale che poi il programmatore jsp configura usando l'interfaccia ( cioè le proprietà )? Questa domanda mi è venuta durante lo svolgimento del contest perché ank'io avevo pensato a una cosa simile a quella che hai postato tu ( nn ricordo se era per il login ), fatto sta che se io sono il programmatore Java e devo fare il bean di carattere generale devo poter far scegliere a te programmatore jsp in che pagina devi essere reindirizzato. Oppure funziona che ( come direbbe Pino la lavatrice ) "tu mi dici quello che devo fare e io lo faccio" :asd: Ovviamente nel contest ci siamo messi d'accordo xke lo sviluppo del bean e delle pagine in jsp avveniva in contemporanea ma nel caso generale devo sempre assumere 1 programmatore Java che mi fa i Bean ad-hoc?
Spero di essermi espresso chiaramente perché questa penso sia na cosa importante che io personalmente non ho capito dal corso.
Who shot ya?

#14
Flower

Flower

    Advanced Member

  • Utente
  • StellaStellaStella
  • 155 Messaggi:
Su questo hai ragione, in realtà quando si parla di separare i compiti del web designer e del programmatore java, si pensa al fatto che dentro le pagine jsp bisognerebbe utilizzare solo azioni, quindi niente codice java e quindi niente scriplet. Il problema come dici tu è che nel bean inserisco una redirect con una pagina specifica quindi c'è qualche problema. Una soluzione che mi viene in mente ora è quella di mettere una proprietà del bean di tipo stringa che il programmatore inserisce come argomento di sendRedirect. Ma non credo che sia una cosa pulita.

Io penso che quando si parla di separare i compiti del web disegner e del programmatore si parla sempre all'interno di un'azienda dove la progettazione viene divisa tra persone, ognuna della quale è specializzata in un compito. quindi credo che al web designer viene dato l'elenco delle classi che può utilizzare.
Penso cmq che la soluzione proposta da me (cioè da PEppeWeb) rispetti la domanda, ma in realtà io potrei avere il bisogno di un reindirizzamento a pagine diverse in base a dove si tenta di accedere. Credo proprio che esista una soluzione alternativa migliore che per ora nessuno conosce.
---->Flower<----

#15
nghuit

nghuit

    Advanced Member

  • Utente
  • StellaStellaStella
  • 333 Messaggi:
Ragazzi sono stato una delle vittime di questa strana domanda. Purtroppo una risposta non ce l'ho ancora, però posso dirvi che nel dibattito con il professore Conte (l'inventore del quesito) ho percepito delle indicazioni su come si potrebbe procedere.
Innanzitutto credo che sia più semplice delle soluzioni qui proposte, perché il prof mi disse che si trattava di sfruttare opportunamente le proprietà dell'azione jsP:useBean.
Come io stessi osservai, inoltre, l'unica cosa da poter fare a questo punto è sfruttare il fatto che si può inserire del codice interno:

...
...
...

che viene eseguito solo se il bean viene creato (ovvero se non esisteva già). La mia tesi fu infatti confermata dal prof. Tuttavia non capisco il modo in cui questa tecnica possa essere usata per fare quello che vuole la domanda; di sicuro lo scope da mettere è session.
“L'uomo può credere all'impossibile, non crederà mai all'improbabile.”
"Se si ha uno scopo da raggiungere tutto l'universo si adopera per il suo raggiungimento."

#16
Ciroxs

Ciroxs

    Newbie

  • Utente
  • StellaStellaStella
  • 1568 Messaggi:
Ci avevo pensato anche io... inserire una forward in tutte le pagine all'interno di jsp:useBean... se il bean viene creato, allora vuol dire che non sei già loggato e la forward si attiva e ti manda alla pagina di login.... Se invece ti logghi prima, quando andrai in qualche pagina il bean è già creato e quindi la forward non viene vista...

Solo che questo metodo funziona solo al primo colpo... se io arrivo alla pagina di login ma non mi loggo e vado direttamente su un'altra pagina, mi farà accedere xk il bean già è creato e la forward non si attiva, nonostante io non sia loggato....
Ed inoltre tale soluzione contrastava con le specifiche del progetto, che prevedevano che la home potesse essere vista da tutti... con questa soluzione anche quando apri la home la forward ti manda alla pagina di login automaticamente...

ZKU4w.png


#17
nghuit

nghuit

    Advanced Member

  • Utente
  • StellaStellaStella
  • 333 Messaggi:

Solo che questo metodo funziona solo al primo colpo... se io arrivo alla pagina di login ma non mi loggo e vado direttamente su un'altra pagina, mi farà accedere xk il bean già è creato e la forward non si attiva, nonostante io non sia loggato....

ecco il motivo per cui avevo scartato l'ipotesi in prima battuta preferendogli lo scriptlet con l'if...
“L'uomo può credere all'impossibile, non crederà mai all'improbabile.”
"Se si ha uno scopo da raggiungere tutto l'universo si adopera per il suo raggiungimento."

#18
aRbok

aRbok

    Advanced Member

  • Utente
  • StellaStellaStella
  • 1517 Messaggi:
Credo che il nostro buon professore si riferisse all'utilizzo dell'oggetto Session mai visto...... In ogni caso sarebbero serviti degli scriptlet per impostare l'oggetto......mah.... :aufsmaul:
Fai ciò che vuoi : sarà tutta la Legge. Amore è la Legge, Amore sotto la Volontà.

#19
Ciroxs

Ciroxs

    Newbie

  • Utente
  • StellaStellaStella
  • 1568 Messaggi:

Credo che il nostro buon professore si riferisse all'utilizzo dell'oggetto Session mai visto...... In ogni caso sarebbero serviti degli scriptlet per impostare l'oggetto......mah.... :aufsmaul:

Ho pensato anche a questo caso, ma non so come fare.... questi oggetti hanno proprietà per settargli attributi... tali oggetti inoltre possono essere usati con le setProperty e getProperty... quindi si poteva settare una proprietà in login e nelle altre pagine si faceva la get della proprietà... ma anche in tal caso, serve sempre quel cavolo di scriptlet, sia per impostare sia per fare il controllo sulla get della proprietà...

ZKU4w.png





Leggono questa discussione 0 utenti

0 utenti, 0 ospiti, 0 utenti anonimi