JSP & Servlet :: 데이터베이스 연결 실습 (성적 처리 프로그램)

2023. 12. 13. 20:11· 📚 Study/JSP & Servlet
목차
  1. 💻 성적 처리 프로그램
  2. # ScoreList.jsp
  3. # ScoreInsert.jsp

💻 성적 처리 프로그램

📃 n명의 이름과 각 과목별 성적을 입력받아 총점과 평균을 계산하여 리스트를 출력해주는 프로그램 구현

# ScoreList.jsp

① 페이지 레이아웃 구성 코드

<div>
<form action="ScoreInsert.jsp" method="post" onsubmit="return formCheck()">
<table>
<tr>
<th>이름(*)</th>
<td>
<input type="text" id="userName" name="userName">
<span class="errMsg" id="nameErr">이름을 입력해주세요.</span>
</td>
</tr>
<tr>
<th>국어점수</th>
<td>
<input type="text" id="kor" name="kor">
<span class="errMsg" id="korErr">0 ~ 100 사이의 정수를 입력해주세요.</span>
</td>
</tr>
<tr>
<th>영어점수</th>
<td>
<input type="text" id="eng" name="eng">
<span class="errMsg" id="engErr">0 ~ 100 사이의 정수를 입력해주세요.</span>
</td>
</tr>
<tr>
<th>수학점수</th>
<td>
<input type="text" id="mat" name="mat">
<span class="errMsg" id="matErr">0 ~ 100 사이의 정수를 입력해주세요.</span>
</td>
</tr>
<tr>
<th></th>
<td>
<button type="submit" id="btnAdd" class="btn control">성적 추가</button>
</td>
</tr>
</table>
</form>
<br><br>
</div>

➰ 체크할 내용 ➰

1) onsubmit

 - 자바스크립트에서 함수 호출하여 true가 반환될 경우에 요청한 페이지를 submit할 수 있도록 하는 코드

2) <span> 태그를 사용해서 display: none, display:inline을 통해 안내 메세지 보여주고 가려주고 하기!

스크립릿영역에서 str (테이블 생성 문자열) 완성되면 표현식으로 넣어주기 <%=str >

 

 

② 자바스크립트 영역 구성 코드

<script type="text/javascript">
function formCheck()
{
var userName = document.getElementById("userName");
var nameErr = document.getElementById("nameErr");
var korErr = document.getElementById("korErr");
var engErr = document.getElementById("engErr");
var matErr = document.getElementById("matErr");
var kor = document.getElementById("kor");
var eng = document.getElementById("eng");
var mat = document.getElementById("mat");
nameErr.style.display = "none";
korErr.style.display = "none";
engErr.style.display = "none";
matErr.style.display = "none";
if (userName.value == "")
{
nameErr.style.display = "inline";
return false;
}
if (kor.value == "" || kor.value <0 || kor.value >100)
{
korErr.style.display = "inline";
return false;
}
if (eng.value == "" || eng.value <0 || eng.value >100)
{
engErr.style.display = "inline";
return false;
}
if (mat.value == "" || mat.value <0 || mat.value >100)
{
matErr.style.display = "inline";
return false;
}
return true;
}
</script>

➰ 체크할 내용 ➰

1) 조건문

 - 해당 조건에 걸리는 상황들은 return false가 되도록 하여 submit이 되지 않도록 막고

    조건에 모두 통과한 경우는 return true로 form submit~!!

 

③ 스크립릿 영역 구성 코드

<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String str = "";
Connection conn = DBConn.getConnection();
String sql = "SELECT SID, NAME, KOR, ENG, MAT, (KOR+ENG+MAT) AS TOT, (KOR+ENG+MAT)/3 AS AVG FROM TBL_SCORE ORDER BY SID";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
str += "<table class='table'>";
str += "<tr>";
str += "<th id='numTitle'>번호</th>";
str += "<th id='nameTitle'>이름</th>";
str += "<th id='korTitle'>국어점수</th>";
str += "<th id='engTitle'>영어점수</th>";
str += "<th id='matTitle'>수학점수</th>";
str += "<th id='totTitle'>총점</th>";
str += "<th id='avgTitle'>평균</th>";
str += "</tr>";
while(rs.next())
{
str += "<tr>";
str += "<td class='contentTd'>" + rs.getString("SID") + "</td>";
str += "<td class='contentTd'>" + rs.getString("NAME") + "</td>";
str += "<td class='contentTd'>" + rs.getString("KOR") + "</td>";
str += "<td class='contentTd'>" + rs.getString("ENG") + "</td>";
str += "<td class='contentTd'>" + rs.getString("MAT") + "</td>";
str += "<td class='contentTd'>" + rs.getString("TOT") + "</td>";
str += "<td class='contentTd'>" + rs.getString("AVG") + "</td>";
str += "</tr>";
}
str += "</table>";
rs.close();
stmt.close();
DBConn.close();
%>

 

# ScoreInsert.jsp

<%@page import="java.sql.Statement"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="com.util.DBConn"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
request.setCharacterEncoding("UTF-8");
String userName = request.getParameter("userName");
String korStr = request.getParameter("kor");
String engStr = request.getParameter("eng");
String matStr = request.getParameter("mat");
int kor = Integer.parseInt(korStr);
int eng = Integer.parseInt(engStr);
int mat = Integer.parseInt(matStr);
Connection conn = DBConn.getConnection();
String sql = String.format("INSERT INTO TBL_SCORE(SID, NAME, KOR, ENG, MAT)"
+ "VALUES(SCORESEQ.NEXTVAL, '%s', %d, %d, %d)", userName, kor, eng, mat);
Statement stmt = conn.createStatement();
int result = 0;
result = stmt.executeUpdate(sql);
stmt.close();
DBConn.close();
if (result<1)
{
response.sendRedirect("Error.jsp");
}
else
response.sendRedirect("ScoreList.jsp");
%>
저작자표시 (새창열림)
  1. 💻 성적 처리 프로그램
  2. # ScoreList.jsp
  3. # ScoreInsert.jsp
'📚 Study/JSP & Servlet' 카테고리의 다른 글
  • JSP & Servlet :: DAO와 DTO를 활용한 데이터베이스 연결 실습 (성적 처리 프로그램)
  • JSP & Servlet :: DAO와 DTO를 활용한 데이터베이스 연결 실습 (회원 관리 프로그램)
  • JSP & Servlet :: 포워딩(Forwarding)과 리다이렉트(Redirect)
  • JSP & Servlet :: 데이터 송수신 실습 (html → jsp)
bono-hye
bono-hye
bono-hye
공부를 합시다👩🏻‍💻
bono-hye
전체
오늘
어제
  • 분류 전체보기 (506)
    • 📚 Study (225)
      • Java (148)
      • Oracle (28)
      • JDBC (4)
      • Javascript (9)
      • JSP & Servlet (19)
      • JQuery (6)
      • Spring (9)
      • Springboot (0)
      • 개인 공부 (2)
    • ✏️ 문제풀이 (280)
      • 백준 (181)
      • 프로그래머스 (99)

블로그 메뉴

  • 홈
  • 글쓰기
  • 관리
hELLO · Designed By 정상우.v4.2.1
bono-hye
JSP & Servlet :: 데이터베이스 연결 실습 (성적 처리 프로그램)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.