📄 listaction.java
字号:
package org.opencustomer.application.web.module.system.user.manage.sessionmonitor;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Date;
import java.util.Set;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.commons.lang.builder.CompareToBuilder;
import org.apache.log4j.Logger;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.opencustomer.application.db.vo.system.UserVO;
import org.opencustomer.application.web.Globals;
import org.opencustomer.application.web.struts.Action;
import org.opencustomer.web.util.SessionMonitor;
public class ListAction extends Action<ListForm>
{
private final static Logger log = Logger.getLogger(ListAction.class);
@Override
public ActionForward execute(ActionMapping mapping, ListForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException
{
Set<HttpSession> sessions = SessionMonitor.getSessions();
if (log.isDebugEnabled())
log.debug("found " + sessions.size() + " active sessions");
ArrayList<SessionInfoBean> list = new ArrayList<SessionInfoBean>();
for (HttpSession session : sessions)
{
SessionMonitor monitor = (SessionMonitor) session.getAttribute(Globals.SESSION_MONITOR_KEY);
SessionInfoBean bean = new SessionInfoBean();
bean.setLoginTime(new Date(monitor.getLogin()));
bean.setLastAccessTime(new Date(monitor.getLastAccess()));
bean.setInactiveTime(System.currentTimeMillis() - monitor.getLastAccess());
UserVO user = (UserVO) session.getAttribute(Globals.USER_KEY);
if (user != null)
bean.setUsername(user.getUserName());
list.add(bean);
}
Collections.sort(list, new Comparator<SessionInfoBean>() {
public int compare(SessionInfoBean bean1, SessionInfoBean bean2)
{
CompareToBuilder builder = new CompareToBuilder();
builder.append(bean1.getUsername(), bean2.getUsername());
builder.append(bean2.getLoginTime(), bean1.getLoginTime());
return builder.toComparison();
}
});
request.setAttribute("list", list);
SessionStatisticBean statistic = new SessionStatisticBean();
for (SessionInfoBean bean : list)
statistic.add(bean.getInactiveTime() / 1000);
request.setAttribute("statistic", statistic);
return mapping.getInputForward();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -