수정 작업 순서 요령
1. 출력에서 수정을 클릭하면 지정한곳(.jsp)를 ...jsp 이름을 적재 이동
2. 이동한 jsp 파일에서 넘겨받은 이름과 동일한 자료를 디비에서 찾기
3. 동일한 이름을 찾았으면 그 이름에 해당되는 모든 자료를 화면에 출력..입력
폼 형식으로 자료를 보이게 하고 입력(수정자료)하여
4. 폼에서 입력한 (수정완료) 자료들을 또 다른 jsp 로 넘김
5. 넘겨받은 jsp 파일은 넘겨받은 자료들을 객체화 시켜 DAO의 수정기능 메소드 전달
6. DAO의 수정기능의 메소드는 업데이트를 실행하여 수정이 완료
검증(Verification) : 유효성검사 : 사용자가 올바른 데이터만 입력 받고자 할때
클라이언트 : 사용자가 자료입력시 클라이언트 폼에서 검증
사용법
1. 폼의 이름을 반드시 입력한다.
2. 검증 범위의 값 설정과 입력한 자료를 비교시 .test() 함수를 사용..
존재하면 참... 아니면 거짓...
3. 자바스크립트에서 사용
4. var 변수 =/^[시작값 - 마지막값]$/;
ex) 아이디는 영어 소,대,숫자 var cid=/^[a-zA-Z0-9]$/;
ex) 이름 입력시 한글로만 입력조건
var vname =/^[가-힣]*$/;
길이제한이 들어가면 /^[가-힣]{3,5}$/;
package day8_DB1;
public class DTO {
String name;
int kor,eng,mat,tot;
public DTO() {}
public DTO(String name, int kor, int eng, int mat, int tot) {
super();
this.name = name;
this.kor = kor;
this.eng = eng;
this.mat = mat;
this.tot = tot;
}
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;
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<br><br><br>
<div align="center">
<a href = "input.jsp"><button>성적입력</button></a>
<a href = "out.jsp"><button>성적출력</button></a>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
th,td {
text-align: center;
}
</style>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="save.jsp" method="post">
<table border="1" align="center">
<caption>회원성적입력</caption>
<tr>
<th>이름</th>
<td><input type="text" name="name"></td>
</tr>
<tr>
<th>국어</th>
<td><input type="text" name="kor"></td>
</tr>
<tr>
<th>영어</th>
<td><input type="text" name="eng"></td>
</tr>
<tr>
<th>수학</th>
<td><input type="text" name="mat"></td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" value="전송">
<input type="reset" value="초기화">
<a href = "menu.jsp">
<input type="button" value="메뉴"></a>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@page import="day8_DB1.DAO"%>
<%@page import="day8_DB1.DTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String name;
int kor,eng,mat,tot;
%>
<%
request.setCharacterEncoding("utf-8");
name = request.getParameter("name");
kor = Integer.parseInt(request.getParameter("kor"));
eng = Integer.parseInt(request.getParameter("eng"));
mat = Integer.parseInt(request.getParameter("mat"));
tot = kor+eng+mat;
DTO dto = new DTO(name,kor,eng,mat,tot);
DAO dao = new DAO();
dao.insert(dto);
response.sendRedirect("menu.jsp");
%>
</body>
</html>
<%@page import="java.sql.ResultSet"%>
<%@page import="day8_DB1.DAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
th,td {
text-align: center;
}
button {
border: none;
background-color: #ffffff;
cursor: pointer;
}
</style>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String name;
int kor,eng,mat,tot;
%>
<%
DAO dao = new DAO();
ResultSet rs = dao.out();
%>
<table border="1" align="center" width="500px">
<tr>
<th>이름</th><th>국어</th><th>영어</th>
<th>수학</th><th>총점</th><th>비고</th>
</tr>
<%
while(rs.next()) {
name = rs.getString(1);
kor = rs.getInt(2);
eng = rs.getInt(3);
mat = rs.getInt(4);
tot = rs.getInt(5);
%>
<tr>
<td><%=name%></td><td><%=kor%></td><td><%=eng%></td>
<td><%=mat%></td><td><%=tot%></td>
<td>
<a href="delete.jsp?name=<%=name%>"><button>❌</button></a>
<a href="modify1.jsp?name=<%=name%>"><button>✅</button></a>
</td>
</tr>
<%
}
%>
</table>
<div align="center">
<a href ="menu.jsp"><input type="button" value="메뉴"></a>
</div>
</body>
</html>
<%@page import="day8_DB1.DAO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String dname;
%>
<%
request.setCharacterEncoding("utf-8");
dname = request.getParameter("name");
DAO dao = new DAO();
dao.delete(dname);
response.sendRedirect("menu.jsp");
%>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ include file="dbcon.jsp" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String mname;
int kor,eng,mat,tot;
%>
<%
request.setCharacterEncoding("utf-8");
mname = request.getParameter("name");
String sql = "select * from DB01251 where name=?";
psmt = con.prepareStatement(sql);
psmt.setString(1, mname);
rs = psmt.executeQuery(); //이름이 동일한 1개의
if(rs.next()) {
mname = rs.getString(1);
kor = rs.getInt(2);
eng = rs.getInt(3);
mat = rs.getInt(4);
tot = rs.getInt(5);
}
%>
<form action="modify2.jsp" method="post">
<table border="1" align="center">
<tr>
<th>이름</th>
<td><input type="text" name="name" value="<%=mname%>" readonly></td>
</tr>
<tr>
<th>국어</th>
<td><input type="text" name="kor" value="<%=kor%>"></td>
</tr>
<tr>
<th>영어</th>
<td><input type="text" name="eng" value="<%=eng%>"></td>
</tr>
<tr>
<th>수학</th>
<td><input type="text" name="mat" value="<%=mat%>"></td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="submit" value="수정완료">
<input type="reset" value="초기화">
<a href="menu.jsp"><input type="button" value="메뉴"></a>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@page import="day8_DB1.DAO"%>
<%@page import="day8_DB1.DTO"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%!
String name;
int kor,eng,mat,tot;
%>
<%
request.setCharacterEncoding("utf-8");
name = request.getParameter("name");
kor = Integer.parseInt(request.getParameter("kor"));
eng = Integer.parseInt(request.getParameter("eng"));
mat = Integer.parseInt(request.getParameter("mat"));
tot = kor+eng+mat;
DTO dto = new DTO(name,kor,eng,mat,tot);
DAO dao = new DAO();
dao.modify(dto);
response.sendRedirect("menu.jsp");
%>
</body>
</html>
package day8_DB1;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class DAO {
Connection con;
PreparedStatement psmt;
ResultSet rs;
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
public DAO() throws ClassNotFoundException {
Class.forName(driver);
try {
con = DriverManager.getConnection(url, "ezen", "12345");
} catch (SQLException e) {
e.printStackTrace();
}
}
public void insert(DTO dto) {
String name = dto.getName();
int kor = dto.getKor();
int eng = dto.getEng();
int mat = dto.getMat();
int tot = dto.getTot();
String sql = "insert into DB01251 values (?,?,?,?,?)";
try {
psmt = con.prepareStatement(sql);
psmt.setString(1,name);
psmt.setInt(2, kor);
psmt.setInt(3, eng);
psmt.setInt(4, mat);
psmt.setInt(5, tot);
psmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
//DB자료를 화면에 표시
public ResultSet out() {
String sql = "select * from DB01251";
try {
psmt = con.prepareStatement(sql);
rs = psmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public void delete(String dname) {
String sql = "delete from DB01251 where name=?";
try {
psmt = con.prepareStatement(sql);
psmt.setString(1, dname);
psmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void modify(DTO dto) {
String mname= dto.getName();
int mkor = dto.getKor();
int meng = dto.getEng();
int mmat = dto.getMat();
int mtot = dto.getTot();
String sql = "update DB01251 set kor=?,eng=?,mat=?,tot=? where name=?";
try {
psmt = con.prepareStatement(sql);
psmt.setInt(1, mkor);
psmt.setInt(2, meng);
psmt.setInt(3, mmat);
psmt.setInt(4, mtot);
psmt.setString(5, mname);
psmt.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
th,td {
text-align: center;
}
</style>
<script type="text/javascript">
function check(){//자바스크립트 영역
//이름 검증
var f = document.form1;
var vname = /^[가-힣]{3,5}$/; //이름은 한글로만 검증설정범위
var cname = f.name.value; //사용자가 입력한 값을 가져와서 비교
if(cname=="") {
alert("이름은 공백이면 안됩니다!");//알림창이 뜨면 확인을 누르면
f.name.select();
return false;
}
if(!vname.test(cname)) {
alert("이름은 한글로만 입력.. 길이3-5자이내");
f.name.select();
return false;
}
//국어점수
var vkor = /^[\d]{1,3}$/; //국어점수 검증범위 숫자면서 3자리
var ckor = f.kor.value; //입력한 국어 점수 값
if(ckor=="") {
alert("국어점수는 공백이면 안됩니다!");
f.kor.select();
return false;
}
if(ckor>=0 && ckor<=100) {
}
else {
alert("국어점수 0-100 사이에서만 입력");
f.kor.select();
return false;
}
if(!vkor.test(ckor)) {
alert("국어점수는 숫자로만 입력!!");
f.kor.select();
return false;
}
//전화번호 체크
var vphone = /^[\d]{3}-[\d]{4}-[\d]{4}$/;
var cphone = f.phone.value;
if(cphone=="") {
alert("전화번호는 반드시 기입해야됩니다!")
f.phone.select();
return false;
}
if(!vphone.test(cphone)) {
alert("전화번호는 000-0000-0000 형식으로 입력하세요")
f.phone.select();
return false;
}
//아이디 체크
var vid = /^[a-zA-Z0-9]{3,9}$/;
var cid = f.id.value;
if(cid == "") {
alert("아이디는 반드시 기입해야됩니다!")
f.id.select();
return false;
}
if(!vid.test(cid)) {
alert("아이디는 대소문자,숫자 형식으로 3~9자 입력하세요.")
f.id.select();
return false;
}
////////////
f.submit();
}
</script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="save.jsp" method="post" name="form1">
<table border="1" align="center">
<caption>회원성적입력</caption>
<tr>
<th>이름</th>
<td><input type="text" name="name"></td>
</tr>
<tr>
<th>국어</th>
<td><input type="text" name="kor"></td>
</tr>
<tr>
<th>영어</th>
<td><input type="text" name="eng"></td>
</tr>
<tr>
<th>수학</th>
<td><input type="text" name="mat"></td>
</tr>
<tr>
<th>전화번호</th>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<th>아이디</th>
<td><input type="text" name="id"></td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="button" value="전송" onclick="check()">
<input type="reset" value="초기화">
<a href = "menu.jsp">
<input type="button" value="메뉴"></a>
</td>
</tr>
</table>
</form>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
th,td {
text-align: center;
}
</style>
<script type="text/javascript">
function check() {
var f = document.form1;
var vid = /^[a-zA-Z0-9]{3,9}$/;
var cid = f.id.value;
if(cid=="") {
alert("아이디 공백은 안됩니다.");
f.id.select();
return false;
}
if(!vid.test(cid)){
alert("아이디 대소문자 숫자, 3~9글자 가능");
f.id.select();
return false;
}
var vpw = /^[0-9]{4,9}$/;
var cpw = f.pw.value;
if(cpw==""){
alert("비밀번호 공백은 안됩니다.");
f.pw.select();
return false;
}
if(vpw.test(cpw)){
}
else{
alert("비밀번호 숫자 4~9글자 가능");
f.pw.select();
return false;
}
var vname = /^[가-힣]{2,5}$/;
var cname = f.name.value;
if(cname==""){
alert("이름 공백은 안됩니다.");
f.name.select();
return false;
}
if(vname.test(cname)){
}
else{
alert("이름 한글로만 입력 2~5자.");
f.name.select();
return false;
}
var vphone = /^[\d]{3}-[\d]{4}-[\d]{4}$/;
var cphone = f.phone.value;
if(cphone==""){
alert("전화번호 공백은 안됩니다.");
f.phone.select();
return false;
}
if(vphone.test(cphone)){
}
else{
alert("전화번호는 000-0000-0000형식");
f.phone.select();
return false;
}
///////
f.submit();
}
</script>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="save.jsp" method="post" name="form1">
<table border="1" align="center">
<tr>
<th>아이디</th>
<td><input type="text" name="id"></td>
</tr>
<tr>
<th>비밀번호</th>
<td><input type="password" name="pw"></td>
</tr>
<tr>
<th>이름</th>
<td><input type="text" name="name"></td>
</tr>
<tr>
<th>전화번호</th>
<td><input type="text" name="phone"></td>
</tr>
<tr>
<th>성별</th>
<td><input type="radio" name="gender" value="남자">남자
<input type="radio" name="gender" value="여자">여자</td>
</tr>
<tr>
<td colspan="3" align="center">
<input type="button" value="전송" onclick="check()">
<input type="reset" value="초기화">
<a href = "menu.jsp">
<input type="button" value="메뉴"></a>
</td>
</tr>
</table>
</form>
</body>
</html>
댓글