겉바속촉
[html] jsp로 DB에 저장하기 2 본문
항상 프로젝트 해주실때마다
다음과 같이 설정해주셔야합니다:)
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>
'IT일기(하반기) > 블록체인' 카테고리의 다른 글
[Blockchain] 블록체인과 db의 차이 (0) | 2020.07.23 |
---|---|
[Blockchain] 기술의 역사 (0) | 2020.07.23 |
[html] jsp로 DB에 저장하기-수정,삭제 (2) | 2020.06.18 |
[html] jsp로 DB에 저장하기 (2) | 2020.06.17 |
Tomcat 설치하기 (0) | 2020.06.09 |