社区
Web 开发
帖子详情
request.getRemoteHost()为什么无法得到客户端的机器名
yanchang
2004-05-08 03:04:25
我用request.getRemoteHost()为什么得到的不是机器名,而是IP地址
环境是UNIX
如何得到客户端的机器名?
...全文
187
3
打赏
收藏
request.getRemoteHost()为什么无法得到客户端的机器名
我用request.getRemoteHost()为什么得到的不是机器名,而是IP地址 环境是UNIX 如何得到客户端的机器名?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yaomengqiushui
2004-05-08
打赏
举报
回复
同意wiwi5888
wiwi5888
2004-05-08
打赏
举报
回复
请问楼主是否用Tomcat的服务器,如果是请在server.xml查看一下connector中的enableLookups
说明如下:
如果为true,则可以通过调用request.getRemoteHost()进行DNS查询来得到远程客户端的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
dmnv9999
2004-05-08
打赏
举报
回复
request.getRemoteHost(),CGI变量是REMOTE_HOST
返回发出请求的客户机的完整的域名。
如果不能确定该域名,则返回IP地址。
jsp九大内置对象
1、
Request
对象 该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以 获取用户提交的信息。 当
Request
对象获取
客户
提交的汉字字符时,会出现乱码问题,必须进行特殊处理。首先,将获取的 字符串用ISO-8859-1进行编码,并将编码存发岛一个字节数组中,然后再将这个数组转化为字符串对象 即可。如下: String textContent=
request
.getParameter("boy") byte b[]=textContent.getBytes("ISO-8859-1") textContent=new String(b)
Request
常用的方法: 1.01 getParameter(String strTextName) 获取表单提交的信息。 String strName=
request
.getParameter("name") 1.02 getProtocol() 获取
客户
使用的协议。 String strProtocol=
request
.getProtocol() 1.03 getServletPath() 获取
客户
提交信息的页面。 String strServlet=
request
.getServletPath() 1.04 getMethod() 获取
客户
提交信息的方式,get|post。 String strMethod =
request
.getMethod() 1.05 getHeade() 获取HTTP头文件中的accept、accept-encoding和Host的值。 String strHeader =
request
.getHeader("accept") 1.06 getRermoteAddr() 获取
客户
的IP地址。 String strIP =
request
.getRemoteAddr() 1.07
getRemoteHost
() 获取
客户
机的名称。 String clientName =
request
.
getRemoteHost
() 1.08 getServerName() 获取服务器名称。 String serverName =
request
.getServerName() 1.09 getServerPort() 获取服务器的
端
口号。 int serverPort =
request
.getServerPort() 1.10 getParameterNames() 获取
客户
端
提交的所有参数的名字。 Enumerationenum=
request
.getParameterNames() while(enum.hasMoreElements()){ Strings=(String)enum.nextElement() out.println(s) } 2、Response对象 对
客户
的请求做出动态的响应,向
客户
端
发送数据。 2.1 动态响应contentType属性 当一个用户访问一个JSP页面时,如果该页面用page指令设置页面的contentType属性时text/html,那么JSP引擎将按照这个属性值做出反应。如果要动态改变这换个属性值来响应
客户
,就需要使用Response对象的setContentType(String s)方法来改变contentType的属性值。 格式:response.setContentType(String s); 参数s可取text/html,application/x-msexcel,application/msword等。 2.2 Response重定向 在某些情况下,当响应
客户
时,需要将
客户
重新引导至另一个页面,可以使用Response的sendRedirect(URL)方法实现
客户
的重定向。例如: response.sendRedirect("index.jsp"); 3、Session对象 (1)什么是Session对象 Session对象是一个JSP内置对象,它在第一个JSP页面被装载时自动创建,完成会话期管理。从一个
客户
打开浏览器并连接到服务器开始,到
客户
关闭浏览器离开这个服务器结束,被称为一个会话。当一个
客户
访问一个服务器时,可能会在这个服务器的几个页面之间切换,服务器应当通过某种办法知道这是一个
客户
,就需要Session对象。 (2)Session对象的ID 当一个
客户
首次访问服务器上的一个JSP页面时,JSP引擎产生一个Session对象,同时分配一个String类型的ID号,JSP引擎同时将这换个ID号发送到
客户
端
,存放在Cookie中,这样Session对象,直到
客户
关闭浏览器后,服务器
端
该
客户
的Session对象才取消,并且和
客户
的会话对应关系消失。当
客户
重新打开浏览器再连接到该服务器时,服务器为该
客户
再创建一个新的Session对象。 (3)Session对象的常用方法 ● public String getId():获取Session对象编号。 ● public void setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Session对象中,并为添加的对象指定一个索引关键字。 ● public Object getAttribute(String key):获取Session对象中含有关键字的对象。 ● public Boolean isNew():判断是否是一个新的
客户
。 4、Application对象 (1)什么时Application对象 服务器启动后就产生了这个Application对象,当
客户
再所访问的网站的各个页面之间浏览时,这个Application对象都时同一个,直到服务器关闭。但是与Session对象不同的时,所有
客户
的Application对象都时同一个,即所有
客户
共享这个内置的Application对象。 (2)Application对象的常用方法 ● setAttribute(String key,Object obj):将参数Object指定的对象obj添加到Application对象中,并为添加的对象指定一个索引关键字。 ● getAttribute(String key):获取Application对象中含有关键字的对象。 5、Out对象 Out对象时一个输出流,用来向
客户
端
输出数据。Out对象用于各种数据的输出。其常用方法如下。 ● out.print():输出各种类型数据。 ● out.newLine():输出一个换行符。 ● out.close():关闭流。 6、Cookie对象 (1)什么是Cookie Cookie是Web服务器保存在用户硬盘上的一段文本。Cookie允许一个Web站点在用户电脑上保存信息并且随后再取回它。 举例来说,一个Web站点可能会为每一个访问者产生一个唯一的ID,然后以Cookie文件的形式保存在每个用户的
机器
上。 如果用户使用IE浏览器访问Web,用户就会看到所有保存在自己硬盘上的Cookie。它们最常存放的地方是:C:\Windows\Cookies。Cookie是以“关键字key=值value”的格式来保存记录的。 (2)创建一个Cookie对象 调用Cookie对象的构造函数就可以创建Cookie对象。Cookie对象的构造函数有两个字符串参数:Cookie名字和Cookie值。 例如:Cookie c = new Cookie("username","john"); (3)将Cookie对象传送到
客户
端
在JSP中,如果要将封装好的Cookie对象传送到
客户
端
,可使用Response对象的addCookie()方法。 例如:response.addCookie(c)。 (4)读取保存到
客户
端
的Cookie 使用
Request
对象的getCookie()方法,执行时将所有
客户
端
传来的Cookie对象以数组的形式排列,如果要取出符合需要的Cookie对象,就需要循环比较数组内每个对象的关键字。 例如: Cookie[] c =
request
.getCookies(); if(c != null) for(int i = 0;i
if("username".equals(c.getName())) out.println(c.getValue()); } (5)设置Cookie对象的有效时间 调用Cookie对象的setMaxAge()方法便可以设置Cookie对象的有效时间, 例如:Cookie c = newCookie("username","john"); c.setMaxAge(3600); (6)Cookie应用 Cookie对象的典型应用时用来统计网站的访问人数。由于代理服务器、缓存等的使用,唯一能帮助网站精确统计来访人数的方法就是为每个访问者建立一个唯一ID。使用Cookie,网站可以完成一下工作。 ● 测定多少人访问过。 ● 测定访问者有多少是新用户(即第一次来访),多少是老用户。 ● 测定一个用户多久访问一次网站 当一个用户第一次访问时,网站在数据库中建立一个新的ID,并把ID通过Cookie传送给用户。用户再次来访时,网站把该用户ID对应的计数器加1,
得到
用户的来访次数。 7、Config对象 配置对象 8、Page对象 页面对象。 PageContext对象 页面上下文对象 Jsp引入了一个名位PageContext的类,通过它可以访问页面的许多属性。 PageContext类拥有get
Request
,getResponse,getOut,getSession等方法。 pageContext变量存储与当前页面相关联的PageContext对象的值。 补: 如果方法需要访问多个与页面相关的对象, 传递pageContext要比传递
request
,response,out等的独立引用更容易。(虽然两种方式都能达到同样的目的) 9、Exception对象 在处理异常的网页中可以直接访问exception隐式对象。
request
.getRemoteAddr()/
request
.
getRemoteHost
()
当请求地址写localhost的话,
request
.getLocalAddr() 获取到的地址是0:0:0:0:0:0:0:1 会出现此问题 改成127.0.0.1即可
得到
127.0.0.1 ip地址
request
.getRemoteAddr() :获得
客户
端
的ip地址
request
.
getRemoteHost
():获得
客户
端
的主机名 当请求地址写localhost的话 会出...
request
.getRemoteAddr()和
request
.
getRemoteHost
()的区别是什么?
request
.
getRemoteHost
()为什么
得到
的不是
机器
名,而是IP地址 解决用
request
.
getRemoteHost
()为什么
得到
的不是
机器
名,而是IP地址 web服务器在server.xml查看一下connector中的enableLookups 说明如下: 如果为true,则可以通过调用
request
.
getRemoteHost
()
request
.getRemoteAddr()和
request
.
getRemoteHost
()
System.out.println("
request
.getRemoteAddr(): " +
request
.getRemoteAddr()); System.out.println("
request
.
getRemoteHost
(): " +
request
.
getRemoteHost
());
得到
的结果相同(局域网内试验的结果...
解决用
request
.
getRemoteHost
()为什么
得到
的不是
机器
名,而是IP地址
解决用
request
.
getRemoteHost
()为什么
得到
的不是
机器
名,而是IP地址 web服务器在server.xml查看一下connector中的enableLookups 说明如下: 如果为true,则可以通过调用
request
.
getRemoteHost
()进行DNS查询来
得到
远程
客户
端
的实际主机名,若为false则不进行DNS查询,而是返回其ip地址
Web 开发
81,095
社区成员
341,711
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章