Well, this is a known issue since Oracle Application Server 9i. I have found a solution in Oracle Application Server 10g release 2. I know it applies to the 10g product family but i didn't test it on 9i. If anyone knows if this also applies on 9i, don't hesitate to leave a comment here :-)
Goto your Oracle Business Intelligence platform (not infrastructure) and click on Http Server-> Administration-> Advanced Server Properties-> httpd.conf
and uncomment the line :
When webcache is forwarding requests to OHS, the clientIP becomes the IP of the originating webcache server and the real client IP is stored in the ClientIP header.
Instead of modifying the header with more java source code, just uncomment the UseWebCacheIp and you will have the Client's IP recorded in the log files and also your source code : request.getRemoteAddr() request.getRemoteHost() will work properly.