日期:2014-05-18  浏览次数:21296 次

通过session取IP?
public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
activeSessions.put(session.getId(), session);
}

在此已经取得session了. 如何取得客户端访问的IP呢?. 
 

------解决方案--------------------
用内置的request对象的getRemoteAddr()方法可以取到IP 不知道你要的是这个不! 如:String strIP = request.getRemoteAddr(); //IP
------解决方案--------------------
activeSessions.put(session.getId(), session); 
这方法是干嘛的?
------解决方案--------------------
接分
------解决方案--------------------
session里面好像没有直接获得客户端IP地址的方法

------解决方案--------------------
不懂,up
------解决方案--------------------
用request可以得到
------解决方案--------------------
request..getRemoteAddr() 能获得到
------解决方案--------------------
session确实不能取到ip,因为session的信息是保存在服务端的,为做为客户端的标识唯一的就是有不同的session id而已。客户端可以通过session id
获得session信息。根本没有包括ip在内的一些其他客户端信息。
------解决方案--------------------
我是来长见识了~~~飘
------解决方案--------------------
Up
------解决方案--------------------
那九个对象是可以互取的怎么得不到呢
------解决方案--------------------
session中应该是取不到了,可以作个filter,
1。请求过来,
2。判断session中是否有统计过标志
3。如果没有,统计计数加一,记录在request中的远程地址,在session中设置统计过标志
如果有统计过标志,跳到4
4 交给下一工序处理(调用父类的dofilter)
------解决方案--------------------
探讨
我是想做在线人数统计,目前只能实现,有多少人在线,在线人数的IP等信息.
具体代码如下
public class SessionListener implements HttpSessionListener
{


public static Map <String, HttpSession> activeSessions = Collections.synchronizedMap(new HashMap <String, HttpSession>());

public void sessionCreated(HttpSessionEvent event) {
HttpSession session = event.getSession();
activeSessions…

------解决方案--------------------
11楼说得很有道理啊,学习了
------解决方案--------------------
取ip用这个request.getRemoteAddr()
------解决方案--------------------
用request获取ip
LZ不一定要在session里面拿到阿,试下用其他方法。。。来实现效果
------解决方案--------------------
request..getRemoteAddr() 能获得到