정보처리기사 실기
🗓️7. action.jsp 작성하기 본문
입력받은 데이터를 실제 DB에 저장하기
앞에서 reg.jsp를 작성하면서
사용자가 일정 데이터를 입력할 수 있는 화면을 만들었습니다.
하지만 현재 상태에서는:
입력만 가능
DB 저장은 안 됨
상태입니다.
즉 사용자가 등록 버튼을 눌렀을 때:
일정번호
일정일자
회원번호
일정메모
를 실제 Oracle DB의:
tbl_schedule
테이블에 저장해야 합니다.
그 역할을 하는 파일이 바로:
action.jsp
입니다.
1. 이번 문제에서 action.jsp가 필요한 이유
현재 프로젝트 흐름은 다음과 같습니다.
reg.jsp
→ 사용자 입력
→ 등록 버튼 클릭
→ action.jsp 이동
→ DB 저장
즉:
reg.jsp → 입력 화면
action.jsp → DB 처리 화면
으로 역할을 나누는 것입니다.
2. action.jsp가 하는 일
현재 문제에서 action.jsp는 다음 역할을 합니다.
1. reg.jsp에서 전달된 값 받기
2. INSERT SQL문 작성하기
3. tbl_schedule 테이블에 저장하기
4. 저장 완료 메시지 출력하기
5. main.jsp로 이동하기
즉:
사용자가 입력한 데이터를
실제로 DB에 저장하는 페이지
입니다.
3. action.jsp 전체 코드
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import = "java.sql.*" %>
<%@ page import = "DBPKG.Util" %>
<%
request.setCharacterEncoding("UTF-8");
Connection conn = Util.getConnection();
Statement stmt = conn.createStatement();
String pk_schedule = request.getParameter("pk_schedule");
String fk_member = request.getParameter("fk_member");
String do_memo = request.getParameter("do_memo");
String do_date = request.getParameter("do_date");
String sql =
" INSERT INTO tbl_schedule VALUES('" + pk_schedule + "'"+
" , '" + do_date + "'"+
" , '" + do_memo + "'"+
" , '" + fk_member + "')";
ResultSet rs = stmt.executeQuery(sql);
rs.close();
conn.close();
stmt.close();
%>
<script>
alert("일정등록이 정상적으로 되었습니다.");
window.location.href = "main.jsp";
</script>
4. action.jsp는 화면보다 DB 처리가 중심입니다
앞에서 만든:
index.jsp
main.jsp
reg.jsp
는 화면 출력이 중심이었습니다.
하지만 현재 action.jsp는 조금 다릅니다.
현재 페이지는:
사용자에게 보여주는 화면
보다는:
DB 작업 처리
가 중심인 파일입니다.
즉:
데이터 저장 전용 페이지
라고 생각하면 됩니다.
5. UTF-8 설정하기
request.setCharacterEncoding("UTF-8");
현재 프로젝트는 한글 데이터를 입력합니다.
예를 들어:
탐관오리 찾기
한글 창제
같은 데이터를 저장합니다.
따라서 UTF-8 설정이 없으면
한글이 깨질 수 있습니다.
그래서 입력값을 받기 전에 UTF-8 설정을 해줍니다.
6. DB 연결하기
Connection conn = Util.getConnection();
Statement stmt = conn.createStatement();
현재 페이지에서는 INSERT SQL문을 실행해야 합니다.
따라서 Oracle DB 연결이 필요합니다.
코드역할
| Connection conn | DB 연결 |
| Statement stmt | SQL 실행 준비 |
7. request.getParameter() 사용하는 이유
현재 사용자가 입력한 값은:
reg.jsp
에서 넘어옵니다.
즉 action.jsp에서는
사용자가 입력한 데이터를 받아야 합니다.
그래서 사용하는 코드가:
request.getParameter()
입니다.
8. 전달받은 값 저장하기
일정번호 받기
String pk_schedule = request.getParameter("pk_schedule");
reg.jsp에서 전달된 일정번호를 받습니다.
현재 일정번호는 자동발생 값입니다.
회원번호 받기
String fk_member = request.getParameter("fk_member");
사용자가 입력한 회원번호를 받습니다.
예:
M0001
일정메모 받기
String do_memo = request.getParameter("do_memo");
사용자가 입력한 일정 내용을 받습니다.
예:
탐관오리 찾기
일정일자 받기
String do_date = request.getParameter("do_date");
사용자가 입력한 날짜를 받습니다.
예:
20250101
9. 현재 request.getParameter()가 중요한 이유
현재 프로젝트에서:
reg.jsp → action.jsp
로 데이터가 이동합니다.
즉 action.jsp는 사용자가 입력한 값을 직접 알고 있는 것이 아니라:
form에서 전달된 값
을 받아야 합니다.
그래서:
request.getParameter()
를 사용합니다.
10. INSERT SQL문 작성하기
이번 문제의 핵심입니다.
현재 사용자가 입력한 데이터를:
tbl_schedule
테이블에 저장해야 합니다.
그래서 INSERT SQL문을 작성합니다.
String sql =
" INSERT INTO tbl_schedule VALUES('" + pk_schedule + "'"+
" , '" + do_date + "'"+
" , '" + do_memo + "'"+
" , '" + fk_member + "')";
11. 현재 SQL문이 하는 일
현재 코드의 의미는 다음과 같습니다.
사용자가 입력한 값들을
tbl_schedule 테이블에 INSERT
입니다.
즉 예를 들어:
5
20250501
소풍가기
M0001
를 입력했다면 실제 SQL은 다음처럼 동작합니다.
INSERT INTO tbl_schedule
VALUES('5','20250501','소풍가기','M0001')
12. 문자열 연결(+) 사용하는 이유
현재 SQL문 안에는 변수값이 들어가야 합니다.
예를 들어:
pk_schedule
do_date
do_memo
fk_member
값이 사용자마다 달라집니다.
그래서 문자열 연결 연산자인:
+
를 사용해서 SQL문을 완성합니다.
13. SQL 실행하기
ResultSet rs = stmt.executeQuery(sql);
현재 작성한 INSERT SQL문을 실행합니다.
즉 실제 Oracle DB에 데이터가 저장됩니다.
14. 여기서 주의할 점
현재 코드는 실습에서는 동작할 수 있지만,
보통 INSERT/UPDATE/DELETE는:
executeUpdate()
를 사용하는 것이 더 일반적입니다.
즉 실제로는 다음 방식이 더 자연스럽습니다.
stmt.executeUpdate(sql);
왜냐하면:
메서드사용
| executeQuery() | SELECT 조회 |
| executeUpdate() | INSERT / UPDATE / DELETE |
이기 때문입니다.
시험 실습에서는 제공 코드 그대로 사용하는 경우도 많지만,
개념적으로는 차이를 알고 있는 것이 좋습니다.
15. DB 연결 닫기
rs.close();
conn.close();
stmt.close();
DB 사용이 끝났기 때문에 연결을 닫아줍니다.
현재 프로젝트 규모는 작지만,
DB 연결을 닫는 습관은 매우 중요합니다.
16. 저장 완료 메시지 출력하기
<script>
alert("일정등록이 정상적으로 되었습니다.");
window.location.href = "main.jsp";
</script>
현재 DB 저장이 끝나면
사용자에게 완료 메시지를 보여줘야 합니다.
그래서:
alert()
를 사용합니다.
17. 저장 후 페이지 이동하기
window.location.href = "main.jsp";
저장 완료 후 메인화면으로 이동합니다.
즉 흐름은 다음과 같습니다.
사용자 입력
→ 등록 버튼 클릭
→ action.jsp 실행
→ DB 저장
→ 완료 메시지 출력
→ main.jsp 이동
18. 현재까지의 프로젝트 흐름
db.sql
→ DB 생성
Util.java
→ Oracle 연결
index.jsp
→ 전체 화면 틀
style.css
→ 디자인 적용
main.jsp
→ 프로그램 설명 화면
reg.jsp
→ 사용자 입력 화면
action.jsp
→ 실제 DB 저장 처리
19. 핵심 정리
현재 action.jsp에서 가장 중요한 것은:
사용자 입력값을 받아서
실제 DB에 INSERT 하는 흐름
입니다.
즉 현재 프로젝트 구조는:
reg.jsp
→ 사용자 입력
action.jsp
→ DB 저장 처리
로 역할이 분리되어 있다는 점을 이해하는 것이 중요합니다.
'🗓️ 일정관리 프로그램' 카테고리의 다른 글
| 🗓️9. list_j.jsp 작성하기 (0) | 2026.05.26 |
|---|---|
| 🗓️8. list.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 |
