我正在處理一個java webapp,我需要根據用戶登錄id從數據庫訪問記錄。成功登錄後,在會話變量中設置登錄詳細信息。在servlet外部訪問會話變量
我想要做的就是從proj_recs這樣的
選擇*其中USER_ID = USER_ID(從Session)
現在,我通過用戶名作爲參數,但我相信這不是一個好實踐。有沒有更好的方式訪問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;
}
}
在數據層包
public Accrual getAccruals(String accrualID,String userid) throws AccrualNotFoundException{
String sql = Select * from db_acc where acc_id= accrualID and user_id=userid;
}
的問題是我要修改我的用戶id的所有方法。有沒有一種方法可以將用戶的詳細信息設置爲某個靜態類,並在不修改方法簽名的情況下訪問應用程序中所需的詳細信息?但我相信靜態類是不同用戶請求之間的共享。
你想在哪裏訪問會話變量?在客戶端? JSP? – fajarkoe
你能詳細說明一下使用代碼示例嗎? –
在應用程序的數據層 – SRK