package cn.dreampie.common.web.thread; import cn.dreampie.common.config.ReTurnType; import com.jfinal.log.Logger; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /** * Created by wangrenhui on 13-12-31. */ public class ThreadLocalUtil { protected static final Logger logger = Logger.getLogger(ThreadLocalUtil.class); // request线程对象 private static ThreadLocal<HttpServletRequest> requestLocal = new ThreadLocal<HttpServletRequest>(); // response线程对象 private static ThreadLocal<HttpServletResponse> responseLocal = new ThreadLocal<HttpServletResponse>(); public static void init(HttpServletRequest request, HttpServletResponse response) { setRequest(request); setResponse(response); } public static HttpServletRequest getRequest() { return (HttpServletRequest) requestLocal.get(); } public static void setRequest(HttpServletRequest request) { requestLocal.set(request); } public static HttpServletResponse getResponse() { return (HttpServletResponse) responseLocal.get(); } public static void setResponse(HttpServletResponse response) { responseLocal.set(response); } public static HttpSession getSession() { if (requestLocal.get() != null) { return (HttpSession) ((HttpServletRequest) requestLocal.get()) .getSession(); } else { return null; } } public static ServletContext getServletContex() { if (requestLocal.get() != null) { return (ServletContext) ((HttpServletRequest) requestLocal.get()) .getServletContext(); } else { return null; } } /** * 获取返回值类型 * * @return */ public static ReTurnType returnType() { HttpServletRequest request = getRequest(); if (request != null) { String header = request.getHeader("X-Requested-With"); if ((("XMLHttpRequest").equalsIgnoreCase(header) || ("json").equalsIgnoreCase(request.getParameter("returnType")))) {// 如果是ajax请求响应头会有,x-requested-with; // response.setHeader("sessionstatus", "timeout"); return ReTurnType.JSON; } } return ReTurnType.PAGE; } public static boolean isAjax() { HttpServletRequest request = getRequest(); if (request != null && ("XMLHttpRequest").equalsIgnoreCase(request.getHeader("X-Requested-With"))) { return true; } return false; } public static boolean isJson() { if (returnType() == ReTurnType.JSON) { return true; } return false; } }