💻 성적 처리 프로그램
📃 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");
%>
💻 성적 처리 프로그램
📃 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"); %>