📄 preparesessioninterceptor.java
字号:
package com.singnet.interpetor;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.webwork.ServletActionContext;
import com.opensymphony.xwork.ActionInvocation;
import com.opensymphony.xwork.interceptor.Interceptor;
import com.singnet.bean.NsUser;
import com.singnet.data.Constants;
import com.singnet.data.OnlineBean;
import com.singnet.dwr.INsUserProxy;
import com.singnet.util.CookieUtil;
import com.singnet.util.TimeComputeUtils;
public class PrepareSessionInterceptor implements Interceptor
{
private INsUserProxy nsUserProxy;
public void destroy()
{
// TODO Auto-generated method stub
}
public void init()
{
// TODO Auto-generated method stub
}
@SuppressWarnings("unchecked")
public String intercept(ActionInvocation invocation) throws Exception
{
// TODO Auto-generated method stub
Map session = invocation.getInvocationContext().getSession();
if(session.get(Constants.SESSION_UID) == null){
HttpServletRequest req = ServletActionContext.getRequest();
String uid = CookieUtil.getCookieValue(req, "userID");
if(uid != null) {
System.out.println("User ID: " + uid);
session.put(Constants.SESSION_UID, uid);
NsUser user = nsUserProxy.loadUser(uid);
session.put(Constants.SESSION_UNAME, user.getUserName());
nsUserProxy.initUserInfo(user);
if(!TimeComputeUtils.isAlreadyOnline(uid)) {
OnlineBean olb = new OnlineBean();
olb.setUserID(uid);
olb.setStartTime(System.currentTimeMillis());
TimeComputeUtils.ONLINE_LIST.add(olb);
System.out.println("用户ID为" + uid + "已经处于在线状态");
}
}
else {
System.out.println("无法识别的错误!");
}
}
return invocation.invoke();
}
public void setNsUserProxy(INsUserProxy nsUserProxy)
{
this.nsUserProxy = nsUserProxy;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -