정보처리기사 실기
🗓️8️⃣list.jsp 작성하기 본문
회원 테이블 데이터를 화면에 출력하기
앞에서:
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 출력
구조를 이해하는 것이 핵심입니다.
'🗓️ 일정관리 프로그램' 카테고리의 다른 글
| 🗓️9️⃣list_j.jsp 작성하기 (0) | 2026.05.26 |
|---|---|
| 🗓️7️⃣action.jsp 작성하기 (0) | 2026.05.26 |
| 🗓️6️⃣reg.jsp 작성하기 (0) | 2026.05.26 |
| 🗓️5️⃣main.jsp 작성하기 (0) | 2026.05.26 |
| 🗓️4️⃣style.css 작성하기 (0) | 2026.05.26 |
