`
尘枉_yjava
  • 浏览: 73852 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

request.getRemoteAddr()和request.getRemoteHost()

    博客分类:
  • web
 
阅读更多
request.getRemoteAddr()是获得客户端的ip地址。
request.getRemoteHost()是获得客户端的主机名。

关于request.getRemoteHost的性能问题

 
  在一个业务系统中使用request.getRemoteHost(),会造成使用该方法使用该功能模块时速度特别慢
  
    (测试功能时发现该功能模块中对应的域名获取的是host文件中从前往后第一个与本机IP一致的域名)

解释如下:
一个客户应用,在运行过程中反映出现性能问题,经定位,性能瓶颈出现在应用代码中的request.getRemoteHost()这一行,执行这一行需要花费大约5秒。通过CTRL+BREAK输出当前堆栈,发现底层代码有去作dns查询的动作java.net.InetAddress.getHostFromNameService(InetAddress.java:532),从而导致慢。



       解决办法有2个:



       1、将request.getRemoteHost()改为request.getRemoteAddr() 。



       2、提供apusic的优化patch,并在启动脚本中添加参数。

按方法1修改后并在现场验证问题已解决,第二种方法没有试验有待考证。
分享到:
评论

相关推荐

    asp.net getRemoteAddr()与 getRemoteHost()的区别

    getRemoteAddr():获得客户端的IP地址 getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址 InetAddress ia = InetAddress.getLocalHost(); String iad = ia.getHostAddress();//主机IP ...

    JSP获取HTTP header信息(request)例子

    - `request.getRemoteAddr()`: 返回发起请求的客户端IP地址。 - `request.getRemoteHost()`: 返回发起请求的客户端主机名。 2. **编码与内容信息** - `request.getCharacterEncoding()`: 返回请求的字符编码集...

    Java根据Request获取客户端IP

    Java根据Request获取客户端IP是指在Java Web开发中获取客户端的IP地址,以便进行相应的处理和分析。在JSP中,获取客户端IP地址的方法是使用request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是,如果...

    Java Web应用开发 19 课堂案例-全面认识request的常用方法.docx

    6. `request.getRemoteHost()`:与`getRemoteAddr()`类似,但这个方法会尝试解析客户端的主机名,如果IP地址可以转换为主机名,它会返回主机名,否则返回IP地址。在需要识别客户端身份或者进行地理定位时,此方法...

    javaip的获取方式

    String remoteIp = request.getRemoteAddr(); ``` ##### 5. `getRemotePort()` 此方法用于获取客户端连接到服务器时使用的端口号。 ```java int remotePort = request.getRemotePort(); ``` ##### 6. `...

    Java获取客户端信息代码

    System.out.println(request.getRemoteHost()); // 客户端主机名或IP System.out.println(request.getProtocol()); // HTTP协议版本 System.out.println(request.getScheme()); // 协议(http/https) System.out....

    JSP2_0技术学习笔记

    `request.getContextPath()`、`request.getMethod()`、`request.getProtocol()`、`request.getQueryString()`、`request.getRequestedSessionId()`、`request.getRequestURI()`、`request.getRemoteAddr()`和`...

    jsp源码实例3(获取jsp各种参数).docx

    8. **REMOTE_ADDR**:`request.getRemoteAddr()`获取发出请求的客户端的IP地址。 9. **REMOTE_HOST**:`request.getRemoteHost()`返回客户端的完全限定域名。 10. **REMOTE_USER**:如果已进行认证,`request....

    jsp9大内置对象讲解

    客户端 IP 地址:<%=request.getRemoteAddr()%> 客户端主机名:<%=request.getRemoteHost()%> 表单提交来的值:<%=request.getParameter("qwe")%> ``` 2. **response对象**: `response`对象是`...

    JSP 9大内置对象学习总结

    String remoteAddr = request.getRemoteAddr(); // 客户机名称 String remoteHost = request.getRemoteHost(); // 请求端口 int remotePort = request.getRemotePort(); // 接收客户信息的页面 String ...

    第九讲Nginx动静分离URL转发实战.pptx

    - **`request.getRemoteAddr()`**: 获取远程地址(客户端IP)。 - **`request.getAuthType()`**: 获取认证类型。 - **`request.getRemoteUser()`**: 获取远程用户名称。 - **`request.getContentType()`**: 获取请求...

    Java获取客户端代码大全

    System.out.println(request.getRemoteAddr()); // 客户端IP地址 System.out.println(request.getRemoteHost()); // 客户端主机名,如果没有获取到则返回IP地址 ``` 客户端的IP地址可用于统计访问来源、地理位置...

    JSP获取客户端的浏览器和操作系统信息.pdf

    - **`request.getRemoteHost()`**:获取客户端主机名,如果无法获取则返回IP地址。 - **`request.getProtocol()`**:获取请求协议的名称和版本。 - **`request.getHeaderNames()`**:获取所有请求头的名字集合。 - *...

    九大内置对象.doc

    String clientName = request.getRemoteHost(); ``` 8. **getServerName()**:获取服务器名称。 ```java String serverName = request.getServerName(); ``` 9. **getServerPort()**:获取服务器的端口号。 ``...

    Java获取服务器IP及端口的方法实例分析

    - `request.getRemoteAddr()`获取客户端的IP地址。 - `request.getRemoteHost()`获取客户端的主机名。 - `request.getRemotePort()`获取客户端连接到服务器的端口号。 - `request.getRemoteUser()`如果已认证,...

    jsp内建对象简介和使用

    Remote Address: <%=request.getRemoteAddr()%> Remote host: <%=request.getRemoteHost()%> Path info: <%=request.getPathInfo()%> Path translated: <%=request.getPathTranslated()%> Query ...

    jsp中获取地址的写法

    2. **`getRemoteAddr()`** 和 **`getRemoteHost()`**:这两个方法可以分别获取客户端的 IP 地址和主机名。 ```java String clientIP = request.getRemoteAddr(); String clientHost = request.getRemoteHost(); ...

    JSP request(return String)用法详例

    `request.getRemoteAddr()` 返回发出请求的客户端的IP地址,如果没有反向代理,通常为用户的真实IP。 `request.getRemoteHost()` 返回客户端主机名,基于IP地址解析得到。 3. 服务器信息: `request....

    JSP九大内置对象详解

    客户端主机名:<%= request.getRemoteHost() %> 表单提交来的值:<%= request.getParameter("qwe") %> ;charset=gb2312" %> <% request.setCharacterEncoding("gb2312"); %> <%@ page import="java....

    JSP获取客户端的浏览器和操作系统信息

    - `request.getRemoteHost()`:获取客户端主机名(如果不可用,则返回IP地址)。 - `request.getProtocol()`:获取协议名称和版本。 #### 五、最佳实践与注意事项 1. **正确处理`User-Agent`字符串**:由于`User-...

Global site tag (gtag.js) - Google Analytics