获得HttpServletRequest 和HttpSession对象
package org.jeecgframework.core.util; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; /** * @ClassName: ContextHolderUtils * @Description: TODO(上下文工具类) * @author 张代浩 * @date 2012-12-15 下午11:27:39 * */ public class ContextHolderUtils { /** * SpringMvc下获取request * * @return */ public static HttpServletRequest getRequest() { HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); return request; } /** * SpringMvc下获取session * * @return */ public static HttpSession getSession() { HttpServletRequest request = getRequest(); String tempSessionId = request.getParameter("sessionId"); HttpSession session = request.getSession(); String sessionId = session.getId(); if(StringUtil.isNotEmpty(tempSessionId) && !tempSessionId.equals(sessionId)){ sessionId = tempSessionId; if(sessionMap.containsKey(sessionId)){ session = sessionMap.get(sessionId); } } if(!sessionMap.containsKey(sessionId)){ sessionMap.put(sessionId, session); } return session; } private static final Map<String, HttpSession> sessionMap = new HashMap<String, HttpSession>(); public static HttpSession getSession(String sessionId){ HttpSession session = sessionMap.get(sessionId); return session == null ? getSession() : session; } public static void removeSession(String sessionId){ if(sessionMap.containsKey(sessionId)){ sessionMap.remove(sessionId); } } }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。
- 上一篇: CC++和Java 的区别(特别是在内存分配方面)
- 下一篇: SQL语句:统计男女的人数