본문 바로가기

서블릿 프로그래밍 #5 - 클라이언트 당기기, 서블릿, frame을 이용한 채팅 프로그램 소개 이번 시간에는 클라이언트 당기기, 서블릿, frame을 이용한 채팅 프로그램을 만들어 보겠습니다. 일단 용어 설명을 먼저 해야겠지요? 클라이언트 당기기란?meta 태그를 이용한 클라이언트 f5 신공입니다. 쉽죠?? 자동으로 f5를 일정시간마다 눌러주는 겁니다. ㅋㅋㅋㅋㅋ 좀 더 기술적으로 말하면 meta 태그의 http-equiv 속성에 refresh 속성값을 이용해서 일정시간마다 서버에 페이지를 요청하는 것이라고 보시면 됩니다. frame이란??원래 한 번에 한개의 페이지를 보여주는 웹 페이지에 영역을 나누어 서로 다른 페이지를 보여주는 html 태그입니다. 우리는 이 태그를 텍스트를 입력하는 부분과 보여주는 부분으로 나누어서 제작할 것입니다. 서블릿은 다들 아시죠?? 다음으로 보실 것은 채팅 프로그램.. 더보기
서블릿 프로그래밍 #4 - 병행성 문제(synchronized, SingleThreadModel 인터페이스 구현) 자, 이번 시간에는 저번에 말씀드렸던 service( ) 메소드의 병행적 실행에 의해 생기는 문제점인 병행성 문제 를 해결하는 방법에 대해서 말씀드릴게요. 저번 시간에 병행성 문제를 해결하는 방법으로는synchronized 키워드와 SingleThreadModel 인터페이스두가지라고 말씀을 드렸는데, 일단 해결하는 방법에 대한 개념을 먼저 잡고 넘어 가도록 하지요. 잠깐, 여기서 멈추고 해결할 수 있는 방법을 생각해 보세요. 아 화장실 다녀왔어요 ㅎㅎ어떻게 아시겠어요?? 참고로 완벽한 해결방법은 없습니다.한가지는, 해당 객체를 만드는 것을 한번에 한명으로 제한한다. 즉, 스레드를 한 개만 만들 수 있도록 하는 것 이지요.두번째는, 문제를 발생시킬 수 있는 부분(메모리)에 대해서 한 번에 한 명만 사용가능.. 더보기
서블릿 프로그래밍 #3 - 서블릿 객체의 라이프 사이클 오늘은 서블릿의 라이프 사이클에 대해서 알아보겠습니다. 위의 그림이 서블릿 라이프 사이클의 전부입니다.끝 이렇게 하면 좀 그렇죠?맨 위부터 말씀드릴게요 1. init( ) 메소드처음에 서블릿이 메모리에 로드(Load) 되면 init() 메소드가 실행됩니다. 서블릿이 서비스 하기 위해서 필요한 초기 작업을 수행하는 것인데요. 이렇게 말을 하니 감이 잘 안잡히지요?예를 들어 보겠습니다.서블릿 객체가 실행되는데 파일이 필요하거나, 데이터 베이스에 연결을 하는 작업 들을 미리 해놓는 거지요.참고로, 위 작업은 파일이나 데이터 베이스를 메모리에 올려놓는 작업인데,,, 로드 된 후에는 계속 메모리에 남아 있으면서, 클라이언트의 요청을 처리합니다. 2. service( ) 메소드init 에 의해서 초기화가 끝났습니다.. 더보기