겉바속촉

[html] jsp로 DB에 저장하기 2 본문

IT일기(하반기)/블록체인

[html] jsp로 DB에 저장하기 2

겉바속촉 2020. 6. 22. 01:19
728x90
반응형

항상 프로젝트 해주실때마다

다음과 같이 설정해주셔야합니다:)

 

JspProject - 우클릭 - Configure - Convert ..... 

다음과 같이 3가지 체크해주세요

 

Browser, CKEditor, Jquery 체크체크

table 하나 생성해주세요

 

refresh 해보시면

다음과 같이 sinsang table이 만들어졌죠?

 

 

자바 로 오셔서

다음 표시해준 것과 같이 package(안에 class2개), folder(안에 jsp file 3개) 생성해주세요:)

 

 

1. sinsangDTO 만들기

 

변수 선언해주시고

자동생성으로 setter getter들 작성해주세요:)

 

source - generate getters and setters

 

 

select all - generate

 

 

그러면 다음과 같이 쭈루르르르륵 만들어집니다

 

 

sinsangDTO 전체 코드

package sinsang.model;

public class SinsangDTO {

	private String num;
	private String name;
	private String blood;
	private String hp;
	private String birth;
	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getBlood() {
		return blood;
	}
	public void setBlood(String blood) {
		this.blood = blood;
	}
	public String getHp() {
		return hp;
	}
	public void setHp(String hp) {
		this.hp = hp;
	}
	public String getBirth() {
		return birth;
	}
	public void setBirth(String birth) {
		this.birth = birth;
	}
	
	
}

 

2. sinsangDAO만들기 (생성자-connection)

 

우리는 insert메서드 먼저 만들어줄게요:)

디비창에서 driver랑 url 복사해와서 붙여넣기 해주셔야 됩니다!!

package sinsang.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class SinsangDAO {
	
	String driver="oracle.jdbc.driver.OracleDriver";
	String url="jdbc:oracle:thin:@localhost:1521:XE";
	
	//생성자
	public SinsangDAO() {
		try {
			Class.forName(driver);
			System.out.println("오라클드라이버 성공");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("오라클드라이버 실패");
				
		}
	}
	
	////////////connection
	
	public Connection getConnection()
	{
			Connection conn=null;
			
			try {
				conn=DriverManager.getConnection(url, "아이디", "비밀번호");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				System.out.println("커넥션실패");
			}
			
			return conn;
	}
		
		//////////////////////insert
		public void sinsangInsert(SinsangDTO dto)
		{
			Connection conn=null;
			PreparedStatement pstmt=null;
			
			String sql="insert into sinsang values(seq1.nextval,?,?,?,?)";
			
			conn=getConnection();
			try {
				pstmt=conn.prepareStatement(sql);
				
				pstmt.setString(1, dto.getName());
				pstmt.setString(2, dto.getBlood());
				pstmt.setString(3, dto.getHp());
				pstmt.setString(4, dto.getBirth());
				
				pstmt.executeUpdate();
				
				} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				try {
					pstmt.close();
					conn.close();
					
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		}
				

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			SinsangDAO dao = new SinsangDAO();
	}

}

 

3. sinsangform만들기

 

우리가 정보를 입력할 form을 만들어주셔야되겠죠?

다음과 같이 작성해주세요:)

이름-혈액형-핸드폰-생년월일 요 순서입니다

퀀텀창에서 만들어줬던 컬럼명과 동일하게 해주세요

 

그리고 핸드폰 번호 hp는 hp1, hp2, hp3로 나눠주세요

hp1은 010, 011..... 등등 고를 수 있게 해주고

hp2와 hp3는 직접 입력하는 형태로 만들게요:)

 

<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript">
	function goFocus(hp) {
		if(hp.value.length==4)
			frm.hp3.focus();		
	}
</script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<form action="sinsangAction.jsp" method="post" name="frm">

	<table class="table table-bordered" style="width: 40%">
		<caption>신상정보</caption>
		<tr>
			<th>이름</th>
			<td><input type="text" name="name" size="8"
			placeholder="이름" required="required">
			</td>
		</tr>
		<tr>
			<th>혈액형</th>
			<td>
				<select size="1" name="blood">
					<option value="A">A형</option>
					<option value="B">B형</option>
					<option value="O">O형</option>
					<option value="AB">AB형</option>				
				</select>
			</td>
		</tr>
		<tr>
			<th>핸드폰</th>
			<td>
				<select size="1" name="hp1">
					<option value="010">010</option>
					<option value="011">011</option>
					<option value="017">017</option>
					<option value="031">031</option>				
				</select>
				<b>-</b>
				<input type="text" name="hp2" size="3"
				required="required" onkeyup="goFocus(this)">
				<b>-</b>
				<input type="text" name="hp3" size="3"
				required="required">
			</td>		
		</tr>
		<tr>
			<th>생년월일</th>
			<td>
				<input type="date" name="birth"
				required="required">
			</td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="db저장">
				<input type="button" value="목록"
				onclick="location.href='sinsangList.jsp'">
			</td>
		</tr>
	</table>
	
</form>

</body>
</html>

 

여기서 포인트는 지난번과 다르게

이름 란에

required="required" 추가를 했다는 점입니다

데이터를 반드시 입력해야한다고 설정해주는 것이에요:)

폼에서 보시면 다음과 같이 이 입력란을 작성하세요 라고 뜹니다!!

또한 hp2에는  onkeyup="goFocus(this)"를 추가해서

번호 입력하면 커서가 다음 칸으로 이동하게 해주었습니다

 

 

여기까지 만드셨다면 컴파일 하고 확인해주세요:)

다음과 같이 우리가 만든 폼이 뜹니다

 

 

그래서 db저장을 누르면 list페이지로 이동되는지 주소 확인해주세요

이동이 잘 된다면

 

 

 

 

4. sinsangAction 만들기

 

핸드폰 번호는 칸이 3개가 되기 때문에

데이터를 가져올 때에는 

각각 가져와서 합쳐주시면 되겠죠??

String hp=request.getParameter("hp1")+"-"+request.getParameter("hp2")+"-"+request.getParameter("hp3");

연산자도 중간 중간 넣어주시구요!

 

sinsangAction 구조

  • getParameter로 가지고 오기
  • 변수 저장되어 있는 DTO 객체 생성해준 후 parameter로 가져와서 저장한 변수 넣어주기
  • 실행될 메서드들이 있는 DAO 객체 생성해준 후 DAO에서 작성했던 insert함수 실행
  • sinsangList로 이동하기
<%@page import="sinsang.model.SinsangDAO"%>
<%@page import="sinsang.model.SinsangDTO"%>
<%@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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<%
request.setCharacterEncoding("utf-8");

String name=request.getParameter("name");
String blood=request.getParameter("blood");
String hp=request.getParameter("hp1")+"-"+request.getParameter("hp2")+"-"+request.getParameter("hp3");
String birth=request.getParameter("birth");


SinsangDTO dto=new SinsangDTO();

dto.setName(name);
dto.setBlood(blood);
dto.setHp(hp);
dto.setBirth(birth);

SinsangDAO dao=new SinsangDAO();
dao.sinsangInsert(dto);

response.sendRedirect("sinsangList.jsp");

%>

</body>
</html>

 

 

 

 

5. sinsangList 만들기

 

이제는 우리가 입력한 값이 list에 떠야 합니다

그렇기 때문에 그 과정이 실행될 메서드를 DAO가서 작성해주셔야겠죠?!

다음과 같이 데이터를 받아올 메서드를 DAO에 추가 작성해주세요:)

getAllDatas()함수 만들어주시는 거에요

 

벡터로 다 받아오기 위해서 public Vector<SinsangDTO>라고 해주었습니다.

 

그리고 while 문을 작성해주시는데

while(rs.next()) ---> rs.next()가 true일 때까지 반복한다는 뜻입니다.

                           즉, rs에서 다음에 값이 있을 때까지 반복할거야! 라는 뜻!!

 

 

DAO에 추가 작성

//////////////전체 데이터 받기
		public Vector<SinsangDTO> getAllDatas()
		{
			Vector<SinsangDTO> list=new Vector<SinsangDTO>();
			
			Connection conn=null;
			PreparedStatement pstmt=null;
			ResultSet rs=null;
			
			String sql="select * from sinsang order by num asc";
			
			conn=getConnection();
			try {
				pstmt=conn.prepareStatement(sql);
				rs=pstmt.executeQuery();
				
				while(rs.next()) //rs가 next일때까지 반복할거야
				{
					
					SinsangDTO dto=new SinsangDTO();
					
					dto.setNum(rs.getString("num"));
					dto.setName(rs.getString("name"));
					dto.setBlood(rs.getString("blood"));
					dto.setHp(rs.getString("hp"));
					dto.setBirth(rs.getString("birth"));
					
					list.add(dto);	
							
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				try {
					rs.close();
					pstmt.close();
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			return list;
								
		}
				

 

 그리고 sinsangList작성해주시면 됩니다

여기서 포인트는 list는 length가 아니고 size인 것 기억해주세요:)

<%@page import="java.util.Vector"%>
<%@page import="sinsang.model.SinsangDTO"%>
<%@page import="sinsang.model.SinsangDAO"%>
<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<%
SinsangDAO dao=new SinsangDAO();
Vector<SinsangDTO> list = dao.getAllDatas();


%>
<a href="sinsangForm.jsp">데이터추가</a>
<hr>

<div class="container">
<table class="table table-bordered">
	<caption>신상정보</caption>
	<tr>
		<th>번호</th>
		<th>이름</th>
		<th>혈액형</th>
		<th>핸드폰</th>
		<th>생년월일</th>		
		<th>편집</th>	
	</tr>
	
	<%
	
	for(int i=0;i<list.size();i++)
	{
		SinsangDTO dto=list.get(i);
		%>
		<tr>
			<td align="center"><%=i+1%></td>
			<td><%=dto.getName()%></td>
			<td><%=dto.getBlood()%></td>
			<td><%=dto.getHp()%></td>
			<td><%=dto.getBirth()%></td>
			<td><a>수정</a>/<a>삭제</a>
		</tr>
			
	<%}
	%>

</table>
</div>


</body>
</html>

 

다음과 같이 list가 출력이 됩니다:)

저기서 데이터추가를 클릭했더니

또 입력 폼이 등장하는지도 확인해주세요:)

이제 list에 있는 수정을 누르면 수정이 가능해지도록 해볼게요:)

다음과 같이 ssUpdateAction이랑 ssUpdateForm 이름을 가진 jsp파일 2개를 만들어주세요

 

 

수정을 누르면 입력폼이 다시 와야하는 데

 

그  입력폼에 우리가 수정을 누른 그 사람의 정보

기본으로 떠있게끔 코드 작성해줄거에요:)

 

 

5. ssUpdateForm 만들기

 

아까 만들어둔 sinsangForm 파일의 코드들을 복사해서 데려와주세요

form부분을 복사해서 가져와주시면 됩니다

그리고 고쳐주셔야해요!!

 

 

 

form부분들 드래그 하셔서 복붙해 가지고 와주세요!!

그리고 action="sinsangAction.jsp" ---> action="ssUpdateAction.jsp"  로 고쳐야겠쥬?

 

 

 

 

placeholder, required 필요없기 때문에 value값을 넣어주시는 건데요:)

이 value값은 dto값이 되겠죠??

그래서 value="<%=dto.getName()%> 이라고 적어주시는 겁니다

 

 

< 이름 부분 >

 

 

< 혈액형 부분 >

 

이제는 우리가 배열을 넣어줄거에요

String []str={"A","B","O","AB"}; --->이런식으로요

그리고 for문 생성해주세요 ---> 그 안에 if문 넣어주시는 겁니다

 

다음과 같은 구조로 이해해주세요

 

 

 

 

 

그리고 자세히 살펴봅시다!

 

 

3. 핸드폰번호 부분

 

여기서 포인트는 hp가 각각 세부분 hp1, hp2, hp3로 되어있기 때문에

분해해서 가져와야 하는데요

이 때 사용해주는 것이 바로 토크나이저 Tokenizer 입니다.

 

StringTokenizer st = new StringTokenizer(나누어줄 것, "나누어줄 기준")

핸드폰 번호 사이에 우리가 "-"를 넣었기 때문에 얘를 기준으로 나눠줄게요

 

 

 

< 생년월일 부분 >

 

 

 

5. ssUpdateAction 만들기

 

6. ssDelete 만들기

 

 

코드블럭

 

전체 sinsangDAO 코드

package sinsang.model;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Vector;

public class SinsangDAO {
	
	String driver="oracle.jdbc.driver.OracleDriver";
	String url="jdbc:oracle:thin:@localhost:1521:XE";
	
	//생성자
	public SinsangDAO() {
		try {
			Class.forName(driver);
			System.out.println("오라클드라이버 성공");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println("오라클드라이버 실패");
				
		}
	}
	
	////////////connection
	
	public Connection getConnection()
	{
			Connection conn=null;
			
			try {
				conn=DriverManager.getConnection(url, "gutba", "sokchock");
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				System.out.println("커넥션실패");
			}
			
			return conn;
	}
		
		//////////////////////insert
		public void sinsangInsert(SinsangDTO dto)
		{
			Connection conn=null;
			PreparedStatement pstmt=null;
			
			String sql="insert into sinsang values(seq1.nextval,?,?,?,?)";
			
			conn=getConnection();
			try {
				pstmt=conn.prepareStatement(sql);
				
				pstmt.setString(1, dto.getName());
				pstmt.setString(2, dto.getBlood());
				pstmt.setString(3, dto.getHp());
				pstmt.setString(4, dto.getBirth());
				
				pstmt.executeUpdate();
				
				} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				try {
					pstmt.close();
					conn.close();
					
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				
			}
			
		}
		}
		
		//////////////전체 데이터 받기
		public Vector<SinsangDTO> getAllDatas()
		{
			Vector<SinsangDTO> list=new Vector<SinsangDTO>();
			
			Connection conn=null;
			PreparedStatement pstmt=null;
			ResultSet rs=null;
			
			String sql="select * from sinsang order by num asc";
			
			conn=getConnection();
			try {
				pstmt=conn.prepareStatement(sql);
				rs=pstmt.executeQuery();
				
				while(rs.next()) //rs가 next일때까지 반복할거야
				{
					
					SinsangDTO dto=new SinsangDTO();
					
					dto.setNum(rs.getString("num"));
					dto.setName(rs.getString("name"));
					dto.setBlood(rs.getString("blood"));
					dto.setHp(rs.getString("hp"));
					dto.setBirth(rs.getString("birth"));
					
					list.add(dto);	
							
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				try {
					rs.close();
					pstmt.close();
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
			}
			return list;
								
		}
		/////////////////////수정하기전 수정하려는 하나의 데이타 가져오기
		
		public SinsangDTO getData(String num)
		{
			SinsangDTO dto=new SinsangDTO();
			
			Connection conn=null;
			PreparedStatement pstmt=null;
			ResultSet rs=null;
			
			String sql="select * from sinsang where num=?";
			
			conn=getConnection();
			try {
				pstmt=conn.prepareStatement(sql);
				pstmt.setString(1, num);
				rs=pstmt.executeQuery();
				
				if(rs.next())
				{
					dto.setNum(rs.getString("num"));
					dto.setName(rs.getString("name"));
					dto.setBlood(rs.getString("blood"));
					dto.setHp(rs.getString("hp"));
					dto.setBirth(rs.getString("birth"));
										
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally {
				try {
					rs.close();
					pstmt.close();
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				
				
			}
			
			
			
			return dto;
		}
				

		public static void main(String[] args) {
			// TODO Auto-generated method stub
			SinsangDAO dao = new SinsangDAO();
	}

}

 

sinsangDTO

package sinsang.model;

public class SinsangDTO {

	private String num;
	private String name;
	private String blood;
	private String hp;
	private String birth;
	public String getNum() {
		return num;
	}
	public void setNum(String num) {
		this.num = num;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getBlood() {
		return blood;
	}
	public void setBlood(String blood) {
		this.blood = blood;
	}
	public String getHp() {
		return hp;
	}
	public void setHp(String hp) {
		this.hp = hp;
	}
	public String getBirth() {
		return birth;
	}
	public void setBirth(String birth) {
		this.birth = birth;
	}
	
	
}

 

sinsangForm

<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<script type="text/javascript">
	function goFocus(hp) {
		if(hp.value.length==4)
			frm.hp3.focus();		
	}
</script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<form action="sinsangAction.jsp" method="post" name="frm">

	<table class="table table-bordered" style="width: 40%">
		<caption>신상정보</caption>
		<tr>
			<th>이름</th>
			<td><input type="text" name="name" size="8"
			placeholder="이름" required="required">
			</td>
		</tr>
		<tr>
			<th>혈액형</th>
			<td>
				<select size="1" name="blood">
					<option value="A">A형</option>
					<option value="B">B형</option>
					<option value="O">O형</option>
					<option value="AB">AB형</option>				
				</select>
			</td>
		</tr>
		<tr>
			<th>핸드폰</th>
			<td>
				<select size="1" name="hp1">
					<option value="010">010</option>
					<option value="011">011</option>
					<option value="017">017</option>
					<option value="031">031</option>				
				</select>
				<b>-</b>
				<input type="text" name="hp2" size="3"
				required="required" onkeyup="goFocus(this)">
				<b>-</b>
				<input type="text" name="hp3" size="3"
				required="required">
			</td>		
		</tr>
		<tr>
			<th>생년월일</th>
			<td>
				<input type="date" name="birth"
				required="required">
			</td>
		</tr>
		<tr>
			<td colspan="2" align="center">
				<input type="submit" value="db저장">
				<input type="button" value="목록"
				onclick="location.href='sinsangList.jsp'">
			</td>
		</tr>
	</table>
	
</form>

</body>
</html>

 

sinsangAction

<%@page import="sinsang.model.SinsangDAO"%>
<%@page import="sinsang.model.SinsangDTO"%>
<%@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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<%
request.setCharacterEncoding("utf-8");

String name=request.getParameter("name");
String blood=request.getParameter("blood");
String hp=request.getParameter("hp1")+"-"+request.getParameter("hp2")+"-"+request.getParameter("hp3");
String birth=request.getParameter("birth");

SinsangDTO dto=new SinsangDTO();

dto.setName(name);
dto.setBlood(blood);
dto.setHp(hp);
dto.setBirth(birth);

SinsangDAO dao=new SinsangDAO();
dao.sinsangInsert(dto);

response.sendRedirect("sinsangList.jsp");

%>

</body>
</html>

sinsangList

<%@page import="java.util.Vector"%>
<%@page import="sinsang.model.SinsangDTO"%>
<%@page import="sinsang.model.SinsangDAO"%>
<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<%
SinsangDAO dao=new SinsangDAO();
Vector<SinsangDTO> list = dao.getAllDatas();


%>
<a href="sinsangForm.jsp">데이터추가</a>
<hr>

<div class="container">
<table class="table table-bordered">
	<caption>신상정보</caption>
	<tr>
		<th>번호</th>
		<th>이름</th>
		<th>혈액형</th>
		<th>핸드폰</th>
		<th>생년월일</th>		
		<th>편집</th>	
	</tr>
	
	<%
	
	for(int i=0;i<list.size();i++)
	{
		SinsangDTO dto=list.get(i);
		%>
		<tr>
			<td align="center"><%=i+1%></td>
			<td><%=dto.getName()%></td>
			<td><%=dto.getBlood()%></td>
			<td><%=dto.getHp()%></td>
			<td><%=dto.getBirth()%></td>
			<td><a href="ssUpdateForm.jsp?num=<%=dto.getNum()%>">수정</a>/<a>삭제</a>
		</tr>
			
	<%}
	%>

</table>
</div>


</body>
</html>

 

ssUpdateForm

<%@page import="java.util.StringTokenizer"%>
<%@page import="sinsang.model.SinsangDTO"%>
<%@page import="sinsang.model.SinsangDAO"%>
<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>
<%
String num=request.getParameter("num");

SinsangDAO dao=new SinsangDAO();
SinsangDTO dto=dao.getData(num);

%>

<form action="ssUpdateAction.jsp" method="post" name="frm">

	<table class="table table-bordered" style="width: 40%">
		<caption>신상정보</caption>
		<tr>
			<th>이름</th>
			<td><input type="text" name="name" size="8"
			value="<%=dto.getName() %>">
			</td>
		</tr>
		<tr>
			<th>혈액형</th>
			<td>
				<select size="1" name="blood">
				
				<%
				String []str={"A","B","O","AB"};
				
				for(int i=0; i<str.length; i++)
				{
					if(dto.getBlood().equalsIgnoreCase(str[i]))
							{%>
								<option value="<%=str[i]%>" selected="selected"><%=str[i]%>형
								</option>
								
							<%}else
							{%>
								<option value="<%=str[i]%>"><%=str[i]%>형
								</option>
							<%}
				}
				
				%>		
				</select>
			</td>
		</tr>
		
		
		<tr>
		<%
		//구분자 - 로 한다
		StringTokenizer st=new StringTokenizer(dto.getHp(),"-"); //뭐를 나눌지, 뭘 구분자로 할지
		String hp1=st.nextToken();
		String hp2=st.nextToken();
		String hp3=st.nextToken();
		%>
			<th>핸드폰</th>
			<td>
				<select size="1" name="hp1">
				
				<%
				String []strHp={"010","011","017","031"};
				
				for(int i=0; i<strHp.length; i++)
				{
					if(hp1.equals(strHp[i]))
					{%>					
						<option value="<%=strHp[i]%>" selected="selected"><%=strHp[i]%>
						</option>
					<%}	
				}	
				%>
						
				</select>
				<b>-</b>
				<input type="text" name="hp2" size="3"
				value="<%=hp2 %>" onkeyup="goFocus(this)">
				<b>-</b>
				<input type="text" name="hp3" size="3"
				value="<%=hp3%>">
			</td>		
		</tr>
		<tr>
			<th>생년월일</th>
			<td>
				<input type="date" name="birth"
				value="<%=dto.getBirth()%>">
			</td>
		</tr>
		<tr>
			<td colspan="2" align="center">
			
			<!-- hidden -->
			<input type="hidden" name="num" value="<%=dto.getNum()%>">
			
			
				<input type="submit" value="db저장">
				<input type="button" value="목록"
				onclick="location.href='sinsangList.jsp'">
			</td>
		</tr>
	</table>
	
</form>

</body>
</html>

 

ssUpdateAction

<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>

</body>
</html>

 

ssDelete

<%@ 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>
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">

</head>
<body>

</body>
</html>
728x90
반응형