PDA

View Full Version : [JSP]Filtrare operazioni tra vari utenti


johnny90
20-12-2010, 19:50
ciao a tutti,mi sto esercitando a svolgere delle applicazioni con jsp e jstl per un esame ke dovrò svolgere tra un mese,uso tomcat come web server,il mio problema è il seguente,ho implementato un piccolo sito ke permette di accedere ai blog di alcuni utenti ke sono registrati al sito(senza l'uso dei database,ma gli utenti vengono aggiunti automaticamente all'avvio dal costruttore dell'archivio,quindi sono sempre gli stessi) ,il sito permette a utenti non loggati di visionare i blog di tutti gli utenti ma nn permette di cliccare sui bottoni "mi piace" e roba varia(tipo facebook),se invece l'utente si logga e viene riconosciuto,può accedere al prorpio blog e scrivere dei post e inoltre può cliccare su "mi piace" degli altri post di altri utenti,il mio problema è ke nn so come far si ke i tasti "mi piace" vengano oscurati per gli utenti nn loggati,avevo pensato all'uso dei filtri ma nn so come agire,avevo pensato di far partire il sito con una pagina in cui veniva kiesto di accedere come utente loggato o non,poi nn so come fare per oscurare delle operazioni ad alcuni utenti sempre sulla stessa pagina jsp...spero in un vostro aiuto..ciao:help: :help: :help: ;)

gokan
20-12-2010, 20:16
Ciao, puoi utilizzare l'interfaccia HttpServletRequest
http://download.oracle.com/docs/cd/E17802_01/products/products/servlet/2.3/javadoc/javax/servlet/http/HttpServletRequest.html

Essa mette a disposizione un metodo
boolean isUserInRole(java.lang.String role)

Esso ti permette di verificare se un utente appartiene ad un gruppo, in questo caso puoi agire sul pulsante e visualizzarlo in base al valore di ritorno di questo metodo.
Ad esempio, nella jsp potresti fare

<c:when test="${administrator}">
... qui in mezzo potresti mettere il pulsante che vuoi o non vuoi mostrare
</c:when>

dove nella jsp stessa oppure nella servlet puoi fare:

request.setAttribute("administrator",Boolean.valueOf(request.isUserInRole("roleNameAdmin")));

Ciao

johnny90
20-12-2010, 20:35
Ciao, puoi utilizzare l'interfaccia HttpServletRequest
http://download.oracle.com/docs/cd/E17802_01/products/products/servlet/2.3/javadoc/javax/servlet/http/HttpServletRequest.html

Essa mette a disposizione un metodo
boolean isUserInRole(java.lang.String role)

Esso ti permette di verificare se un utente appartiene ad un gruppo, in questo caso puoi agire sul pulsante e visualizzarlo in base al valore di ritorno di questo metodo.
Ad esempio, nella jsp potresti fare

<c:when test="${administrator}">
... qui in mezzo potresti mettere il pulsante che vuoi o non vuoi mostrare
</c:when>

dove nella jsp stessa oppure nella servlet puoi fare:

request.setAttribute("administrator",Boolean.valueOf(request.isUserInRole("roleNameAdmin")));

Ciao

ciao,grazie per la risposta...io ho fatto una classe login ke controlla le credenziali ke vengono passate tramite l'oggetto request dai vari form della pagina jsp,dopo ke sono andati a buon fine i controlli su nome e password devo inserire request.setAttribute("administrator",Boolean.valueOf(request.isUserInRole("roleNameAdmin")));
???

gokan
22-12-2010, 09:35
Ciao, il setAttribute() lo devi fare quando in una certa jsp ti serve appunto la varibile administrator per mostrare o meno un pulsante.

Mi immagino che tu abbia :
1. una jsp con username e password e pulsante di submit
2. una ulteriore jsp che debba mostrare un pulsante ed in questa fase filtrare il pulsante

Tra il punto 1 ed il 2 devi inserire il tuo setAttribute su una servlet o sulla stessa jsp