java web Session 工具类 (spring 框架)

1. 创建工具类

package com.ljw.util;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

/**
 * Session 常用工具类 
 *
 */
public class SessionUtil {
	
	/**
	 * 获取request
	 * @return
	 */
	public static HttpServletRequest getRequest(){  
		ServletRequestAttributes requestAttributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();  
		return requestAttributes==null? null : requestAttributes.getRequest();  
	}
	
	/**
	 * 获取session
	 * @return
	 */
	public static HttpSession getSession(){  
		return getRequest().getSession(false);  
	}  
	
	/**
	 * 获取真实路径
	 * @return
	 */
	public static String getRealRootPath(){  
		return getRequest().getServletContext().getRealPath("/");  
	}  
	
	/**
	 * 获取ip
	 * @return
	 */
	public static String getIp() {  
		ServletRequestAttributes servletRequestAttributes = (ServletRequestAttributes) RequestContextHolder  
				.getRequestAttributes();  
		if(servletRequestAttributes!=null){  
			HttpServletRequest request = servletRequestAttributes.getRequest();  
			return request.getRemoteAddr();  
		}  
		return null;  
	}  
	
	/**
	 * 获取session中的Attribute
	 * @param name
	 * @return
	 */
	public static Object getSessionAttribute(String name){  
		HttpServletRequest request = getRequest();  
		return request == null?null:request.getSession().getAttribute(name);  
	}  
	
	/**
	 * 设置session的Attribute
	 * @param name
	 * @param value
	 */
	public static void setSessionAttribute(String name,Object value){  
		HttpServletRequest request = getRequest();  
		if(request!=null){  
			request.getSession().setAttribute(name, value);   
		}  
	}  
	
	/**
	 * 获取request中的Attribute
	 * @param name
	 * @return
	 */
	public static Object getRequestAttribute(String name){  
		HttpServletRequest request = getRequest();  
		return request == null?null:request.getAttribute(name);  
	}  

	/**
	 * 设置request的Attribute
	 * @param name
	 * @param value
	 */
	public static void setRequestAttribute(String name,Object value){  
		HttpServletRequest request = getRequest();  
		if(request!=null){  
			request.setAttribute(name, value);    
		}  
	}  
	
	/**
	 * 获取上下文path
	 * @return
	 */
	public static String getContextPath() {  
		return getRequest().getContextPath();  
	}  
	
	/**
	 * 删除session中的Attribute
	 * @param name
	 */
	public static void removeSessionAttribute(String name) {  
		getRequest().getSession().removeAttribute(name);  
	}  

}

2. 调用

SessionUtil.getSessionAttribute("userid"); // 获取 Session 中的 userid
SessionUtil.setSessionAttribute("userid", 2); // 设置 Session 中的 userid
SessionUtil.removeSessionAttribute("userid"); // 移除 Session 中的 userid
HttpSession session = SessionUtil.getSession(); // 获取 Session 对象
HttpServletRequest request = SessionUtil.getRequest(); // 获取 request 对象
// ..... 还有一些方法,根据需要调用

 

你可能感兴趣的:(Java,SpringMVC)