본문 바로가기

web.xml에 등록하지 않고 listener 구현하기(WebListener 어노테이션 사용) WebListener 어노테이션을 사용하면 web.xml에 등록하지 않고 자동으로 실행이 되는 데몬을 만들 수 있습니다.(web.xml의 listener와 완전 동일한 기능입니다.) 다음과 같이 구현하면 됩니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; @WebListener public class AutoTest implements ServletContextListener { @Override public void contextIn.. 더보기
request.getRemoteAddr()로도 정확한 클라이언트 IP가 추출이 되지 않을 때 해결 방법 request.getRemoteAddr()를 사용해서 클라이언트의 아이피를 100% 정확하게 얻을 수 있다면 이보다 좋은 일은 없을 것이다! 하지만 중간에 L4 스위치나 프록시 서버 등이 개입되면서 request.getRemoteAddr()의 내용은 변조되기 시작한다! 대신 추가적인 header가 생기면서(X-Forwarded-For, WL-Proxy-Client-IP 등) 원래의 정보는 거기에 저장이 된다!(따라서 그 헤더를 추출하면 클라이언트의 아이피를 정확하게 얻을 수 있다!) 아래와 같은 메소드를 구현하면 어떤 장비가 중간에 개입이 되든 정확한 클라이언트의 IP를 추출할 수 있다!(X-Forwared-For 헤더부터 검증한 뒤 점점 내려가는 구조이다!) 1 2 3 4 5 6 7 8 9 10 11 .. 더보기
jdk 1.4 이하에서 HttpURLConnection 타임아웃 설정 방법 jdk 1.4 이하에서도 HttpURLConnection 타임아웃 설정이 가능하다! 1.5 이후부터는 메소드 형태로 지원하지만 1.4 이하에서는 다음과 같이 처리해주면 된다. HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection(); System.setProperty("sun.net.client.defaultConnectTimeout", 10000); System.setProperty("sun.net.client.defaultReadTimeout", 10000); 더보기