Sto lavorando a una webapp java in cui ho bisogno di accedere ai record dal database in base all'ID di accesso dell'utente. Impostare i dettagli di accesso nella variabile di sessione dopo il login riuscito.Accesso alle variabili di sessione al di fuori del servlet
che voglio fare è qualcosa di simile
Select * from proj_recs dove user_id = id_utente (dalla sessione)
In questo momento sto passando nome utente come parametro, ma credo che non è una buona pratica. Esiste un modo migliore per accedere alle variabili di sessione al di fuori del servlet?
Servlet
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
User user = (User) request.getSession().getAttribute("userInfo");
System.out.println(user);
if(user != null){
Gson gson = new Gson();
returnJsonResponse(response,gson.toJson(user));
return;
}
}
Nel pacchetto dati strato
public Accrual getAccruals(String accrualID,String userid) throws AccrualNotFoundException{
String sql = Select * from db_acc where acc_id= accrualID and user_id=userid;
}
Il problema è che ho di modificare tutti i miei metodi con userid. C'è un modo per impostare i dettagli utente in qualche classe statica e accedere ai dettagli dove voglio nell'applicazione senza modificare la firma del metodo? Ma credo che le classi statiche siano condivise tra le diverse richieste degli utenti.
Dove si desidera accedere alle variabili di sessione? Al cliente? JSP? – fajarkoe
Potresti elaborare usando un esempio di codice? –
Nel livello dati dell'applicazione – SRK