com.biz.common.http.RequestUtils Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of biz-all Show documentation
Show all versions of biz-all Show documentation
BizX 是一个灵活而高效的业务开发框架, 其中也有很多为业务开发所需要的工具类的提供。
The newest version!
package com.biz.common.http;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;
/**
* Request工具类,用于获取当前 HTTP 请求的相关信息。
* 该类提供了方便的方法来获取当前线程绑定的 {@link HttpServletRequest} 对象。
*
* 示例代码:
* {@code
* HttpServletRequest request = RequestUtils.getHttpServletRequest();
* String clientIp = request.getRemoteAddr();
* }
*
* 该工具类使用了 Spring 提供的 {@link RequestContextHolder} 来获取当前请求上下文。
*
* 注意:该工具类依赖于 Spring Web 环境,应确保在 Spring 应用上下文中使用。
*
* @author francis
* @version 1.0.1
* @since 1.0.1
*/
@Slf4j
public class RequestUtils {
/**
* 获取当前线程绑定的 {@link HttpServletRequest} 对象。
*
* @return 当前的 {@link HttpServletRequest} 对象
*/
public static HttpServletRequest getHttpServletRequest() {
return getServletRequestAttributes().getRequest();
}
/**
* 获取当前线程绑定的 {@link ServletRequestAttributes} 对象。
*
* @return 当前的 {@link ServletRequestAttributes} 对象
* @throws IllegalStateException 如果当前线程没有绑定 {@link ServletRequestAttributes}
*/
public static ServletRequestAttributes getServletRequestAttributes() {
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
if (attributes == null) {
throw new IllegalStateException("No request attributes found for current thread");
}
return attributes;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy