Gentle Breeze

[Servlet] 인스턴스 변수 본문

⑥ PreSTC/jsp / Servlet

[Servlet] 인스턴스 변수

재령 2008. 7. 22. 16:46

public void init() throws ServletException {
       accessCount = 0; //인스턴스 변수 초기화
       super.init();
 }

... <중략> ...

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
       response.setContentType("text/html; charset=euc-kr");
       PrintWriter out = response.getWriter();
 
       int localCount = 0;
 
       //인스턴스 변수 동기화
       synchronized(this){
             accessCount ++;
             localCount = accessCount;
       }
 
       log ("My log : " + localCount); //디버깅
 
       out.println("Get 방식으로 응답 : tmp " + tmp);
       out.println("Get 방식으로 응답 : localCount " + localCount);
 }   


========================================================================================

- servlet의 인스턴스 변수는 servlet을 요청하는 모든 thread에 의해 공유된다.
- 인스턴스 변수는 init 메소드에서 초기화 한다.
- 두 개 이상의 thread가 동시에 하나의 인스턴스 변수를 수정하는 것을 막으려면
  인스턴스 변수에 접근하는 부분을 동기화 (synchronized) 시켜야 한다.
- syschronized 와 this 키워드를 사용하여 코드 영역을 동기화한다.

'⑥ PreSTC > jsp / Servlet' 카테고리의 다른 글

[jsp/Servlet] jsp에서 Servlet 으로 변환  (0) 2008.07.22
[jsp] Java 클래스 저장 및 컴파일  (0) 2008.07.22
[Servlet] Servlet Life Cycle  (0) 2008.07.22
[jsp/Servlet] 정리 <1>  (0) 2008.07.22
[Servlet] 정리 <2>  (0) 2008.07.21
Comments