struts2學習筆記(二)—— 獲取登入資訊及計算線上人數
阿新 • • 發佈:2019-01-01
package com.lewa.action; import java.util.Map; import org.apache.struts2.dispatcher.SessionMap; import org.apache.struts2.interceptor.ApplicationAware; import org.apache.struts2.interceptor.SessionAware; public class LoginAction implements SessionAware,ApplicationAware{ private static final String SUCCESS = "success"; private static final String LOGOUT="logout"; //與表單域中的屬性相對應 private String username; //JavaBean-style public void setUsername(String username){ this.username=username; } public String execute(){ //將使用者資訊儲存到Session中 //1.獲取Session,通過SessionAware介面實現 //2.獲取登入資訊 //3.把登入資訊儲存到Session中 session.put("username", username); //線上人數 +1 //1.獲取當前線上人數,從Application中獲取 Integer count=(Integer) application.get("count"); if(count==null){ count=0; } //使當前線上人數 +1 count++; application.put("count", count); return SUCCESS; } public String Logout(){ //線上人數 -1 //1.獲取線上人數 Integer count=(Integer) application.get("count"); //2.在線上人數>0的情況下 -1 if(count!=null && count!=0){ count--; application.put("count", count); } //使Session失效 ((SessionMap)session).invalidate(); return LOGOUT; } private Map<String,Object> session; @Override public void setSession(Map<String, Object> session) { // TODO Auto-generated method stub this.session = session; } private Map<String,Object> application; @Override public void setApplication(Map<String, Object> application) { // TODO Auto-generated method stub this.application = application; } }
4.在struts.xml中配置Action