JAVA개념&실습

WEB : [0524-0525] 회원 관리 및 회원 성적 관리 페이지 구성 실습02

u_SZero 2023. 5. 26. 00:31

! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !


WebApp12


MemberScoreDTO.jsp  : 필요 속성(private) 선언 및 getter / setter 구성

/*
   MemberScoreDTO.java
   - 객체 정용 (데이터 보관 및 전송) → JAVA Bean
 */
package com.test;

public class MemberScoreDTO
{
	// VIEW_MEMBERSCORE 조회 항목을 기준으로
	// 프로퍼티(property) 구성
	private String sid, name;		//-- 번호, 이름
	private int kor, eng, mat;		//-- 국어점수, 영어점수, 수학점수
	private int tot, rank;			//-- 총점, 석차(등수)
	private double avg;				//-- 평균
	
	public String getSid()
	{
		return sid;
	}
	public void setSid(String sid)
	{
		this.sid = sid;
	}
	public String getName()
	{
		return name;
	}
	public void setName(String name)
	{
		this.name = name;
	}
	public int getKor()
	{
		return kor;
	}
	public void setKor(int kor)
	{
		this.kor = kor;
	}
	public int getEng()
	{
		return eng;
	}
	public void setEng(int eng)
	{
		this.eng = eng;
	}
	public int getMat()
	{
		return mat;
	}
	public void setMat(int mat)
	{
		this.mat = mat;
	}
	public int getTot()
	{
		return tot;
	}
	public void setTot(int tot)
	{
		this.tot = tot;
	}
	public int getRank()
	{
		return rank;
	}
	public void setRank(int rank)
	{
		this.rank = rank;
	}
	public double getAvg()
	{
		return avg;
	}
	public void setAvg(double avg)
	{
		this.avg = avg;
	}
	
}

 

 

MemberScoreDAO.jsp  : 데이터베이스에 접근하여 기능을 수행하는 메소드 구성

/* ==================================================
   MemberScoreDTO.java
   - 객체 정용 (데이터 보관 및 전송) → JAVA Bean
====================================================*/

package com.test;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;

import com.util.DBConn;

public class MemberScoreDAO
{
	// 주요 속성 구성
	private Connection conn;
	
	// 데이터베이스 연결 담당 메소드
	public Connection connection() throws ClassNotFoundException, SQLException 
	{
		conn=DBConn.getConnection();
		return conn;
	}
	
	// 데이터 입력 담당 메소드(성적 데이터 입력)
	public int add(MemberScoreDTO dto) throws SQLException
	{
		int result=0;
		
		String sql = "INSERT INTO TBL_MEMBERSCORE(SID, KOR, ENG, MAT) VALUES(?, ?, ?, ?)";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, Integer.parseInt(dto.getSid()));
		pstmt.setInt(2, dto.getKor());
		pstmt.setInt(3, dto.getEng());
		pstmt.setInt(4, dto.getMat());
		
		result = pstmt.executeUpdate();
		
		pstmt.close();
		
		return result;
	}
	
	// 성적 전체 리스트 출력 담당메소드
	public ArrayList<MemberScoreDTO> list() throws SQLException
	{
		ArrayList<MemberScoreDTO> result = new ArrayList<MemberScoreDTO>();
		
		String sql = "SELECT SID, NAME, KOR, ENG, MAT, (KOR+ENG+MAT) AS TOT,"
				+ " (KOR+ENG+MAT)/3 AS AVG, RANK() OVER(ORDER BY (KOR+ENG+MAT) DESC) AS RANK"
				+ " FROM VIEW_MEMBERSCORE ORDER BY SID";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		
		ResultSet rs = pstmt.executeQuery();
		
		while(rs.next())
		{
			MemberScoreDTO score = new MemberScoreDTO();
			score.setSid(rs.getString("SID"));
			score.setName(rs.getString("NAME"));
			score.setKor(rs.getInt("KOR"));
			score.setEng(rs.getInt("ENG"));
			score.setMat(rs.getInt("MAT"));
			score.setTot(rs.getInt("TOT"));
			score.setAvg(rs.getDouble("AVG"));
			score.setRank(rs.getInt("RANK"));
			
			result.add(score);
		}
		
		rs.close();
		pstmt.close();
		
		return result;
	}
	
	// 데이터베이스 연결 종료(해제) 담당 메소드
	public void close() throws SQLException
	{
		DBConn.close();
	}
	
	// 메소드 추가
	// 번호 검색 담당 메소드
	public MemberScoreDTO searchScore(String sid) throws SQLException
	{
		MemberScoreDTO result = new MemberScoreDTO();
		
		String sql = "SELECT SID, NAME, KOR, ENG, MAT FROM VIEW_MEMBERSCORE WHERE SID=?";
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, Integer.parseInt(sid));
		
		ResultSet rs = pstmt.executeQuery();
		
		while(rs.next())
		{
			result.setSid(rs.getString("SID"));
			result.setName(rs.getString("NAME"));
			result.setKor(rs.getInt("KOR"));
			result.setEng(rs.getInt("ENG"));
			result.setMat(rs.getInt("MAT"));
		}
		
		rs.close();
		pstmt.close();
		
		return result;
	}
	
	// 메소드 추가
	// 성적 데이터 수정 담당 메소드
	public int modify(MemberScoreDTO score) throws SQLException
	{
		int result = 0;
		
		String sql = "UPDATE TBL_MEMBERSCORE SET KOR=?, ENG=?, MAT=? WHERE SID=?";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, score.getKor());
		pstmt.setInt(2, score.getEng());
		pstmt.setInt(3, score.getMat());
		pstmt.setInt(4, Integer.parseInt(score.getSid()));
		
		result = pstmt.executeUpdate();
		
		pstmt.close();
		
		return result;
	}
	
	// 메소드 추가
	// 성적 데이터 삭제 담당 메소드
	public int remove(String sid) throws SQLException
	{
		int result=0;
		
		String sql = "DELETE FROM TBL_MEMBERSCORE WHERE SID=?";
		
		PreparedStatement pstmt = conn.prepareStatement(sql);
		pstmt.setInt(1, Integer.parseInt(sid));
		
		result = pstmt.executeUpdate();
		
		pstmt.close();
		
		return result;
	}
	
	
}

 

 

 


 

 

 

 

MemberScoreSelect.jsp  : 회원 성적 관리 및 출력 페이지

+ 성적이 입력되지 않은 학생( : 각 점수가 -1 로 표시되는 학생)에 대해서는 입력 버튼만 활성화

+ 성적이 입력되어 있는 학생에 대해서는 수정 / 삭제 버튼 활성화

 

+ 입력에 대해서는 MemberScoreInsertForm.jsp / MemberScoreInsert.jsp

+ 수정에 대해서는 MemberScoreUpdateForm.jsp / MemberScoreUpdate.jsp

+ 삭제에 대해서는 MemberScoreDelete.jsp

<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
	StringBuffer str = new StringBuffer();
	str.append("<table class='table'>");
	
	str.append("<tr>");
	str.append("<th>번호</th>");
	str.append("<th>이름</th>");
	str.append("<th>국어점수</th>");
	str.append("<th>영어점수</th>");
	str.append("<th>수학점수</th>");
	str.append("<th>총점</th>");
	str.append("<th>평균</th>");
	str.append("<th>석차</th>");
	str.append("<th>성적처리</th>");
	
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		dao.connection();
		
		for(MemberScoreDTO member : dao.list())
		{
			str.append("<tr>");
			str.append("<td>"+ member.getSid()+"</td>");
			str.append("<td>"+ member.getName()+"</td>");
			str.append("<td class='txtScore'>"+ member.getKor()+"</td>");
			str.append("<td class='txtScore'>"+ member.getEng()+"</td>");
			str.append("<td class='txtScore'>"+ member.getMat()+"</td>");
			str.append("<td class='txtScore'>"+ member.getTot()+"</td>");
			str.append("<td class='txtScore'>"+ String.format("%.2f", member.getAvg())+"</td>");
			str.append("<td class='txtScore'>"+ member.getRank()+"</td>");
			
			str.append("<td>");
			
			if (member.getKor()==-1 && member.getEng()==-1 && member.getMat()==-1)
			{
				// 성적 처리가 되지 않은 상태 → 입력 가능 / 수정 및 삭제 불가
				str.append("<a href='MemberScoreInsertForm.jsp?sid="+ member.getSid() +"'>");
				str.append("<button type='button' class='btn01'>입력</button>");
				str.append("</a>");
				str.append("<button type='button' class='btn02' disabled='disabled'>수정</button>");
				str.append("<button type='button' class='btn02' disabled='disabled'>삭제</button>");
			}
			else
			{
				// 성적 처리 완료된 상태 → 입력 불가 / 수정 및 삭제 가능
				str.append("<button type='button' class='btn02' disabled='disabled'>입력</button>");
				str.append("<a href='MemberScoreUpdateForm.jsp?sid="+ member.getSid()+ "'>");
				str.append("<button type='button' class='btn01'>수정</button>");
				
				str.append("</a>");
				str.append("<a href='javascript:memberScoreDelete("+ member.getSid() + ", \"" + member.getName() + "\")'>");
				str.append("<button type='button' class='btn01'>삭제</button>");
				str.append("</a>");
			}

			str.append("</td>");
			str.append("</tr>");
		}
		
		str.append("</table>");
	}
	catch(Exception e)
	{
		System.out.println(e.toString());
	}
	finally
	{
		try
		{
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}
	

%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberScoreSelect.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/MemberScore.css">

<style type="text/css">
	a {text-decoration: none;}
</style>

<script type="text/javascript">

	function memberScoreDelete(sid, name)
	{
		// 확인
		//alert("번호 : " + sid + ", 이름 : " + name);
		
		// 이 회원의 성적 데이터를 정말 삭제할건지 확인
		
		// ※ name 문자열을 넘기는 과정에서 따옴표 구성에 유의할 것~!!!
		
		// 확인
		// alert("sid:" + sid + ", name:" + name);
		
		var res = confirm("번호 : " + sid + ", 이름 : " + name + "\n이 회원의 성적정보를 정말 삭제하시겠습니까?");
		
		// 확인
		//alert(res);
		//-- confirm() 함수를 통해 호출되는 창은
		//   true(확인) 또는 false(취소)를 반환하게 된다.
		
		// 확인 버튼 클릭 시 → res 가 true 일 때...		
		// MemberScoreDelete.jsp 페이지에 삭제 요청~!!!
		if (res)
			window.location.href="MemberScoreDelete.jsp?sid=" + sid;
		
	}

</script>

</head>
<body>

<div>
	<h1>회원 <span style="color: blue;">성적</span> 관리 및 출력 페이지</h1>
	<hr>
</div>

<div>
	<a href="MemberSelect.jsp"><button type="button">회원 명단 관리</button></a>
</div>
<br>

<div>
<!-- 번호 이름 국어점수 영어점수 수학점수 총점 평균 석차    성적처리   -->
<!--      .......................                 		입력 수정 삭제 -->
<!--      .......................                 		입력 수정 삭제 -->
<!--      .......................                 		입력 수정 삭제 -->
<!--      .......................                 		입력 수정 삭제 -->
<!--      .......................                		입력 수정 삭제 -->
<!--      .......................                 		입력 수정 삭제 -->
	<%=str.toString() %>
</div>		

</body>
</html>

 

 

MemberScoreDelete.jsp  : 회원 성적정보 삭제 기능 수행

MemberScoreSelect.jsp에서 확인을 받은 후 해당 학생의 번호(SID)를 넘겨 받아 수행함

<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>

<%
	// MemberScoreDelete.jsp
	
	// 이전 페이지(MemberScoreSelect.jsp)로부터 데이터 수신
	// → sid
	String sid = request.getParameter("sid");
	
	String strAddr = "";
	
	// MemberScoreDAO 인스턴스 생성
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		// 데이터베이스 연결
		dao.connection();
		
		// dao의 remove()메소드 호출 → (delete 쿼리문 수행)
		dao.remove(sid);
	}
	catch(Exception e)
	{
		System.out.println(e.toString());	
	}
	finally
	{
		try
		{
			// 데이터베이스 연결 종료
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}
	
	// 클라이언트에 새로운 페이지를 다시 요청할 수 있도록 안내
	response.sendRedirect("MemberScoreSelect.jsp");

// 보여주는 코드 제거
%>

 

 


 

 

MemberScoreInsertForm.jsp  : 성적 입력 폼 구성

(실질적인 insert가 이뤄지는 파일은 아님,

input에 작성된 내용 + 번호(SID)을 실제 insert가 이뤄지는 MemberScoreInsert.jsp로 넘겨줌)

+ 점수들의 입력값이 0~100사이에 존재해야 한다는 조건 → memberScoreSubmit() 함수 구성

+ form 자체를 가져와서 submit과 reset을 수행함

<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
	// 이전페이지(MemberScoreSelect.jsp)로부터 데이터 수신
	// → sid
	String sid = request.getParameter("sid");
	String name="";
	
	// name 을 조회하기 위해 dao 인스턴스 생성
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		//데이터베이스 연결
		dao.connection();
		
		MemberScoreDTO score = dao.searchScore(sid);
		
		name = score.getName();
	}
	catch(Exception e)
	{
		System.out.println(e.toString());
	}
	finally
	{
		try
		{
			//데이터베이스 연결 종료
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberScoreInsertForm.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/MemberScore.css">

<script type="text/javascript">

	function memberScoreSubmit()
	{
		// 확인
		//alert("함수 호출 확인~!!!");
		
		var memberScoreForm = document.getElementById("memberScoreForm");
		
		var kor = document.getElementById("kor");
		var eng = document.getElementById("eng");
		var mat = document.getElementById("mat");
		
		var korMsg = document.getElementById("korMsg");
		var engMsg = document.getElementById("engMsg");
		var matMsg = document.getElementById("matMsg");
		
		korMsg.style.display = "none";
		engMsg.style.display = "none";
		matMsg.style.display = "none";
		
		if(kor.value=="" || isNaN(kor.value) || Number(kor.value)<0 || Number(kor.value)>100)
		{
			korMsg.style.display="inline";
			kor.focus();
			return;
		}
		
		if(eng.value=="" || isNaN(eng.value) || Number(eng.value)<0 || Number(eng.value)>100)
		{
			engMsg.style.display="inline";
			eng.focus();
			return;
		}
		
		if(mat.value=="" || isNaN(mat.value) || Number(mat.value)<0 || Number(mat.value)>100)
		{
			matMsg.style.display="inline";
			mat.focus();
			return;
		}
		
		// form 을 직접 지정하여 submit 액션 수행
		memberScoreForm.submit();
	}
	
	function memberScoreReset()
	{
		var memberScoreForm = document.getElementById("memberScoreForm");
		
		var korMsg = document.getElementById("korMsg");
		var engMsg = document.getElementById("engMsg");
		var matMsg = document.getElementById("matMsg");
		
		korMsg.style.display = "none";
		engMsg.style.display = "none";
		matMsg.style.display = "none";
		
		memberScoreForm.reset();
		kor.focus();
	}

</script>

</head>
<body>

<div>
	<h1>회원 <span style="color: blue;">성적</span> 관리 및 
		<span style="color: red;">입력</span> 페이지</h1>
	<hr>
</div>

<div>
	<a href="MemberScoreSelect.jsp"><button type="button">회원 성적 관리</button></a>
</div>
<br>

<div>
	<!-- 회원 성적 데이터 입력 폼 구성 -->
	<form action="MemberScoreInsert.jsp?sid=<%=sid %>" method="post" id="memberScoreForm"> 
		<table class="table">
			<tr>
				<th>번호</th>
				<td>
					<!-- 5 -->
					<%=sid %>
				</td>
				<td></td>
			</tr>
			<tr>
				<th>이름</th>
				<td>
					<!-- 고길동 -->
					<%=name %>
				</td>
				<td></td>
			</tr>
			<tr>
				<th>국어점수</th>
				<td>
					<input type="text" id="kor" name="kor" class="txtScore">
				</td>
				<td>
					<span class="errMsg" id="korMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
			<tr>
				<th>영어점수</th>
				<td>
					<input type="text" id="eng" name="eng" class="txtScore">
				</td>
				<td>
					<span class="errMsg" id="engMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
			<tr>
				<th>수학점수</th>
				<td>
					<input type="text" id="mat" name="mat" class="txtScore">
				</td>
				<td>
					<span class="errMsg" id="matMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
		</table>
		<br>
		
		<a href="javascript:memberScoreSubmit()"><button type="button">입력하기</button></a>
		<a href="javascript:memberScoreReset()"><button type="button">취소하기</button></a>
		<a href="MemberScoreSelect.jsp"><button type="button">목록으로</button></a> 
		
	</form>
</div>

</body>
</html>

 

 

MemberScoreInsert.jsp  : 실질적인 insert기능 수행

완료된 후 다시 MemberScoreSelect.jsp로 안내(클라이언트를 만날 일 없음)

<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>

<%
	// MemberScoreInsert.jsp
	
	// 이전 페이지(MemberScoreInsertForm.jsp)로부터 데이터 수신
	// → kor, eng, mat + sid
	request.setCharacterEncoding("UTF-8");

	String sid = request.getParameter("sid");
	String kor = request.getParameter("kor");
	String eng = request.getParameter("eng");
	String mat = request.getParameter("mat");
	
	// MemberScoreDAO 인스턴스 생성
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		// 데이터베이스 연결
		dao.connection();
		
		// 수신된 데이터로 MemeberScoreDTO 구성
		MemberScoreDTO score = new MemberScoreDTO();
		
		score.setSid(sid);
		score.setKor(Integer.parseInt(kor));
		score.setEng(Integer.parseInt(eng));
		score.setMat(Integer.parseInt(mat));
		
		// dao의 add()메소드 호출 → 데이터 입력(insert 쿼리문 수행)
		dao.add(score);
		
		// 위 메소드 호출 결과 반환하는 값에 따라 결과 분기 처리 가능~!!!
		
	}
	catch(Exception e)
	{
		System.out.println(e.toString());	
	}
	finally
	{
		try
		{
			// 데이터베이스 연결 종료
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}
	
	// 클라이언트에 새로운 페이지를 다시 요청할 수 있도록 안내
	response.sendRedirect("MemberScoreSelect.jsp");

// 보여주는 코드 제거
%>

 

 


 

 

MemberScoreUpdateForm.jsp  : 수정을 위한 입력값을 받음

실질적인 update가 이뤄지는 파일은 아님,

input에 작성된 내용 + 번호(SID)을 실제 update가 이뤄지는 MemberScoreUpdate.jsp로 넘겨줌

+ 수정하려는 값을 입력하기 전에 이전 입력값이 input영역에 이미 입력되어있어야 함

+ 수정 역시, 점수들의 입력값이 0~100사이에 존재해야 한다는 조건 → memberScoreSubmit() 함수 구성

+ form 자체를 가져와서 submit과 reset을 수행함

<%@page import="com.test.MemberScoreDTO"%>
<%@page import="com.test.MemberScoreDAO"%>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
	// 이전페이지(MemberScoreSelect.jsp)로부터 데이터 수신
	// → sid
	String sid = request.getParameter("sid");
	String name="";
	int kor=0;
	int eng=0;
	int mat=0;
	
	// name 을 조회하기 위해 dao 인스턴스 생성
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		//데이터베이스 연결
		dao.connection();
		
		// 수신한 sid를 활용하여 name 및 각 과목의 기존 점수 얻어내기
		MemberScoreDTO score = dao.searchScore(sid);
		
		name = score.getName();
		kor = score.getKor();
		eng = score.getEng();
		mat = score.getMat();
	}
	catch(Exception e)
	{
		System.out.println(e.toString());
	}
	finally
	{
		try
		{
			//데이터베이스 연결 종료
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>MemberScoreInsertForm.jsp</title>
<link rel="stylesheet" type="text/CSS" href="css/MemberScore.css">

<script type="text/javascript">

	function memberScoreSubmit()
	{
		// 확인
		//alert("함수 호출 확인~!!!");
		
		var memberScoreForm = document.getElementById("memberScoreForm");
		
		var kor = document.getElementById("kor");
		var eng = document.getElementById("eng");
		var mat = document.getElementById("mat");
		
		var korMsg = document.getElementById("korMsg");
		var engMsg = document.getElementById("engMsg");
		var matMsg = document.getElementById("matMsg");
		
		korMsg.style.display = "none";
		engMsg.style.display = "none";
		matMsg.style.display = "none";
		
		if(kor.value=="" || isNaN(kor.value) || Number(kor.value)<0 || Number(kor.value)>100)
		{
			korMsg.style.display="inline";
			kor.focus();
			return;
		}
		
		if(eng.value=="" || isNaN(eng.value) || Number(eng.value)<0 || Number(eng.value)>100)
		{
			engMsg.style.display="inline";
			eng.focus();
			return;
		}
		
		if(mat.value=="" || isNaN(mat.value) || Number(mat.value)<0 || Number(mat.value)>100)
		{
			matMsg.style.display="inline";
			mat.focus();
			return;
		}
		
		// form 을 직접 지정하여 submit 액션 수행
		memberScoreForm.submit();
	}
	
	function memberScoreReset()
	{
		var memberScoreForm = document.getElementById("memberScoreForm");
		
		var korMsg = document.getElementById("korMsg");
		var engMsg = document.getElementById("engMsg");
		var matMsg = document.getElementById("matMsg");
		
		korMsg.style.display = "none";
		engMsg.style.display = "none";
		matMsg.style.display = "none";
		
		memberScoreForm.reset();
		kor.focus();
	}

</script>

</head>
<body>

<div>
	<h1>회원 <span style="color: blue;">성적</span> 관리 및 
		<span style="color: red;">수정</span> 페이지</h1>
	<hr>
</div>

<div>
	<a href="MemberScoreSelect.jsp"><button type="button">회원 성적 관리</button></a>
</div>
<br>

<div>
	<!-- 회원 성적 데이터 수정 폼 구성 -->
	<form action="MemberScoreUpdate.jsp?sid=<%=sid %>" method="post" id="memberScoreForm"> 
		<table class="table">
			<tr>
				<th>번호</th>
				<td>
					<!-- 5 -->
					<%=sid %>
				</td>
				<td></td>
			</tr>
			<tr>
				<th>이름</th>
				<td>
					<!-- 고길동 -->
					<%=name %>
				</td>
				<td></td>
			</tr>
			<tr>
				<th>국어점수</th>
				<td>
					<input type="text" id="kor" name="kor" class="txtScore" value="<%=kor %>">
				</td>
				<td>
					<span class="errMsg" id="korMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
			<tr>
				<th>영어점수</th>
				<td>
					<input type="text" id="eng" name="eng" class="txtScore" value="<%=eng %>">
				</td>
				<td>
					<span class="errMsg" id="engMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
			<tr>
				<th>수학점수</th>
				<td>
					<input type="text" id="mat" name="mat" class="txtScore" value="<%=mat %>">
				</td>
				<td>
					<span class="errMsg" id="matMsg">0~100 사이의 점수를 입력해야 합니다.</span>
				</td>
			</tr>
		</table>
		<br>
		
		<a href="javascript:memberScoreSubmit()"><button type="button">수정하기</button></a>
		<a href="javascript:memberScoreReset()"><button type="button">되돌리기</button></a>
		<a href="MemberScoreSelect.jsp"><button type="button">목록으로</button></a> 
		
	</form>
</div>

</body>
</html>

 

 

MemberScoreUpdate.jsp  : 실질적인 update기능 수행

완료된 후 다시 MemberScoreSelect.jsp로 안내(클라이언트를 만날 일 없음)

<%@page import="com.test.MemberScoreDAO"%>
<%@page import="com.test.MemberScoreDTO"%>
<%@ page contentType="text/html; charset=UTF-8"%>

<%
	// MemberScoreUpdate.jsp

	// 이전 페이지(MemberScoreUpdateForm.jsp)로부터 데이터 수신
	// → kor, eng, mat + sid
	String sid = request.getParameter("sid");
	int kor = Integer.parseInt(request.getParameter("kor"));
	int eng = Integer.parseInt(request.getParameter("eng"));
	int mat = Integer.parseInt(request.getParameter("mat"));
	
	// MemberScoreDAO 인스턴스 생성
	MemberScoreDAO dao = new MemberScoreDAO();
	
	try
	{
		dao.connection();
		
		MemberScoreDTO score = new MemberScoreDTO();
		
		score.setSid(sid);
		score.setKor(kor);
		score.setEng(eng);
		score.setMat(mat);
		
		dao.modify(score);
		
	}
	catch(Exception e)
	{
		System.out.println(e.toString());
	}
	finally
	{
		try
		{
			dao.close();
		}
		catch(Exception e)
		{
			System.out.println(e.toString());
		}
	}

	// 변경된 URL로 다시 요청할 수 있도록 안내
	response.sendRedirect("MemberScoreSelect.jsp");

%>

 

 


! 배워가고 있는 주인장이 쓴 글이니 정보의 정확성에 유의하시기 바랍니다 !