Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > getRemoteAddr in HttpSessionListener


Автор: almostlost 20.3.2008, 13:30
Здравствуйте господа разработчики. 
Каким образом можно получить IP адресс клиента в методе 
Код

public void sessionCreated(HttpSessionEvent se) 
{

}

 класса 
Код

public class ClassName extends HttpServlet implements HttpSessionListener

Большое спасибо.

Автор: Fedrus 20.3.2008, 17:29
Попробую помочь (хотя сам не особо опытный):
Как я посмотрел в этом методе можно получить session но в ней еще ничего нет
Может тебе его лучьше получить при первом запросе?
Попробуй сделать Filter и в doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain)\
уже получить ip
помогло актуально??

Автор: Kangaroo 20.3.2008, 17:56
Учимся гуглить и находить http://forum.java.sun.com/thread.jspa?threadID=413062&messageID=1821662

Автор: Fedrus 21.3.2008, 10:06
Кстати я слышал кто-то даже книгу написал рпо то как правильно гуглисть как раз вроде для программистов)))
может кто знает??
у меня в принципе норм получается гуглить но не всегда и с радостью прочитал бы пару фич и советов(если такие имеются)  smile 

Автор: Kangaroo 21.3.2008, 10:38
Цитата(Fedrus @  21.3.2008,  09:06 Найти цитируемый пост)
Кстати я слышал кто-то даже книгу написал рпо то как правильно гуглисть как раз вроде для программистов)))
может кто знает??

гуглим на тему http://www.google.com/support/bin/static.py?page=searchguides.html&ctx=advanced  smile 

Автор: Fedrus 21.3.2008, 10:51
 smile 
но там целаая книга написанная русским и соответственно имеющая рускоязычный вариант (а то с английским плоховато)...
но  Advanced Search Made Easy я прочту спасибо )))

Автор: almostlost 21.3.2008, 15:06
Kangaroo, Fedrus спасибо вам.

Автор: almostlost 24.3.2008, 18:00
Сделал через фильтр + HttpSessionBindingListener.

Код

public class SessionControler extends HttpServlet implements HttpSessionBindingListener {

  private String IP = "127.0.0.1";
  private String Host = "localhost";
  private String User = "unknown";
  public SessionControler(HttpServletRequest request)
  {
    this.IP = request.getRemoteAddr();
    this.Host = request.getRemoteHost();
    this.User = request.getRemoteUser();
  }
  public void valueBound(HttpSessionBindingEvent event)
  {
//лалала
  }

  public void valueUnbound(HttpSessionBindingEvent event){
  }

}


Код

public class CounterFilter extends HttpServlet implements Filter {
  private FilterConfig filterConfig;

  //Handle the passed-in FilterConfig
  public void init(FilterConfig filterConfig) throws ServletException {

    this.filterConfig = filterConfig;
  }

  //Process the request/response pair
  public void doFilter(ServletRequest request, ServletResponse response, FilterChain filterChain) {
    try {
      HttpServletRequest req = (HttpServletRequest) request;
      HttpServletResponse res = (HttpServletResponse) response;
      String contextPath = req.getContextPath();
      HttpSession session = req.getSession();

      if((session!=null))
        if(session.getAttribute("user")==null)
          session.setAttribute("user",new SessionControler(req));


      filterChain.doFilter(request, response);
    }
    catch(ServletException sx) {
      filterConfig.getServletContext().log(sx.getMessage());
    }
    catch(IOException iox) {
      filterConfig.getServletContext().log(iox.getMessage());
    }
  }

  //Clean up resources
  public void destroy() {
  }
}


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)