상세 컨텐츠

본문 제목

VO(Value Object), JSP 내장 객체, (여러가지 정보를 하나로 묶어 저장할 수 있게 만든 클래스 VO)

FrontEnd/JSP (JavaServerPage)

by H_Develop 2022. 8. 16. 18:54

본문

VO(Value Object)는 정보를 저장하는 하나의 클래스이다.
친구의 나이, 이름, 전화번호를 저장한다면 
이 세가지 정보를 하나로 묶어서 저장할 수 있게 만든 클래스를 VO라고 한다.

JSP 내장 객체 : 외부에서는 보이지 않지만 JSP가 실행되면 존재하게 되는 것들로,
JSP가 작업한 뒤 Servlet으로 변환되면 service() 메서드로 존재하게 된는 객체들이다.
request(요청), response(응답), out(출력), 
데이터 임시 저장공간으로 쿠키, 세션 같은 application, cookie, session이 있다.
application과 session(ID)는 WAS 서버에 클라이언트 별로 ID로 저장
                                                                 (브라우저 별)
cookie는 클라이언트 브라우저에 저장된다.
session은 cabinet, 각 개인의 공간을 갖고 application은 공동의 공간을 갖는다.
- application은 잘 사용하지 않고, session, cookie를 주로 사용한다.
client에 저장한다면 cookie,         server에 저장한다면 session을 활용한다.

naver 쇼핑에서 사고, daum에서 사면 naver 구매 정보가 없어진다.
브라우저가 화면이 바뀌면 이전 정보를 갖지 못한다.

 

Project Ex..
Java Resources
Libraries
  패키지 만들고, class 파일 생성

 

DAO 클래스(Data Access Object) - 데이터베이스에 접속해서 데이터의 추가, 삭제, 수정 등의 작업을 하는 클래스입니다.
                                                         (DB연동만 담당)
VO 클래스(Value Object)  - DAO클래스를 구현하면 데이터베이스에 연결을 할 때, 
(DTO 클래스(Data Transfer Object)) 데이터베이스 안에 있는 테이블의 속성을 가져오거나, 넣어주게 됩니다.

                                                          ( select, insert, update )


DAO 클래스를 이용하여 데이터베이스에서 데이터를 관리할 때 데이터를 일반적인 변수에 할당하여 작업할 수도 있지만, 
VO 클래스를 작성하여 데이터베이스와 관련된 변수들의 모음 역할을 합니다

VO 클래스의 변수들은 외부에서 쉽게 접근할 수 없도록 은닉(private) 처리 합니다.

class 파일
PersonVO.java

package vo;
public class PersonVO {	// class
	private String name;
	private int age;
	private String tel;
	
//	public PersonVO() {
//	}
	public PersonVO(String name, int age, String tel) {	// method
		this.name = name;
		this.age = age;
		this.tel = tel;
	}
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}

}



test_person.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ page import="java.util.List" %>
<%@ page import="vo.PersonVO" %>
<%@ page import="java.util.ArrayList" %>

<!DOCTYPE html>
<html>
<%
	ArrayList<PersonVO> pList = new ArrayList<>();
	pList.add(new PersonVO("송강",20,"010-123-4567"));
	pList.add(new PersonVO("무송",22,"010-234-5678"));
	pList.add(new PersonVO("호연작",24,"010-456-7890"));
	pList.add(new PersonVO("임충",21,"010-345-7891"));
	pList.add(new PersonVO("양지",27,"010-246-4680"));
%>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<style type="text/css">
	table {border:1px solid black; border-collapse:collapse;}
	td {width:100px; text-align:center;}
	.td3 {width:150px;}
</style>
</head>
<body>
	<table border="1">
		<caption>:: 개인정보 목록 ::</caption>
		<tr>
			<th>이름</th>
			<th>나이</th>
			<th>전화번호</th>
		</tr>
		<% 
			for(int i=0; i<pList.size(); i++) {
		%>
		<tr>
			<td><%= pList.get(i).getName() %></td>
			<td><%= pList.get(i).getAge() %></td>
			<td class="td3"><%= pList.get(i).getTel() %></td>
		</tr>
		<%
			}
		%>
	</table>
</body>
</html>

 

 

jsp_para_input.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
	function send1(f) {
		var name = f.name.value.trim();
		var age = f.age.value.trim();
		var tel = f.tel.value.trim();
		check(name,age,tel);	// 유효성 체크
		
		f.action = "test_para1.jsp";
		// f.method = "GET";
		f.submit();	// 지정된 액션 페이지로 전송
	}
	function send2(f) {
		var name = f.name.value.trim();
		var age = f.age.value.trim();
		var tel = f.tel.value.trim();
		check(name,age,tel);	// 유효성 체크
		
		f.action = "test_para2.jsp";
		f.submit();
	}
	function check(name, age, tel) {
		if(name == '') {
			alert("이름을 입력해주세요");
			f.name.focus();
			return;
		}
		var p = /^[0-9]*$/;	
		// 숫자 입력 확인, 정규 표현식, 숫자가 0부터 9사이로 시작되어라
		if(!p.test(age)) {
			alert("나이를 정수로 입력하세요");
			f.age.focus();
			return;
		}
		if(tel==''){
			alert("전화번호를 입력하세요");
			f.tel.focus();
			return;
		}
	}
</script>
<!--  ID나 PW 입력 칸이 있을 경우, 보통 자바스크립트를 활용한다.	
 -->
</head>
<body>
	<form action="">
		이름 : <input name="name"><br>
		나이 : <input name="age"><br>
		전화 : <input name="tel"><br>
		<input type="button" value="각각 입력받기" onclick="send1(this.form)">
		<input type="button" value="객체로 받기" onclick="send2(this.form)">
	</form>
</body>
</html>

 

 

test_para1.jsp

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html>
<%
	request.setCharacterEncoding("utf-8");
	String name = request.getParameter("name");
	int age = Integer.parseInt(request.getParameter("age"));
	String tel = request.getParameter("tel");
%>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>

</body>
</html>

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

관련글 더보기