⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 preparesessioninterceptor.java

📁 一个成熟的论坛
💻 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 + -