[英]How to check if User Logged in or Not using Session Struts 2
我正在研究struts2。 我使用以下代碼檢查用戶是否已登錄
public String execute()
{
HttpServletRequest request = ServletActionContext.getRequest();
HttpSession session = request.getSession(false);
System.out.println(session);
if(session == null)
{
return "UserLoggedIn";
}
return "success";
}
當我第一次在控制台中訪問print會話值時,它會打印null。 但是,當我通過刷新頁面來做同樣的事情時,它會打印出如下內容,最終使用戶無需登錄即可訪問頁面。
org.apache.catalina.session.StandardSessionFacade@16f21478
如何執行會話檢查以查看用戶是否登錄。
非常感謝你。
好吧,如果您只是出於學習目的而這樣做,我相信最好是在用戶登錄后將變量存儲在session
中。
說,使用單擊登錄按鈕時,如果用戶提供的憑據正確,則可以將變量(已登錄)存儲到會話中,單擊注銷按鈕可以清除此變量。
但是,您還需要注意一些其他事項。
最好使用Struts2提供的SessionAware
接口,這是將Session作為Map插入到您的操作類中的一種干凈方法。
public class YouAction implements SessionAware{
private Map<String, Object> sessionMap;
@Override
public void setSession(Map<String, Object> sessionMap) {
this.sessionMap = sessionMap;
}
}
通過上述方法,您可以獨立於HTTP對象的直接依賴項進行操作,這對單元測試很有幫助。
如果可以的話,可以使用Spring安全性,這是處理用戶身份驗證和授權過程的更好的方法。
用戶登錄時在會話中放置一個變量。注銷時,從會話中清除該變量。
然后在session中檢查該變量。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.