「Struts2」ServletActionContextクラスでセッション情報を取得する
説明
1. HttpServletRequest、HttpSessionの取得
ServletActionContext.getContext().getSession();
2.public static String format(String format,Object… args)
指定された書式の文字列と引数を使って、書式付き文字列を返します。
3.Set<Map.Entry<K,V>> entrySet()
このマップに含まれるマッピングの Set ビューを返します。
セットはマップと連動しているので、マップに対する変更はセットに反映され、
また、セットに対する変更はマップに反映されます。
サンプルコード
package com.arkgame.study;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class SessionInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory.getLog(SessionInterceptor.class);
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> mp = ServletActionContext.getContext().getSession();
log.debug("session begin");
for (Entry<String, Object> ent : mp.entrySet()) {
log.debug("before invoke:" + String.format(ent.getKey(), ent.getValue()));
}
String result = invocation.invoke();
for (Entry<String, Object> ent : mp.entrySet()) {
log.debug("after invoke:" + String.format(ent.getKey(), ent.getValue()));
}
log.debug("session end");
return result;
}
}
package com.arkgame.study;
import java.util.Map;
import java.util.Map.Entry;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.ServletActionContext;
import com.opensymphony.xwork2.ActionInvocation;
import com.opensymphony.xwork2.interceptor.AbstractInterceptor;
public class SessionInterceptor extends AbstractInterceptor {
private static final long serialVersionUID = 1L;
private static final Log log = LogFactory.getLog(SessionInterceptor.class);
@Override
public String intercept(ActionInvocation invocation) throws Exception {
Map<String, Object> mp = ServletActionContext.getContext().getSession();
log.debug("session begin");
for (Entry<String, Object> ent : mp.entrySet()) {
log.debug("before invoke:" + String.format(ent.getKey(), ent.getValue()));
}
String result = invocation.invoke();
for (Entry<String, Object> ent : mp.entrySet()) {
log.debug("after invoke:" + String.format(ent.getKey(), ent.getValue()));
}
log.debug("session end");
return result;
}
}
package com.arkgame.study; import java.util.Map; import java.util.Map.Entry; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.ServletActionContext; import com.opensymphony.xwork2.ActionInvocation; import com.opensymphony.xwork2.interceptor.AbstractInterceptor; public class SessionInterceptor extends AbstractInterceptor { private static final long serialVersionUID = 1L; private static final Log log = LogFactory.getLog(SessionInterceptor.class); @Override public String intercept(ActionInvocation invocation) throws Exception { Map<String, Object> mp = ServletActionContext.getContext().getSession(); log.debug("session begin"); for (Entry<String, Object> ent : mp.entrySet()) { log.debug("before invoke:" + String.format(ent.getKey(), ent.getValue())); } String result = invocation.invoke(); for (Entry<String, Object> ent : mp.entrySet()) { log.debug("after invoke:" + String.format(ent.getKey(), ent.getValue())); } log.debug("session end"); return result; } }