Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

정보처리기사 실기

🗓️8️⃣list.jsp 작성하기 본문

🗓️ 일정관리 프로그램

🗓️8️⃣list.jsp 작성하기

윤서입니다롱 2026. 5. 26. 12:30

회원 테이블 데이터를 화면에 출력하기

앞에서:

reg.jsp
→ 사용자 입력 화면

action.jsp
→ DB 저장 처리

까지 구현하면서
일정을 등록할 수 있는 기능을 만들었습니다.

이번 단계에서는:

회원현황 화면

을 만들어보겠습니다.

즉 Oracle DB 안의:

tbl_member

테이블 데이터를 조회해서
웹페이지에 표 형태로 출력하는 작업입니다.


1. 이번 문제에서 list.jsp가 필요한 이유

문제를 보면 메뉴에 다음 항목이 존재합니다.

회원현황

즉 사용자가 회원 목록을 볼 수 있어야 합니다.

따라서 우리는:

회원 데이터를 조회하는 화면

이 필요합니다.

그 역할을 하는 파일이:

list.jsp

입니다.


2. 현재 list.jsp가 해야 하는 역할

이번 문제에서 list.jsp는 다음 역할을 합니다.

1. tbl_member 테이블 조회
2. 회원코드 출력
3. 회원명 출력
4. 등급 출력
5. 표(table) 형태로 화면 출력

즉:

DB 데이터를 조회해서
화면에 보여주는 페이지

입니다.


3. list.jsp 전체 코드

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ page import = "java.sql.*" %>
<%@ page import = "DBPKG.Util" %>

<!DOCTYPE html>
<html>

<head>
	<meta charset="UTF-8">
	<title>일정 관리 프로그램</title>
	<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>

<%
request.setCharacterEncoding("UTF-8");

Connection conn = Util.getConnection();
Statement stmt	= conn.createStatement();

String sql =
"	SELECT	 pk_member 	AS 	 회원코드		"+
"	,		 name		AS	 회원명		"+
"	,		 grade		AS	 등급			"+
"	FROM	 tbl_member					";

ResultSet rs = stmt.executeQuery(sql);
%>

<H4>회원현황</H4>

<TABLE border='1'>

	<TR>
		<TH width='100px'>회원코드</TH>
		<TH width='100px'>회원명</TH>
		<TH width='100px'>등급</TH>
	</TR>

<% while(rs.next()){ %>

	<TR>
		<TD align='left'>
			<%=rs.getString("회원코드") %>
		</TD>

		<TD align='center'>
			<%=rs.getString("회원명") %>
		</TD>

		<TD align='right'>
			<%=rs.getString("등급") %>
		</TD>
	</TR>

<% } %>

<%
rs.close();
conn.close();
stmt.close();
%>

</TABLE>

</body>
</html>

4. 현재 페이지는 “조회 페이지”입니다

앞에서 만든 action.jsp는:

INSERT 처리

즉 데이터를 저장하는 페이지였습니다.

하지만 현재 list.jsp는 조금 다릅니다.

현재 페이지는:

DB 데이터를 조회해서
사용자에게 보여주는 페이지

입니다.

즉:

입력 X
조회 O

입니다.


5. DB 연결 준비하기

회원 데이터를 가져오기 위해 Oracle DB 연결이 필요합니다.

그래서 아래 코드를 작성합니다.

<%@ page import = "java.sql.*" %>
<%@ page import = "DBPKG.Util" %>

그리고 실제 연결은 다음 코드로 진행합니다.

Connection conn = Util.getConnection();
Statement stmt	= conn.createStatement();

6. 현재 문제에서 필요한 SQL문 판단하기

이번 회원현황 화면에서는:

회원코드
회원명
등급

이 필요합니다.

이 데이터들은 모두:

tbl_member

테이블 안에 존재합니다.

즉 현재 문제는:

JOIN 필요 없음
단일 테이블 조회

입니다.

따라서 다음 SQL문만으로 해결할 수 있습니다.


7. SELECT 문 작성하기

SELECT
    pk_member AS 회원코드,
    name      AS 회원명,
    grade     AS 등급
FROM tbl_member

현재 SQL문 의미는 다음과 같습니다.

tbl_member 테이블에서
회원코드, 회원명, 등급 조회

입니다.


8. AS 사용하는 이유

AS 회원코드

는 컬럼 별칭입니다.

원래 컬럼 이름은:

pk_member

입니다.

하지만 화면에서는:

회원코드

처럼 보기 쉽게 출력하고 싶습니다.

그래서:

AS

를 사용합니다.


9. SQL 실행하기

ResultSet rs = stmt.executeQuery(sql);

현재 SQL문은 조회문입니다.

즉:

SELECT

문입니다.

그래서:

executeQuery()

를 사용합니다.


10. ResultSet이 중요한 이유

현재 SQL 결과는 여러 줄의 데이터가 나옵니다.

예를 들어:

M0001 홍길동 의적
M0002 심청 효녀
M0003 세종 대왕

같은 결과입니다.

이 결과를 저장하는 객체가:

ResultSet

입니다.

즉:

조회 결과 저장 공간

이라고 생각하면 됩니다.


11. 테이블 제목 만들기

<H4>회원현황</H4>

현재 화면 제목입니다.

사용자에게 현재 어떤 화면인지 알려주는 역할을 합니다.


12. TABLE 태그 사용하는 이유

회원 데이터를 표 형태로 출력해야 하므로:

<TABLE>

태그를 사용합니다.

현재 화면 구조는 다음과 같습니다.

회원코드 | 회원명 | 등급

형태입니다.

즉 표 구조가 필요합니다.


13. TH 태그 : 제목칸 만들기

<TH>회원코드</TH>

TH는 표 제목칸입니다.

현재 문제에서는:

회원코드
회원명
등급

제목줄이 필요하므로 사용합니다.


14. width 속성 사용하는 이유

width='100px'

는 칸 너비를 지정합니다.

너비를 맞춰주면 표가 정리되어 보입니다.


15. while(rs.next())가 중요한 이유

현재 회원 데이터는 여러 명입니다.

즉:

1명만 출력

이 아니라:

모든 회원 출력

해야 합니다.

그래서 반복문을 사용합니다.

while(rs.next())

뜻은:

조회 결과가 있는 동안 반복

입니다.


16. rs.next() 역할

ResultSet는 처음에는 첫 줄을 가리키지 않습니다.

그래서:

rs.next()

를 실행해야 다음 데이터로 이동합니다.

즉:

첫 번째 회원
두 번째 회원
세 번째 회원

순서대로 반복하게 됩니다.


17. DB 데이터 출력하기

<%=rs.getString("회원코드") %>

이 코드는 현재 조회된 데이터를 화면에 출력합니다.

즉 현재 회원의:

회원코드

를 출력합니다.


getString() 사용하는 이유

현재 조회 결과를 문자열 형태로 가져옵니다.

예를 들어:

M0001
홍길동
의적

같은 값을 가져옵니다.


18. align 사용하는 이유

align='left'
align='center'
align='right'

는 표 안의 정렬 방향입니다.

코드의미

left 왼쪽 정렬
center 가운데 정렬
right 오른쪽 정렬

현재 문제에서는 보기 좋게 각각 다르게 정렬했습니다.


19. DB 연결 닫기

rs.close();
conn.close();
stmt.close();

조회가 끝났으므로 DB 연결을 닫아줍니다.

현재 프로젝트 규모는 작지만
실무에서도 매우 중요한 습관입니다.


20. 현재 페이지 실행 흐름

현재 list.jsp는 다음 순서로 동작합니다.

list.jsp 실행
↓
Oracle DB 연결
↓
tbl_member 조회
↓
조회 결과를 ResultSet 저장
↓
while 반복문으로 한 줄씩 출력
↓
회원현황 화면 완성

21. 현재까지 완성된 기능

main.jsp
→ 프로그램 설명 화면

reg.jsp
→ 일정 입력 화면

action.jsp
→ DB 저장 처리

list.jsp
→ 회원현황 조회 화면

즉 이제:

입력 + 저장 + 조회

기능까지 구현된 상태입니다.


22. 핵심 정리

현재 list.jsp에서 가장 중요한 것은:

DB 데이터를 조회해서
반복문으로 화면에 출력하는 흐름

입니다.

즉:

SELECT 실행
→ ResultSet 저장
→ while 반복
→ table 출력

구조를 이해하는 것이 핵심입니다.