有时候我们开发时需要频繁操作request,session对象,可能有些人就会在controller层去写HttpServletRequest入参用来获取request对象,这样写的话如果service层也用的话则又需要层层传入,很是麻烦,下面给大家提供一个获取request的工具类,本质是因为多线程情况下每个线程都有独有的request和session,所以取request一定是取的当前线程的request,不会用冲突
/**
* requestContext上下文工具类
*/
public class RequestContextHolderUtil {
/**
* 获取request
* @return
*/
public static HttpServletRequest getRequest() {
return getRequestAttributes().getRequest();
}
public static HttpServletResponse getResponse() {
return getRequestAttributes().getResponse();
}
public static HttpSession getSession() {
return getRequest().getSession();
}
public static ServletRequestAttributes getRequestAttributes() {
return ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes());
}
public static ServletContext getServletContext() {
return ContextLoader.getCurrentWebApplicationContext().getServletContext();
}
}