kap*_*and 15
使用接口ServletRequest中的方法getRemoteAddr()或方法getHeaders()形式接口HttpServletRequest:
HttpServletRequest httpRequest = (HttpServletRequest) request;
String userIpAddress = httpRequest.getHeader("X-Forwarded-For");
Run Code Online (Sandbox Code Playgroud)
使用getRemoteAddr方法有一个注意事项:
当然你可以使用这种方法,一般情况下你会获得客户端的IP.但是,如果用户位于代理后面,则该方法无用.在这种情况下,您将获得代理服务器的IP地址,而不是客户端.但是代理可以在特殊HTTP报头中包括请求客户端IP .所以要检索真正的客户端IP调用方法getHeader("X-Forwarded-For").
JSP中的示例用法:
使用JSTL在会话中使用IP地址的设置值:
<c:set var="userIp" value="${requestScope.header('x-forwarded-for')}" scope="session" />
Run Code Online (Sandbox Code Playgroud)
然后在方便的地方从会话中获取此值.
在JSP中,您可以使用<c:out value="${sessionScope.userIp}" />或在servlet中使用session.getAttribute('userIp');
请阅读文档:
java.lang.String getRemoteAddr()返回发送请求的客户端或最后一个代理的Internet协议(IP)地址.
| 归档时间: |
|
| 查看次数: |
15091 次 |
| 最近记录: |