japanese site
온라인강좌책메일다운로드동아리쇼핑기술지원기업정보갤러리동영상 블로그
『신개념 4단계 리눅스기술지원 시스템 공개』

※ 『무료 리눅스 배포판 배송서비스』 ※

 
session bean
조회 : 2,677  



2001-01-02 kenu

bean에 대해서 더 고급스럽게 알기가 참 힘드네요. 예제를 실행해보는 것도 벅차네요. 예제를 백가지 다뤄보면 빈에 대해서 자유롭게 코딩할 수 있고, 기획할 수 있기를 그냥 소망해 봅니다.

빈에는 scope 라는 속성이 있습니다. 요것을 조정하면 bean의 영향력을 맘대로(?) 조정할 수 있습니다. 스코프란 범위라는 말로 해석할 수 있습니다. session bean의 scope 속성에는 4가지가 있습니다. page, request, session, application 이렇게 4가지 입니다. 대충 의미로 때려맞출 수 있을 겁니다. 초보는 찍는 실력이 좋을수록 코딩에 과감하게 됩니다. 물론 수습할 수 있도록 bak 파일은 만들어 놓는 것이 좋죠.

이제 살펴 볼 예제는 책에서 빌려(베껴)온 것입니다. page마다 로딩될 때 그 사이트에 머물러 있는 시간을 표시해 주는 빈입니다.

TimerBean.java
package bean;
public class TimerBean {
	private long start;
	public TimerBean() {
		start = System.currentTimeMillis();
	}
	
	public long getElapsedMillis() {
		long now = System.currentTimeMillis();
		return now - start;
	}
	
	public long getElapsedSeconds() {
		return (long)this.getElapsedMillis()/1000;
	}
	
	public long getElapsedMinutes() {
		return (long)this.getElapsedMillis()/60000;
	}
	
	public void reset() {
		start = System.currentTimeMillis();
	}
	
	public long getStartTime() {
		return start;
	}
	
	public void setStartTime(long time) {
		if (time <= 0)
			reset();
		else
		  start = time;
	}
}

이 파일을 TimerBean.java 라는 이름으로 저장을 하고, WEB-INF/classes/bean 디렉토리 아래 위치시킵니다. 이제 컴파일을 시킵니다. resin 은 옵션에 따라서 컴파일하지 않아도 됩니다. tomcat의 경우는 컴파일 해주세요. 도스모드에서 컴파일하실 때, path 에 E:jdk1.3in 이 잡혀있어야 합니다. 그리고, classpath 에는 E:jdk1.3lib ools.jar 가 잡혀있어야 합니다. 환경변수 설정하는 법은 [다른 강좌]를 참고해주세요. 그리고, bean이 돌기 위해서는 E:jakarta-tomcatwebappsROOTWEB-INFclasses 가 classpath 에 추가되어야 합니다. 다른 곳에서(톰캣의 환경설정파일) 설정하는 법은 저도 탐색중입니다. 일단 어디든 classpath 가 설정되어 있다면 빈이 돌아갈 수 있습니다.

 

이제 WEB-INFclasseseanTimerBean.class 파일을 확인하시고, jsp 파일로 넘어갑니다.

spentTime.jsp

<jsp:useBean id="timer" class="bean.TimerBean" scope="session" />
<font color="8080FF" style="font-size:8pt">Surfing Time:
<jsp:getProperty name="timer" property="elapsedSeconds" /> Secs</font>

이 파일은 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 해보세요. 시간이 자꾸 올라갑니다. 이 파일을 다른 파일에서 불러오는 것입니다. 포함시키는 것이죠.

sessionBean.jsp

<html>
<head><title>Bean 공부
</title></head>
<body>
세션빈을 이용해서 사이트에서 머무는 시간을 표시해 줍니다.
<hr> &lt;jsp:include page="spentTime.jsp" flush="true" /><br>
<jsp:include page="spentTime.jsp" flush="true" />
<hr> &lt;%@ include file="spentTime.jsp" %><br>
<%@ include file="spentTime.jsp" %>
</body>
</html>

파일을 spentTime.jsp 가 있는 디렉토리에 저장합니다. 그리고 브라우저에
http://localhost/sessionBean.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

kenu: heogn@shinbiro.com
http://okjsp.pe.kr


[원글링크] : https://www.linux.co.kr/home2/board/subbs/board.php?bo_table=lecture&wr_id=617


이 글을 트위터로 보내기 이 글을 페이스북으로 보내기 이 글을 미투데이로 보내기

 
(주) 수퍼유저

 
   
 


『신개념 4단계 리눅스기술지원 시스템 공개』

CentOS 리눅스 전문서적 국내최초출시

 
회사소개 | 보도기사 | 채용안내 | 광고안내 | 이용약관 | 개인정보취급방침 | 책임한계와 법적고지 | 불편사항 신고하기 | 사이트맵
ㅇ 서울 : 서울특별시 강남구 노현로79길 66, 402호(역삼동,청송빌딩)  ㅇ 부산 : 부산광역시 해운대구 우동 1470 에이스하이테크21 914호
ㅇ 대표 : 1544-8128 ㅇ부산직통 : 051-744-0077 ㅇ서울직통 : 02-856-0055 ㅇ FAX : 02-6280-2663
ㅇ 사업자번호 : 128-86-68239 ㅇ 통신판매업 신고번호 : 2013-부산금정-0035호 ㅇ 개인정보책임자 : 이재석
ㅇ 상호명 : (주) 수퍼유저 ㅇ 대표자 : 박성수
Copyright ⓒ (주)수퍼유저. All rights reserved.

 아 이 디
 비밀번호
회원 가입 | 비밀번호 찾기

블로그~
 
▷ 웹개발언어
PHP
JSP
python
기타
책제목
리눅스서버관리실무바이블v3.0


저자 박성수
페이지수 2,032 pages
펴낸곳(주)수퍼유저

리눅스 서버 구축 및 관리에 필요한 거의 모든 부분과 전반적인 실무 기법들을 다루고 있음
책제목
리눅스보안관리실무(2/E)


저자홍석범
페이지수 820 pages
펴낸곳(주)수퍼유저

리눅스 보안에 관련된 내용을 종합적으로 쓴 책. 저자의 명성 그대로 보안관련의 모든 내용이 그대로 담겨져 있다.