在Spring3MVCWeb应用程序中访问请求源IP
在Spring3MVC中,当解析@Controller中的请求时,是否有任何方法可以访问请求头信息(如源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
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来自套接字连接,而不是头