Java编程中spring mvc 获取请求ip

Java编程中spring mvc 获取请求ip

一、使用背景

    在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

相关文章:

你感兴趣的文章:

标签云: