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

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

 
beans 활용
조회 : 2,738  



2001-02-03 kenu

점점 생각은 많고 강좌를 올릴 시간은 없네요. 죄송합니다. 오늘은 bean 에 대해서 조금 깊게 들어가보겠습니다. 주민등록번호 13자리를 가지고 가져올 수 있는 정보가 있습니다.

일단 생일을 알 수 있죠.
남자인지 여자인지 알 수 있습니다. 남자는 1,3 여자는 2,4
현재 나이도 알 수 있겠죠.
그 밖에도 여러가지 있을 수 있겠지만 일단 주민등록번호를 입력하면 이 3가지를 출력해 주는 프로그램을 구현해보겠습니다.

scriptlet은 쉽거든요. bean으로 하자고 하면 괜히 어렵게 느껴집니다. java에 아직 익숙지 않은 탓이죠. 하지만 태산이 높다하되 하늘 아래 뫼이로다 ... 라는 시조 다 아시죠. 일단 시작해 봅시다.

 

입력받는 부분입니다. bean.htm 입니다. 위치는 c:/jsphome/bean.htm 입니다.

bean.htm

<html>
<head>
<title>주민번호</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="bean.jsp">
<p> 이름
<input type="text" name="name">
</p>
<p> 주민번호<br>
<input type="text" name="jumin1" maxlength="6" size="6">
-
<input type="text" name="jumin2" size="7" maxlength="7">
</p>
<input type="submit" name="Submit" value="보내기">
</form>
</body>
</html>

정말 어려운 것 없습니다. maxlength는 입력 글자의 최대치를 정해주는 것입니다. 이런 설명은 앞으로 뺄께요. 주의해서 보실 것은 form 태그의 action 속성입니다. 보내기 버튼이 눌려지면 name 과 jumin1, jumin2 라는 3개의 값이 bean.jsp 로 전달됩니다.

 

다음은 처리해주는 부분입니다. 한 가지 앞서서 이름부터 해결해 보겠습니다.

bean.jsp (1)

<jsp:useBean id="jumin" class="JuminNumber" />
<jsp:setProperty name="jumin" property="*"/>
이름 : <jsp:getProperty name="jumin" property="name"/>

화면에 에러가 날 것입니다. JuminNumber.class 의 위치가 어디인지 찾지를 못해서 그렇죠. JuminNumber.class 를 빈이라고 말하는데요. 이번엔 이것을 만들어봐야죠. 이것은 순수 자바 코드입니다.

JuminNumber.java (1)

public class JuminNumber {
	private String name = null;
	private String jumin_no1 = null;
	private String jumin_no2 = null;
	
	public void JuminNumber() {}

	public void setName(String str) {
		name = str;
	}
	public void setJuminNumber1(String str) {
		jumin_no1 = str;
	}
	public void setJuminNumber2(String str) {
		jumin_no2 = str;
	}

	public String getName() {
		return name;
	}
}

값을 빈으로 불러들이는 것은 setName(String str), setJuminNumber1(String str), setJuminNumber2 (String str). 이렇게 3 개의 메소드입니다. 빈에서 밖으로 값을 내보내는(return) 것은 getName() 하나입니다. 아직 코드를 다 적지 않았습니다. bean을 불러서 bean에서 빼낼 수 있는 것은 계속 추가해서 만들 수 있습니다. 일단 이 코드를 컴파일합니다. 도스 상태에서

javac JuminNumber.java

라고 해 주면 됩니다. 오타가 없다면 특별히 에러가 나지 않을 것입니다. 아! 또 한가지 경우는 필요한 클래스가 classpath 에 잡혀있지 않으면 에러가 납니다. javac 이 아예 실행이 안 되는 경우는 path 에 c:jdk1.3in 디렉토리가 잡혀있지 않아서 그렇습니다. 이 때는 win98의 경우 autoexec.bat 를 수정해서 재부팅하시거나, win2000의 경우 내 컴퓨터 등록정보의 등록정보에서 환경변수 값을 수정한 뒤에 도스창을 다시 띄워서 작업하면 됩니다.

 

컴파일이 다 끝났다면 생성된 JuminNumber.class 파일을 C:/jsphome/WEB-INF/classes/ 에 옮겨 놓습니다. 그리고, 이왕이면 JuminNumber.java 파일도 함께 옮기는 것이 좋습니다.

이제 브라우저에 http://localhost/bean.htm 을 입력하고, 폼에 정보를 입력하면 빈을 사용해서 이름을 받아오는 것을 보실 수 있습니다.

이제 주민번호까지 화면에 출력시키도록 하겠습니다.

JuminNumber.java 파일에 주민번호 출력부분을 추가합니다. 에잇! 남,여 구분까지 집어넣겠습니다.

JuminNumber.java (2)

public class JuminNumber {
	private String name = null;
	private String jumin_no1 = null;
	private String jumin_no2 = null;
	
	public void JuminNumber() {}

	public void setName(String str) {
		name = str;
	}
	public void setJuminNumber1(String str) {
		jumin_no1 = str;
	}
	public void setJuminNumber2(String str) {
		jumin_no2 = str;
	}

	public String getName() {
		return name;
	}

	public String getJumin() {
		return jumin_no1+"-"+jumin_no2;
	}

	public String getGender() {
		int g = Integer.parseInt(jumin_no2.substring(0,1));
		g = g % 2;
		return (g==1)?"남":"여";
	}
	
}

흐흐, ~ 코드를 실행해 보니까 jumin번호가 제대로 안 나오네엽. 문제는 간단한 것이지만 심각한 것이었습니다. bean.htm 에서 bean.jsp 로 값을 넘길 때 <input> 태그의 name 이 중요합니다. setProperty 로 들어갈 때 모두 한꺼번에 값을 빈으로 전달하기 위해 * 를 썼습니다. bean에서 값을 입력받는 부분이 setXXX 부분입니다. 여기서 XXX는 bean.htm의 name과 맞아야 들어갑니다. 상통하는 것는 name과 setName 밖에 없고 나머지 두개는 jumin1과 jumin2 값을 setJuminNumber1과 setJuminNumber2 로 받으려고 했는데, 이것이 오류입니다. 에러는 안 나지만 제대로 된 값이 나오지 않는 아주 고질적인 숨어있는 오류입니다.

bean.htm의 jumin1과 jumin2를 juminNumber1과 juminNumber2 로 바꿔줍니다. 페이지를 reload 한 뒤에 실행합니다. <input> 태그의 name 값을 이렇게 수정해주었습니다. 대소문자 주의하세요.

bean.htm (2)

<html>
<head>
<title>주민번호</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
</head>

<body bgcolor="#FFFFFF" text="#000000">
<form name="form1" method="post" action="bean.jsp">
<p> 이름
<input type="text" name="name">
</p>
<p> 주민번호<br>
<input type="text" name="juminNumber1" maxlength="6" size="6">
-
<input type="text" name="juminNumber2" size="7" maxlength="7">
</p>
<input type="submit" name="Submit" value="보내기">
</form>
</body>
</html>

아, bean.jsp는 다음과 같습니다.

bean.jsp (2)

<jsp:useBean id="jumin" class="JuminNumber" />
<jsp:setProperty name="jumin" property="*"/>
이름 : <jsp:getProperty name="jumin" property="name" /><br>
주민번호 : <jsp:getProperty name="jumin" property="jumin" /><br>
성별 : <jsp:getProperty name="jumin" property="gender" /><br>

다 되었나요? 한글문제가 아마도 걸릴 것입니다. 그것은 다음 페이지에서 해결하겠습니다.

 

 

참고 :

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


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


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

 
(주) 수퍼유저

 
   
 


『신개념 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
펴낸곳(주)수퍼유저

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