교재p.545 파일업로드
*파일 경로 3가지*
사이즈도 확인하기
데이터베이스에 저장하도록 만들기
(이름, 파일명, 파일종류, 파일사이즈)
목록보기 list.jsp 만들기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
String path= request.getContextPath();
//데이터 베이스 저장하기
String url= "jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url,user,password);
String SQL="select idx, name, file from T0808";
PreparedStatement pstmt = con.prepareStatement(SQL);
ResultSet rs= pstmt.executeQuery();
%>
<div align=center>
<h2> 목록보기 (<a href=form.jsp>저장하기</a>)</h2>
<table border=1 width=300>
<tr><td>번호</td><td>이름</td><td>파일명</td><td>이미지</td></tr>
<%
while(rs.next()){
%>
<tr>
<td><%=rs.getString("idx") %></td>
<td><%=rs.getString("name") %></td>
<td><%=rs.getString("file") %></td>
<td><img src= '<%=path%>/files/<%=rs.getString("file") %>' width=50 height=50></td>
</tr>
<%
}
%>
</table>
</div>
<%
rs.close();
pstmt.close();
con.close();
%>
</body>
</html>
내용보기 edit.jsp 만들기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<%
String path= request.getContextPath();
String idx= request.getParameter("idx");
//데이터 베이스 저장하기
String url= "jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url,user,password);
String SQL="select idx, name, file from T0808 where idx=?";
PreparedStatement pstmt = con.prepareStatement(SQL);
pstmt.setString(1, idx);
ResultSet rs= pstmt.executeQuery();
rs.next();
String name=rs.getString("name");
String file=rs.getString("file");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align=center>
<br> <h2> 자료 수정하기</h2>
<img src=<%=path %>/files/<%=file %> width=200 height=200>
<table border=1>
<form method=post enctype="multipart/form-data" action=update.jsp>
<tr>
<td>이름</td><td> <input type=text name=name value="<%=name%>"></td>
</tr>
<tr>
<td>이미지</td><td> <input type=file name=file></td>
</tr>
<tr>
<td colspan=2 align=center><input type=submit value=수정하기>
<input type=button onClick="list()" value=목록보기>
</td>
</tr>
</form>
</table>
</div>
</body>
</html>
edit.jsp 파일 hidden으로 idx 넘기기
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
String path=request.getContextPath();
String idx = request.getParameter("idx");
// 데이터베이스 저장하기
String url="jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password );
String SQL ="select idx, name, file from T0808 where idx=? ";
PreparedStatement pstmt=con.prepareStatement(SQL);
pstmt.setString(1, idx);
ResultSet rs= pstmt.executeQuery();
rs.next();
idx =rs.getString("idx");
String name =rs.getString("name");
String file =rs.getString("file");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body>
<div align="center">
<br> <h2> 자료 수정하기 </h2>
<img src="<%=path%>/files/<%=file %>" width=200 height=200>
<form method=post enctype="multipart/form-data"
action=update.jsp >
<table border=1>
<tr><td>이름</td>
<td>
<input type=hidden name=idx value="<%=idx%>">
<input type=text name=name value="<%=name%>"></td>
</tr>
<tr><td>이미지</td>
<td><input type=file name=file></td>
</tr>
<tr>
<td colspan=2 align="center" >
<input type=submit value="수정하기" >
<input type=button onClick="list()" value="목록보기" >
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
update.jsp 파일 만들어주기
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="com.oreilly.servlet.MultipartRequest" %>
<%@ page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy" %>
<%@ page import="java.util.*"%>
<%@ page import="java.io.*"%>
<%@ page import="java.sql.*"%>
<%
// 데이터베이스 저장하기
String url="jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password );
// 이클립스 와 배포시 저장되는 위치 잡기
String files = "/files/";
ServletContext context = getServletContext();
String realFolder=context.getRealPath(files);
int maxSize = 5 * 1024 * 1024 ; // 5MB
String encType = "UTF-8";
MultipartRequest multi =null;
multi = new MultipartRequest(request, realFolder, maxSize,
encType, new DefaultFileRenamePolicy());
String idx = multi.getParameter("idx");
String SQL ="select idx, name, file from T0808 where idx=? ";
PreparedStatement pstmt=con.prepareStatement(SQL);
pstmt.setString(1, idx);
ResultSet rs= pstmt.executeQuery();
rs.next();
String rs_file =rs.getString("file");
String DeletefileName = realFolder + rs_file ; // 경로 + 파일명
File f= new File(DeletefileName); // 파일 객체 생성
if (f.exists()){ // 파일이 존재하면 ...
f.delete(); // 파일 삭제
}
String name = multi.getParameter("name");
String file=multi.getFilesystemName("file");
String UPDATE_SQL ="update T0808 set name=?, file=? where idx=?";
pstmt=con.prepareStatement(UPDATE_SQL);
pstmt.setString(1, name);
pstmt.setString(2, file);
pstmt.setString(3, idx);
int k = pstmt.executeUpdate();
if (k==1){
response.sendRedirect("list.jsp");
System.out.println("저장성공");
}else{
out.print("저장실패");
}
%>
목록보기, 삭제하기 만들기
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
String path=request.getContextPath();
String idx = request.getParameter("idx");
// 데이터베이스 저장하기
String url="jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password );
String SQL ="select idx, name, file from T0808 where idx=? ";
PreparedStatement pstmt=con.prepareStatement(SQL);
pstmt.setString(1, idx);
ResultSet rs= pstmt.executeQuery();
rs.next();
idx =rs.getString("idx");
String name =rs.getString("name");
String file =rs.getString("file");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
function listOK(){
alert("목록보기");
location.href="list.jsp";
}
function delOK(){
alert("삭제하기");
location.href="delete.jsp?idx"+k;
}
</script>
<body>
<div align="center">
<br> <h2> 자료 수정하기 </h2>
<img src="<%=path%>/files/<%=file %>" width=200 height=200>
<form method=post enctype="multipart/form-data"
action=update.jsp >
<table border=1>
<tr><td>이름</td>
<td>
<input type=hidden name=idx value="<%=idx%>">
<input type=text name=name value="<%=name%>"></td>
</tr>
<tr><td>이미지</td>
<td><input type=file name=file></td>
</tr>
<tr>
<td colspan=2 align="center" >
<input type=submit value="수정하기" >
<input type=button onClick="listOK()" value="목록보기" >
<input type=button onClick="delOK()" value="삭제하기" >
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
이어서 삭제하기 만들기
edit.jsp 파일 수정
<%@ page language="java"
contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.sql.*"%>
<%
String path=request.getContextPath();
String idx = request.getParameter("idx");
// 데이터베이스 저장하기
String url="jdbc:mysql://localhost:3306/korea";
String user="root";
String password="autoset";
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(url, user, password );
String SQL ="select idx, name, file from T0808 where idx=? ";
PreparedStatement pstmt=con.prepareStatement(SQL);
pstmt.setString(1, idx);
ResultSet rs= pstmt.executeQuery();
rs.next();
idx =rs.getString("idx");
String name =rs.getString("name");
String file =rs.getString("file");
%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<script>
function listOK(){
alert("목록보기");
location.href="list.jsp";
}
function delOK(){
alert("삭제하기"+k);
location.href="delete.jsp?idx"+k;
}
</script>
<body>
<div align="center">
<br> <h2> 자료 수정하기 </h2>
<img src="<%=path%>/files/<%=file %>" width=200 height=200>
<form method=post enctype="multipart/form-data"
action=update.jsp >
<table border=1>
<tr><td>이름</td>
<td>
<input type=hidden name=idx value="<%=idx%>">
<input type=text name=name value="<%=name%>"></td>
</tr>
<tr><td>이미지</td>
<td><input type=file name=file></td>
</tr>
<tr>
<td colspan=2 align="center" >
<input type=submit value="수정하기" >
<input type=button onClick="listOK()" value="목록보기" >
<input type=button onClick="delOK(<%=idx %>)" value="삭제하기" >
</td>
</tr>
</table>
</form>
</div>
</body>
</html>
.....
'JAVA' 카테고리의 다른 글
[60일차] 자료실 session사용 로그인/로그아웃 만들기/빅데이터활용 페이지나누기 (0) | 2022.08.16 |
---|---|
[58일차] 정보처리산업기사 지역구의원투표프로그램 만들기 (0) | 2022.08.11 |
[54일차] mysql연동 form,insert,select,delete,검색창 만들기 (0) | 2022.08.05 |
[53일차] chap11. 데이터베이스와 jsp 연동 (0) | 2022.08.04 |
[53일차] JSP 교재 p.242 ~ (0) | 2022.08.04 |