Ich arbeite an einer Java-Webanwendung, in der ich basierend auf der Benutzeranmelde-ID auf Datensätze aus der Datenbank zugreifen muss. Nach erfolgreicher Anmeldung habe ich die Anmeldedaten in der Sitzungsvariablen festgelegt.Zugriff auf Sitzungsvariablen außerhalb des Servlets
ich tun möchte, ist so etwas wie dieses
Select * from proj_recs wo user_id = Benutzer-ID (von Sitzung)
Im Moment ist Benutzername als Parameter bin vorbei, aber ich glaube, es ist nicht gut trainieren. Gibt es eine bessere Möglichkeit, auf Sitzungsvariablen außerhalb von Servlets zuzugreifen?
Servlets
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;
}
}
In der Datenschichtpaket
public Accrual getAccruals(String accrualID,String userid) throws AccrualNotFoundException{
String sql = Select * from db_acc where acc_id= accrualID and user_id=userid;
}
Das Problem ist, ich habe alle mit userid meine Methoden zu ändern. Gibt es eine Möglichkeit, Benutzerdetails in eine statische Klasse zu setzen und auf die Details zuzugreifen, wo immer ich in der Anwendung möchte, ohne die Methodensignatur zu ändern? Aber ich glaube, dass statische Klassen zwischen verschiedenen Benutzeranforderungen geteilt werden.
Wo möchten Sie auf die Sitzungsvariablen zugreifen? Beim Kunden? JSP? – fajarkoe
Können Sie mit einem Codebeispiel arbeiten? –
In der Datenschicht der Anwendung – SRK