출처> http://okjsp.pe.kr/lecture/lec04/bean02.htm
useBean : session bean : bean 활용 #1 : Bean 활용 #2 JSP 강좌 > useBean > session bean 2001-01-02 kenu | ||||
bean에 대해서 더 고급스럽게 알기가 참 힘드네요. 예제를 실행해보는 것도 벅차네요. 예제를 백가지 다뤄보면 빈에 대해서 자유롭게 코딩할 수 있고, 기획할 수 있기를 그냥 소망해 봅니다. 빈에는 scope 라는 속성이 있습니다. 요것을 조정하면 bean의 영향력을 맘대로(?) 조정할 수 있습니다. 스코프란 범위라는 말로 해석할 수 있습니다. session bean의 scope 속성에는 4가지가 있습니다. page, request, session, application 이렇게 4가지 입니다. 대충 의미로 때려맞출 수 있을 겁니다. 초보는 찍는 실력이 좋을수록 코딩에 과감하게 됩니다. 물론 수습할 수 있도록 bak 파일은 만들어 놓는 것이 좋죠. 이제 살펴 볼 예제는 책에서 빌려(베껴)온 것입니다. page마다 로딩될 때 그 사이트에 머물러 있는 시간을 표시해 주는 빈입니다.
이 파일을 TimerBean.java 라는 이름으로 저장을 하고, WEB-INF/classes/bean 디렉토리 아래 위치시킵니다. 이제 컴파일을 시킵니다. resin 은 옵션에 따라서 컴파일하지 않아도 됩니다. tomcat의 경우는 컴파일 해주세요. 도스모드에서 컴파일하실 때, path 에 E:\jdk1.3\bin 이 잡혀있어야 합니다. 그리고, classpath 에는 E:\jdk1.3\lib\tools.jar 가 잡혀있어야 합니다. 환경변수 설정하는 법은 [다른 강좌]를 참고해주세요. 그리고, bean이 돌기 위해서는 E:\jakarta-tomcat\webapps\ROOT\WEB-INF\classes 가 classpath 에 추가되어야 합니다. 다른 곳에서(톰캣의 환경설정파일) 설정하는 법은 저도 탐색중입니다. 일단 어디든 classpath 가 설정되어 있다면 빈이 돌아갈 수 있습니다.
| ||||
이제 WEB-INF\classes\bean\TimerBean.class 파일을 확인하시고, jsp 파일로 넘어갑니다.
이 파일은 tomcat의 경우 ROOT 디렉토리에 넣어주세요. Resin의 경우 doc 디렉토리, 그리고, server.xml 이나 resin.conf 를 변경하셨다면 그곳에서 지정한 root 디렉토리에 집어넣어주시면 됩니다. 일단 설치가 다 되셨다면 http://localhost/spentTime.jsp 로 확인해 봅니다. 환경설정파일들을 변경하지 않으셨다면 http://localhost:8080/spentTime.jsp 하셔야겠죠. Unable to load class TimerBean 에러가 나왔다면 다시 path와 classpath 를 확인해주세요. 그리고, 서버 죽였다가 살리고 다시 불러보세요. 있잖아요. 다운된 컴퓨터도 전원을 퍽 껐다가 키면 제대로 돌아가잖아요. --; 비유가 안 좋네요. 제 한계입니다. ^^; 화면에 Surfing Time : 0 secs 라고 나오죠? Reload 해보세요. 시간이 자꾸 올라갑니다. 이 파일을 다른 파일에서 불러오는 것입니다. 포함시키는 것이죠.
파일을 spentTime.jsp 가 있는 디렉토리에 저장합니다. 그리고 브라우저에 한가지 장난을 쳐 보겠습니다. <%@ include file="..."%> 과 <jsp:include page="..."/> 의 차이점을 대충 느끼실 것입니다. 그에 따른 설명은 하지 않겠습니다. 그냥 알고 계세요. 장난치는 방법은 spentTime.jsp 파일의 color 값인 "8080FF" 를 "808080" 으로 바꾸고 저장한 뒤에 http://localhost/sessionBean.jsp 을 reload 해 보세요. 아마도 <%@ include file %> 이 미워질 것 같습니다. 다른 장난은 음~ scope 값을 변경해서 테스트해 보세요. page, request, session, application 중에 하나를 spentTime.jsp 파일의 <jsp:useBean/> 태그의 scope 속성 값에 대입해서 실행해 보십시오. 차이를 느낄 수 있을 것입니다. 오늘 강의는 여기서 마치죠. 도움이 될래나... 그냥 초보강사였습니다.
| ||||
참고 : Web Development with Java Server Pages, 인포북 192p |
<html>
<head>
<title>타이머 예제 </title>
</head>
<body>
<h2> 타이머 예제</h2> <hr>
<jsp:useBean id="timer" clas="javacan.bean.TimerBean" scope="session" />
세션 시작됩니다. 타이머 작동을 시작합니다.
</jsp:useBean>
타이머 빈의 프라퍼티를 마지막 접근한 뒤에 경과된 시간은
<jsp:getProperty name="timer" property="elapsedTimeAfterLastAccess" />
초 입니다. <br>
<jsp:setProperty name="timer" property="restart" />
타이머를 마지막 리셋한 뒤에 경과된 시간은
<jsp:getProperty name="timer" property="elapsedTime" />
초 입니다. <br>
타이머가 시작된 뒤에 경과된 시간은
<jsp:getProperty name="timer" property="elapsedTimeAfterInst" />
초입니다.<br> (세션이 시작된 뒤에 흐른 시간)<br>
<form name=form action="timer.jsp" method=post>
<input type="submit" name="check" value="경과시간 확인">
<input type="submit" name="restart" value="타이머 리셋">
</form>
</body>
</html>
'◆ 무한한 가능성 > & JAVA' 카테고리의 다른 글
JAVA for Eclipse - Environment Variables (0) | 2014.09.29 |
---|---|
[Eclipse] java jdk 환경변수 등록 (0) | 2014.07.28 |
GZIP과 Filter을 활용한 웹컨텐츠(웹페이지) 압축방법 (0) | 2013.08.13 |
2012년 분야별 최고의 오픈소스 소프트웨어 124선 (0) | 2013.07.12 |
Java 프로그래머 책들 (0) | 2013.07.11 |