멤버변수
1) 멤버변수 테스트 예문
/*******************Member1.jsp*********************/
<HTML>
<BODY>
<%! String str = "";%>
<%
if (request.getParameter("str")!=null)
str = request.getParameter("str");
%>
맴버 변수의 값은 : (<%=str%>)<BR>
넘겨온 값은 : (<%=request.getParameter("str")%>)
<FORM METHOD=POST>
<INPUT TYPE="text" NAME="str"><INPUT TYPE="submit">
</FORM>
<A HREF="Member1.jsp">현재파일을 다시 읽으면 맴버변수의 값은?</A><BR>
<A HREF="Member2.jsp">다른파일에 갔다가 다시오면 맴버변수의 값은?</A>
</BODY>
</HTML>
/*******************Member2.jsp*********************/
<HTML>
<BODY>
다른파일로 왔다가 다시 돌아가면 맴버로 선언된 변수의 값은 얼마일까?<BR>
<A HREF="Member1.jsp">Member.jsp로 되돌아가기</A><BR>
</BODY>
</HTML>
2) 멤버변수의 특성
* 지역변수는 페이지를 읽을때 마다 항상 초기화고, 멤버변수는 처음 읽을때만 초기화한다.
* <%! %> 안의 내용은 페이지를 처음 읽을때 한번만 실행(초기화) 된다.
* 그러므로 한번 읽은 페이지를 새로고침 하더라도 <%! %>는 다시 선언하지 않고 최종적으로 대입해준 값을 갖는다.
* JSP코드는 처음 실행시 Servlet 코드로 변환되고 자동으로 객체가 생성되어 컨테이너에서 쓰레드화하여 서비스된다.
* 컨테이너에서 객체를 관리하므로 한번생성된 객체와 그 내부의 멤버변수는 컨테이너가 서비스를 종료(톰켓을 정지)하는 순간까지 보존된다.
* 브라우저를 껏다가 다시 페이지에 접속하더라도 멤버변수의 값은 그대로 유지된다.
* 현재 페이지에서 선언한 멤버변수는 다른 페이지로 이동후 다시 돌아와도 값이 유지가 된다.
* 다시 읽기해도 멤버변수의 값은 그대로이다.
* 다른 페이지에서는 이 멤버변수의 값을 읽지 못하고 선언했던 페이지로 돌아왔을때만 값을 사용할 수 있다.