Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Spring3MVCWeb应用程序中访问请求源IP_Spring_Spring Mvc_Controller - Fatal编程技术网

在Spring3MVCWeb应用程序中访问请求源IP

在Spring3MVCWeb应用程序中访问请求源IP,spring,spring-mvc,controller,Spring,Spring Mvc,Controller,在Spring3MVC中,当解析@Controller中的请求时,是否有任何方法可以访问请求头信息(如源IP地址等)?您可以从HttpServletRequest检索请求头信息,使用getRemoteAddr()访问用户IP地址,使用getHeader()获取头值 比如说 @Controller public class MyController { @RequestMapping(value="/do-something") public void doSomething(Ht

在Spring3MVC中,当解析@Controller中的请求时,是否有任何方法可以访问请求头信息(如源IP地址等)?

您可以从
HttpServletRequest
检索请求头信息,使用
getRemoteAddr()
访问用户IP地址,使用
getHeader()
获取头值

比如说

@Controller
public class MyController {
    @RequestMapping(value="/do-something")
    public void doSomething(HttpServletRequest request) {
        final String userIpAddress = request.getRemoteAddr();
        final String userAgent = request.getHeader("user-agent");
        ....
    }
}

您可以将其他参数传递给
doSomething()
方法,如模型或请求参数。

谢谢。当我收到通知时,我正忙着删除我的帖子。我明白了。无论如何谢谢你!若客户端在代理服务器后面,那个么可能的解决方案是使用
stringip=req.getHeader(“X-FORWARDED-FOR”)if(ip==null)ip=request.getRemoteAddr()的条件处理它
由于
request.getRemoteAddr()
是标准的Servlets规范API,不仅可以在您的代码中使用,也可以在其他第三方组件中使用,因此在代理之后,正确的方法是插入知道代理头的
HttpServletRequest
的实现。如果您使用的是tomcat(例如),那么您可以通过将
添加到
server.xml
@Normal来实现这一点。IP来自套接字连接,而不是头