一、使用背景
在Spring框架中, 你可以直接使用注解@Autowired来注入一个HttpServletRequest,只要在被spring管理的类中,然后你就可以从request的headers中获取到来访的请求客户IP地址。
二、具体获取IP代码
WebUtils.java:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.servlet.http.HttpServletRequest;
@Component
public class WebUtils {
private HttpServletRequest request;
@Autowired
public void setRequest(HttpServletRequest request) {
this.request = request;
}
private static String getClientIp() {
String remoteAddr = "";
if (request != null) {
remoteAddr = request.getHeader("X-FORWARDED-FOR");
if (remoteAddr == null || "".equals(remoteAddr)) {
remoteAddr = request.getRemoteAddr();
}
}
return remoteAddr;
}
}
三、使用IP工具类
最常使用的地方可能是你的controller中,例如
public GetIpController{
@Autowired
WebUtils webUtils;
@GetMapping("/getIp.do")
public String getClientIP(HttpServletRequest request){
return webUtils.getClientIp();
}
}
版权所有 © 【代码谷】 欢迎非商用转载,转载请按下面格式注明出处,商业转载请联系授权,违者必究。(提示:点击下方内容复制出处)
源文:《Java编程中spring mvc 获取请求ip》,链接:https://www.daimagu.com/article/229.html,来源:【代码谷】
评论