用jboss发布的工程,测试request对象返回路径的方法,如下:
System.out.println(LoginAction.class.getResource("/").getPath());
System.out.println(this.getRequest().getContextPath());
System.out.println(this.getRequest().getRealPath("/images/icon"));
System.out.println(this.getRequest().getRequestURI());
System.out.println(this.getRequest().getRequestURL());
System.out.println(this.getRequest().getRealPath("/images/icon").replace('\\', '/'));//替换斜杠
16:28:27,522 INFO [STDOUT] /F:/jboss-4.2.3/server/default/deploy/b2cPlatform.war/WEB-INF/classes/
16:28:27,522 INFO [STDOUT] /b2cPlatform
16:28:27,522 INFO [STDOUT] F:\jboss-4.2.3\server\default\.\deploy\b2cPlatform.war\images\icon
16:28:27,522 INFO [STDOUT] /b2cPlatform/Login_login
16:28:27,522 INFO [STDOUT] http://localhost:8082/b2cPlatform/Login_login
10:00:54,242 INFO [STDOUT] F:/jboss-4.2.3/server/default/./deploy/b2cPlatform.war/images/icon
###注意:1.在win7系统下,通过计算机无法定位F:\jboss-4.2.3\server\default\.\deploy\b2cPlatform.war\images\icon;但是XP和2003系统可以,win7通过cmd,java的File类一样可以使用.访问到文件!
================================================================================
一、
request.getRemoteUser();//获取当前缓存的用户,比如Spring Security做权限控制后就会将用户登录名缓存到这里
request.getRemoteAddr();//获取客户端IP,需要注意的是获取到的是直接面向的IP地址,并不是经过代理等处理的原始地址
request.getRemotePort();//获取服务端访问端口
request.getRemoteHost();//获取服务端地址
即当前路径为 request.getRemoteHost()+":"+request.getRemotePort()
二、getRemoteAddr()与 getRemoteHost()的区别小结
getRemoteAddr():获得客户端的IP地址
getRemoteHost():获得客户端电脑的名字,若失败,则返回客户端电脑的IP地址
InetAddress ia = InetAddress.getLocalHost();
String iad = ia.getHostAddress();//主机IP
String ias = ia.getHostName();//主机名
请问我在JSP页面中使用如下语句:
System.out.println("request.getRemoteAddr(): " + request.getRemoteAddr());
System.out.println("request.getRemoteHost(): " + request.getRemoteHost());
得到的结果相同(局域网内试验的结果)。
那么getRemoteAddr()和getRemoteHost()到底有什么区别?
前一个是获得客户端的ip地址
后一个是获得客户端的主机名
所以用前一个。
使用request.getRemoteAddr()取得client的ip有問題
request.getRemoteAddr()可以取得用戶端ip ,但我試了的結果是 0:0:0:0:0:0:0:1 ,請問是哪裡出了問題,要如何解決呢?謝謝各位回答。
这可能是由于你并没有连入互联网或局域网没有获得ip,也有可能是你的上网的方式有问题,我也曾经出过这样的问题,不过换到公司使用局域网测试ip就显示出来了
---------------------------------------------------------------
在servlet中怎样能取到真实的客户端ip地址?
如果客户端来自服务器以外的网段,request.getRemoteAddr得到的只是那个客户端网关(代理)的ip,没有办法取到真实的客户端ip吗?
#当用户使用代理或者是局域网访问你的应用程序,你用request.getRemoteAddr()方法返回的是代理的地址或是局域网网关的地址.
#request.getRemoteAddr()只能获取第一层,如果获取的地址是内网地址,可能是路由器中转了
详细出处参考:http://www.jb51.net/article/21498.htm
分享到:
相关推荐
JSP 内置对象:request 对象 JSP 内置对象是 Web 容器加载的一组类,它不像一般的 Java 对象那样用 new 去获取实例,而是可以直接在 JSP 页面使用的对象。隐式对象的名称是 JSP 的保留字。JSP 使用隐式对象来访问...
在深入探讨`Request`对象的主要方法之前,我们首先需要理解`Request`对象的基本概念及其在Web开发中的核心作用。`Request`对象是Web应用程序中处理客户端请求的关键组件,它封装了来自客户端的所有请求数据,包括但...
- `request.getRemoteAddr()`: 返回发起请求的客户端IP地址。 - `request.getRemoteHost()`: 返回发起请求的客户端主机名。 2. **编码与内容信息** - `request.getCharacterEncoding()`: 返回请求的字符编码集...
### Request对象的主要方法 在Java Web开发中,`HttpServletRequest`对象是处理客户端请求的核心对象之一。它封装了来自客户端的所有信息,并提供了多个方法用于获取这些信息。以下是对`HttpServletRequest`对象中...
request对象的主要方法有: 1. getParameter(String name):获得客户端传送给服务器端的参数值,该参数一般由表单的name属性指定。 例如,如果在表单中有一个输入框,名为“username”,那么可以使用request....
本文将详细介绍其中的一些常用内置对象——特别是`request`对象——及其使用方法,并通过具体的示例代码进行说明。 #### 二、JSP内置对象简介 JSP提供了九个内置对象,这些对象简化了Web开发过程中的许多任务。其中...
这篇教程主要关注于`request`对象的常用方法,这对于理解和处理用户请求至关重要。下面我们将详细探讨这些方法及其用途。 首先,`request`对象提供了一系列方法来获取客户端环境信息: 1. `getRequestURL()`:这个...
例如,`request.getParameter()`用于获取表单数据,`request.getRequestURI()`用于获取请求的URL路径,`request.getRemoteAddr()`获取客户端的IP地址。 2. **response对象**:response对象由HttpServletResponse类...
以上示例代码演示了如何使用 `request` 对象来获取各种请求信息,包括设置字符编码、获取请求参数、获取请求属性以及获取其他相关信息。这些信息对于开发人员来说是非常有用的,可以帮助他们更好地理解用户的需求并...
`request`对象提供了许多方法用于获取客户端的相关信息,比如请求的协议类型、请求方式、客户端IP地址等。这些信息对于分析用户行为或调试问题非常有用。例如: ```java // 客户使用的协议 String protocol = ...
从Request对象中可以获取各种路径信息,以下例子: 假设请求的页面是index.jsp,项目是WebDemo,则在index.jsp中获取有关request对象的各种路径信息如下 String path = request.getContextPath(); String ...
通过`request`对象,开发者可以获取各种请求信息,如: - `getAttribute(String name)`:获取指定名称的属性值。 - `getAttributeNames()`:返回一个枚举,包含request对象的所有属性名。 - `getCookies()`:获取...
在JSP页面中,可以使用`Request`对象来获取客户端提交的各种信息。 1. **方法介绍** - `Object getAttribute(String name)`:获取指定名称属性的值。 - `Enumeration getAttributeNames()`:返回当前请求中的所有...
通过这个对象,开发者可以获取客户端请求的各种信息,如请求头、请求参数等,并根据这些信息来处理业务逻辑。 **类定义:** `request`对象是`HttpServletRequest`类的一个实例,该类继承自`ServletRequest`接口。 ...
这些内置对象的存在极大地方便了开发人员处理各种Web应用程序的任务,提高了开发效率。 一、认识JSP内置对象 JSP内置对象的特点包括: 1. 自动载入:在JSP页面被首次请求时,Web容器会自动创建这些对象。 2. Web...
##### request对象的主要方法 1. **getAttribute(String name)**:返回指定属性的属性值。 2. **getAttributeNames()**:返回所有可用属性名的枚举。 3. **getCharacterEncoding()**:返回字符编码方式。 4. **...
`request`对象用于封装用户提交的信息,并且提供了获取请求参数的方法,它是`HttpServletRequest`接口的一个实例。`request`对象可以帮助开发者获取用户的输入数据,进行相应的业务处理。具体用法如下: - 获取单个...
在 JSP 或 Servlet 中,可以通过 `HttpServletRequest` 对象的 `getContextPath()` 方法来获取当前应用的上下文路径。这个方法返回的是当前应用的根目录路径,通常用于拼接资源路径或构建相对路径。 ```java String...