JSP-웹페이지 구현(포토 갤러리)

임재헌·2023년 4월 26일
0

JSP

목록 보기
32/33

기본 설정

DAO,DTO작성

PdsDAO

package net.pds;

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

import net.bbs.BbsDTO;
import net.utility.DBClose;
import net.utility.DBOpen;

public class PdsDAO {
	private DBOpen dbopen=null;
	private Connection con=null;
	private PreparedStatement pstmt=null;
	private ResultSet rs=null;
	private StringBuilder sql=null;
	
	public PdsDAO() {
		dbopen=new DBOpen();
	}
	

PdsDTO

package net.pds;

public class PdsDTO {
	
    private int pdsno;
    private String wname;
    private String subject;
    private String regdate;
    private String passwd;
    private int readcnt;
    private String filename;
    private long filesize;
    
    public PdsDTO() {}

	public int getPdsno() {
		return pdsno;
	}

	public void setPdsno(int pdsno) {
		this.pdsno = pdsno;
	}

	public String getWname() {
		return wname;
	}

	public void setWname(String wname) {
		this.wname = wname;
	}

	public String getSubject() {
		return subject;
	}

	public void setSubject(String subject) {
		this.subject = subject;
	}

	public String getRegdate() {
		return regdate;
	}

	public void setRegdate(String regdate) {
		this.regdate = regdate;
	}

	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}

	public int getReadcnt() {
		return readcnt;
	}

	public void setReadcnt(int readcnt) {
		this.readcnt = readcnt;
	}

	public String getFilename() {
		return filename;
	}

	public void setFilename(String filename) {
		this.filename = filename;
	}

	public long getFilesize() {
		return filesize;
	}

	public void setFilesize(long filesize) {
		this.filesize = filesize;
	}

	@Override
	public String toString() {
		return "PdsDTO [pdsno=" + pdsno + ", wname=" + wname + ", subject=" + subject + ", regdate=" + regdate
				+ ", passwd=" + passwd + ", readcnt=" + readcnt + ", filename=" + filename + ", filesize=" + filesize
				+ "]";
	}
    
}//class end

공통코드 ssi.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!-- ssi.jsp 공통 코드를 포함하는 페이지
     -->
 <%@ page import="java.sql.*" %>
 <%@ page import="java.io.*" %>
 <%@ page import="java.util.*" %>
 
 <%@ page import="net.utility.*" %>
 <%@ page import="net.pds.*" %>

<jsp:useBean id="dao" class="net.pds.PdsDAO" scope="page"></jsp:useBean>
<jsp:useBean id="dto" class="net.pds.PdsDTO" scope="page"></jsp:useBean>

<%request.setCharacterEncoding("UTF-8");%>

SQL 작성

--테이블 생성
CREATE TABLE tb_pds (
   pdsno      NUMBER         NOT NULL
  ,wname      VARCHAR2(100)  NOT NULL
  ,subject    VARCHAR2(250)  NOT NULL
  ,regdate    DATE           NOT NULL
  ,passwd     VARCHAR2(15)   NOT NULL
  ,readcnt    NUMBER         DEFAULT 0
  ,filename   VARCHAR2(250)  NOT NULL   --파일명
  ,filesize   NUMBER         DEFAULT 0  --파일크기
  ,PRIMARY KEY(pdsno)
);
--시퀀스 생성
create sequence pds_seq;

--행추가
pdsno: 		시퀀스에서 일련번호 발생
wname,subject,passwd: 사용자한테서 입력받음.<form></form>
regdate:	오늘날짜 (sysdate)
filename, filesize :첨부파일 관련 정보

JSP 작성

List 메소드

public ArrayList<PdsDTO> list(){
		ArrayList<PdsDTO> list=null;
		
		try {
		con=dbopen.getConnection();
		sql=new StringBuilder();
		sql.append(" select pdsno,wname,subject,filename,readcnt,regdate ");	
		sql.append(" from tb_pds ");
		sql.append(" order by regdate desc ");
		
		pstmt=con.prepareStatement(sql.toString());
		rs=pstmt.executeQuery();
		
		if (rs.next()) {
			list= new ArrayList<PdsDTO>();
			do {
				PdsDTO dto=new PdsDTO();
				dto.setPdsno(rs.getInt("pdsno"));
				dto.setWname(rs.getString("wname"));
				dto.setSubject(rs.getString("subject"));
				dto.setFilename(rs.getString("filename"));
				dto.setReadcnt(rs.getInt("readcnt"));
				dto.setRegdate(rs.getString("regdate"));
				list.add(dto);
			}while(rs.next());
		}
		
		
		} catch (Exception e) {
			System.out.println("포토 갤러리 목록 실패"+e);
		}finally {
			DBClose.close(con, pstmt, rs);
		}
		return list;
	}

pdsList.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<h3>포토 갤러리</h3>
<p><a href="pdsForm.jsp">[사진올리기]</a> </p>

<%
 ArrayList<PdsDTO> list=dao.list();
if(list==null){

	out.println("글 없음");
}else{
	out.println("글 갯수"+list.size());
	%>
<table class="table table-hover" border="1">
<thead>
<tr class="info" >
<th>제목</th>
<th>사진</th>
<th>조회수</th>
<th>작성자</th>
<th>작성일</th>
</tr>
</thead>
<tbody>
<%

for(int i=0;i<list.size();i++){
dto=list.get(i);

%>
<tr>
<td><%=dto.getSubject()%></td>
<td><%=dto.getFilename()%></td>
<td><%=dto.getReadcnt()%></td>
<td><%=dto.getWname()%></td>
<td><%=dto.getRegdate().substring(0,10)%></td>
</tr>

<%
}
%>
</tbody>	
</table>	
	
<%
}
%>
<!-- 본문 끝 -->
<%@ include file="../footer.jsp" %>

pdsForm.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>

<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<h3>사진 올리기</h3>
<p><a href="pdsList.jsp">[목록]</a></p>

<form method="post" action="pdsIns.jsp" enctype="multipart/form-data" onsubmit="return pdsCheck()">
<table class="table">

	<tr>
	    <th>이름</th>
	    <td style="text-align: left"><input type="text" name="wname" id="wname" size="20" maxlength="100" required autofocus></td>
	</tr>
	
	<tr>
	    <th>제목</th>
	    <td style="text-align: left">
	    	<textarea rows="5" cols="30" name="subject" id="subject"></textarea>
	    </td>
	</tr>
	
	<tr>
	    <th>비밀번호</th>
	    <td style="text-align: left"><input type="password" name="passwd" id="passwd" maxlength="15" required></td>
	</tr>
	
	<tr>
	    <th>파일 첨부</th>
	    <td style="text-align: left">
	    <input type="file" name="filename" id="filename"></td>
	</tr>
	
	<tr>
    <td colspan="2" align="center">
       <input type="submit" value="업로드 하기" class="btn btn-success">
       <input type="reset"  value="취소" class="btn btn-danger">
    </td>
		</tr>
</table>
</form>

<!-- 본문 끝 -->
<%@ include file="../footer.jsp" %>

pdsIns.jsp

<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<h3>사진 올리기 결과</h3>
<%

try{
	//1.첨부된 파일 저장하기
	String saveDirectory=application.getRealPath("/storage");
	int maxPostSize=1024*1024*10;
	String encoding="UTF-8";
	MultipartRequest mr=new MultipartRequest(request,saveDirectory,maxPostSize,encoding,new DefaultFileRenamePolicy()); 
	//파일크기는 알려주지 않음				    ( 요청방식,파일이있다면 저장,용량,	인코딩,기본적으로 제공해주는 파일 이름 사용)
	//smart editor ckeditor

	//2. 1단계에서 저장한 파일의 파일명, 파일크기 가져오기
	String fileName="";	//파일명
	long fileSize=0;	//파일크기
	//파일크기를 알려주는 클래스가 없으므로 새로 생성
	File file=null;	//실제파일
	String item="";	//name="filename"

	Enumeration files=mr.getFileNames(); //mr이 가진 파일 전부 긁어오기
	//파일을 하나씩 꺼내오기 반복문 사용
	while(files.hasMoreElements()){	//여러개의 파일을 첨부하는 경우 한개씩 처리
		item=(String)files.nextElement();	//name=filename
		fileName=mr.getFilesystemName(item);	//mr객체에서 item이 가지고 있는 실제 파일명
	if(fileName!=null){ //실제 파일 가져왔다면
		file=mr.getFile(item);	//파일 사이즈때문에 파일에 담는다
		if(file.exists()){			//파일 존재시
			fileSize=file.length();//파일 크기 가져오기
		}
		}
	}
	
	//3. tb_pds 테이블 저장하기
	String wname=mr.getParameter("wname").trim();
	String subject=mr.getParameter("subject").trim();
	String passwd=mr.getParameter("passwd").trim();
	
	dto.setWname(wname);
	dto.setSubject(subject);
	dto.setPasswd(passwd);
	dto.setFilename(fileName);
	dto.setFilesize(fileSize);
	
	int cnt=dao.create(dto);
	
	if(cnt==0){
		out.println("<p>사진 추가 실패</p>");
		out.println("<p><a href='javascript:history.back()'>재시도</a></p>");
	}else{
		out.println("<script>");
		out.println("    alert(' 사진 추가 성공');");
		out.println(" location.href='pdsList.jsp';");	//목록페이지 이동
		out.println("</script>");
	}
	
	
}catch(Exception e){
	out.print(e);
	out.println("<p>사진 추가 실패</p>");
	out.println("<p><a href='javascript:history.back()'>재시도</a></p>");
	
}
%>

<!-- 본문 끝 -->

<%@ include file="../footer.jsp" %>

insert 메소드

public int create(PdsDTO dto) {
		int cnt=0;
		try {
			con=dbopen.getConnection();
			
			sql=new StringBuilder();
			sql.append(" insert into tb_pds(pdsno,wname,subject,passwd,filename,filesize,regdate) ");
			sql.append(" values(bbs_seq.nextval,?,?,?,?,?,sysdate) ");
			
			pstmt=con.prepareStatement(sql.toString());
			pstmt.setString(1, dto.getWname());
			pstmt.setString(2, dto.getSubject());
			pstmt.setString(3, dto.getPasswd());
			pstmt.setString(4, dto.getFilename());
			pstmt.setLong(5, dto.getFilesize());
			
			cnt=pstmt.executeUpdate();
			
		} catch (Exception e) {
			System.out.println("포토 갤러리추가 실패"+e);
		}finally {
			DBClose.close(con,pstmt);
		}
		return cnt;
	}

유효성 검사

function pdsCheck() {
    //1. 이름 유효성 검사

    let wname= document.getElementById("wname").value;
    wname=wname.trim();
    
    if (wname.length<2) {
        alert("이름은 2글자 이상 입력");
        document.getElementById("wname").focus();
        return false;
    }

    //2.제목
    let subject= document.getElementById("subject").value;
    subject=subject.trim();
    
    if (subject.length<2) {
        alert("제목은 2글자 이상 입력해야 합니다");
        document.getElementById("subject").focus();
        return false;
    }
    
    //3.비밀번호
    let passwd= document.getElementById("passwd").value;
    passwd=passwd.trim();
    
    if (!(passwd.length<=10 && passwd.length>=5)) {
        alert("비밀번호는 5~10글자 이내로 입력해야 합니다");
        document.getElementById("passwd").focus();
        return false;
    }

    //4. 첨부파일
    //파일의 확장명이 이미지 파일인지 확인(jpg,gif,png)
    let filename=document.getElementById("filename").value;
    //sky.png
    filename=filename.trim();
    if (filename.length==0) {
        alert("첨부 파일을 선택하세요~");
        return false;
    } else {
        //filename변수값에서 마지막 "."의 순서값
        let dot=filename.lastIndexOf(".");
        
        //확장명 : 마지막.이후 문자열 자르기
        let ext=filename.substr(dot+1);

        //확장명을 전부 소문자 치환
        ext=ext.toLowerCase();
        if (ext=="png" || ext=="jpg" || ext=="gif") {
            return true;
        } else {
            alert("이미지 파일만 업로드 가능합니다");
            return false;
        }

    }

}

pdsRead.jsp-상세보기

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<h3>게시판 상세보기</h3>
<p><a href="pdsForm.jsp">사진 올리기</a>
&nbsp;&nbsp;
<a href="pdsList.jsp">사진 목록</a></p>

<%
int pdsno=Integer.parseInt(request.getParameter("pdsno"));
dto=dao.read(pdsno);

if(dto==null){
	out.println("해당 글 없음");
}else{
	dao.incrementCnt(pdsno);
	
	
%>
<table class="table">
	
	<tr>
	<th class="danger">글제목</th>
	<td><%=dto.getSubject()%></td>
	</tr>
	
<tr><th class="danger">사진</th>
<td><img src='../storage/<%=dto.getFilename()%>' width="80px"></td>
</tr>

	<tr>
	<th class="danger">파일크기</th>
	<td><%=dto.getFilesize()%></td>
	</tr>

	<tr>
	<th class="danger">작성자</th>
	<td><%=dto.getWname()%></td>
	</tr>
	
	<tr>
	<th class="danger">작성일</th>
	<td><%=dto.getRegdate()%></td>
	</tr>
	
<tr>
	<th class="danger">조회수</th>
	<td><%=dto.getReadcnt()%></td>
	</tr>
	</table>
	<input type="button" value="수정" class="btn btn-primary"  onclick="location.href='pdsUpdate.jsp?pdsno=<%=pdsno%>&filename=<%=dto.getFilename()%>'">
	<input type="button" value="삭제" class="btn btn-secondary"  onclick="location.href='pdsDel.jsp?pdsno=<%=pdsno%>'">
<% 
}
%>
<!-- 본문 끝 -->

<%@ include file="../footer.jsp" %>

readcnt 메소드

public PdsDTO read(int pdsno) {
		PdsDTO dto=null;
		try {
			con=dbopen.getConnection();
			
			sql=new StringBuilder();
			sql.append(" select pdsno, wname, subject,passwd,readcnt,regdate,filename,filesize  ");
			sql.append(" from tb_pds ");
			sql.append(" where pdsno=? ");
			
			pstmt=con.prepareStatement(sql.toString());
			pstmt.setInt(1, pdsno);
			
			rs=pstmt.executeQuery();
			if(rs.next()){
				dto=new PdsDTO();
				dto.setPdsno(rs.getInt("pdsno"));
				dto.setWname(rs.getString("wname"));
				dto.setSubject(rs.getString("subject"));
				dto.setPasswd(rs.getString("passwd"));
				dto.setReadcnt(rs.getInt("readcnt"));
				dto.setRegdate(rs.getString("regdate"));
				dto.setFilename(rs.getString("filename"));
				dto.setFilesize(rs.getLong("filesize"));
				
			}
		}catch (Exception e) {
			System.out.println("상세보기 실패"+e);
		}finally {
			DBClose.close(con,pstmt,rs);
		}
		return dto;
	}
	
	public void incrementCnt(int pdsno) {
		try {
			con=dbopen.getConnection();
			
			sql=new StringBuilder();
			sql.append(" update tb_pds ");
			sql.append(" set readcnt=readcnt+1 ");
			sql.append(" where pdsno=? ");
			
			pstmt=con.prepareStatement(sql.toString());
			pstmt.setInt(1, pdsno);
			
			rs=pstmt.executeQuery();
			
		}catch (Exception e) {
			System.out.println("조회수 증가 실패"+e);
		}finally {
			DBClose.close(con,pstmt);
		}
	}


파일 삭제

파일 삭제 메소드

public int delete(int pdsno,String passwd,String saveDir) {
		int cnt=0;
		try {
			//테이블의 행 삭제하기 전에, 삭제하고자 하는 파일명을 가져와야 한다
			String filename="";
			PdsDTO oldDTO=read(pdsno);
			if(oldDTO !=null) {
				filename=oldDTO.getFilename();
			}
			
			con=dbopen.getConnection();
			
			sql=new StringBuilder();
			sql.append(" delete ");
			sql.append(" from tb_pds ");
			sql.append(" where pdsno=? and passwd=? ");			
			pstmt=con.prepareStatement(sql.toString());
			pstmt.setInt(1, pdsno);
			pstmt.setString(2, passwd);
			
			cnt=pstmt.executeUpdate();
			
			if(cnt==1) {
				//테이블에서 행삭제 성공시 첨부한 파일도 같이 삭제
				//utility 클래스 이용
				Utility.deleteFile(saveDir, filename);				
			}			
	}catch (Exception e) {
		System.out.println("삭제 실패"+e);
	}finally {
		DBClose.close(con,pstmt);
	}
		return cnt;
}	

pdsDel.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 글번호와 비밀번호가 일치하면 삭제 
		첨부파일도 함께 삭제			-->
<h3>글 삭제</h3>
<p>
<a href="pdsList.jsp">글목록</a>
</p>
<%
int pdsno=Integer.parseInt(request.getParameter("pdsno"));
%>

<form method="post" action="bbsDelProc.jsp" onsubmit="return pwCheck2()">
<input type="hidden" name="bbsno" value="<%=pdsno%>">
<table class="table">

<tr>
<th class="info">비밀번호</th>
<td><input type="password" name="passwd" id="passwd" maxlength="15" required>
</td>
</tr>

<tr>
<td colspan="2">
<input type="submit" value="삭제" class="btn btn-danger" >
</td>
</tr>
</table>
</form>

<!-- 본문 끝 -->
<%@ include file="../footer.jsp" %>

pdsDelProc.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<%
int pdsno=Integer.parseInt(request.getParameter("pdsno"));
String passwd=request.getParameter("passwd").trim();
String saveDir=application.getRealPath("/storage");
//첨부된 파일을 삭제하기 위해서(파일 저장 실제 경로)

dto.setPdsno(pdsno);
dto.setPasswd(passwd);

int cnt=dao.delete(pdsno, passwd, saveDir);

if (cnt == 0) {
	out.println("<p>비밀번호가 틀립니다</p>");
	out.println("<p><a href='javascript:history.back()'>재시도</a></p>");
} else {
	out.println("<script>");
	out.println("    alert('삭제 성공');");
	out.println(" location.href='pdsList.jsp';"); //목록페이지 이동
	out.println("</script>");
}
%>
<!-- 본문 끝 -->

<%@ include file="../footer.jsp" %>

storage 폴더에서 완전히 이미지가 삭제된것을 볼수 있다.


게시판 수정

메소드 작성

public int updatepro(PdsDTO dto,String saveDirectory) {
		int cnt=0;
		
			try {
				String filename="";
				PdsDTO oldDTO=read(dto.getPdsno());
				if(oldDTO !=null) {
					filename=oldDTO.getFilename();
				}
			con=dbopen.getConnection();
			
			sql=new StringBuilder();
			sql.append(" update tb_pds ");
			sql.append(" set wname=?,subject=?,filename=?, filesize=? ");
			sql.append(" where pdsno=? and passwd=? ");
			
			pstmt= con.prepareStatement(sql.toString());
			pstmt.setString(1, dto.getWname());
			pstmt.setString(2, dto.getSubject());
			pstmt.setString(3,dto.getFilename());
			pstmt.setLong(4, dto.getFilesize());
			pstmt.setInt(5, dto.getPdsno());
			pstmt.setString(6, dto.getPasswd());
			
			cnt=pstmt.executeUpdate();
			
			if(cnt==1) {
				//테이블에서 업데이트 성공시 첨부한 이전파일도 같이 삭제
				//utility 클래스 이용
				Utility.deleteFile(saveDirectory, filename);				
			}
			
		} catch (Exception e) {
			
			System.out.println("업데이트 실패"+e);
			
		}finally {
			DBClose.close(con,pstmt);
		}
		return cnt;
	}

pdsUpdate.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ include file="ssi.jsp" %>
<%@ include file="../header.jsp" %>

<!-- 본문 시작 -->
<h3>포토 게시판 수정</h3>
<p><a href="pdsForm.jsp">사진 올리기</a>
&nbsp;&nbsp;
<a href="pdsList.jsp">사진 목록</a></p>

<%
int pdsno=Integer.parseInt(request.getParameter("pdsno"));

dto=dao.read(pdsno);

if(dto==null){
	out.println("해당 글 없음");
}else{	
	
	
%>
<form method="post" action="pdsUpdateProc.jsp" enctype="multipart/form-data" onsubmit="return pdsCheck()">
<input type="hidden" name="pdsno" value="<%=pdsno%>">

<table class="table">
	
<tr>
<th>이름</th>
<td>
<input type="text" name="wname" id="wname" class="form-control" maxlength="20" value="<%=dto.getWname()%>" required>
</td>
</tr>

<tr>
<th>제목</th>
<td style="text-align: left">
<textarea rows="5" cols="30" name="subject" id="subject"><%=dto.getSubject() %></textarea>
    </td>
</tr>
	
<tr>
<th>사진</th>
<td>
<img src='../storage/<%=dto.getFilename()%>' width="80px"><br>
<%=dto.getFilename()%><br>
<input type="file" name="filename" id="filename">
</td>
</tr>

<tr>
<th>비밀번호</th>
<td>
<input type="password" name="passwd" id="passwd" class="form-control" maxlength="15" required>
</td>
</tr>

<tr>
<td colspan="2">
<input type="submit" value="수정하기" class="btn btn-primary">
<input type="reset" value="취소" class="btn btn-secondary">
</td>
</tr>	
</table>
</form>
<% 
}
%>
<!-- 본문 끝 -->

<%@ include file="../footer.jsp" %>

pdsUpdateProc.jsp

요청 정보를 가져올 경우 request 사용하지 않고
mr을 사용해서 가져온다.

<%@page import="com.oreilly.servlet.multipart.DefaultFileRenamePolicy"%>
<%@page import="com.oreilly.servlet.MultipartRequest"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
    
<%@ include file="ssi.jsp" %>    
<%@ include file="../header.jsp" %>    
    
<!-- 본문시작 bbsUpdateProc.jsp -->
<!-- 수정 요청한 정보을 가져와서, DB에 가서 행 수정하기 -->

<%
try{
	
	//1.첨부된 파일 저장하기
		String saveDirectory=application.getRealPath("/storage");
		int maxPostSize=1024*1024*30;
		String encoding="UTF-8";
		MultipartRequest mr=new MultipartRequest(request,saveDirectory,maxPostSize,encoding,new DefaultFileRenamePolicy()); 

		String fileName="";	
		long fileSize=0;	
		File file=null;	
		String item="";	

		Enumeration files=mr.getFileNames(); //mr이 가진 파일 전부 긁어오기

		while(files.hasMoreElements()){	//여러개의 파일을 첨부하는 경우 한개씩 처리
			item=(String)files.nextElement();	
			fileName=mr.getFilesystemName(item);
			
		if(fileName!=null){ //실제 파일 가져왔다면
			file=mr.getFile(item);	
			if(file.exists()){		
				fileSize=file.length();
			}
			}
		}
	
	//수정 요청한 정보 가져오기
	int pdsno=Integer.parseInt(mr.getParameter("pdsno"));
	String wname=mr.getParameter("wname").trim();
	String subject=mr.getParameter("subject").trim();
	String passwd=mr.getParameter("passwd").trim();

	//dto에 담기
	dto.setPdsno(pdsno);
	dto.setWname(wname);
	dto.setPasswd(passwd);
	dto.setSubject(subject);
	dto.setFilename(fileName);
	dto.setFilesize(fileSize);

	int cnt=dao.updatepro(dto, saveDirectory);    
    if(cnt==0){
        out.println("<p>비밀번호가 일치하지 않습니다</p>");
        out.println("<p><a href='javascript:history.back()'>[다시시도]</a></p>");
    }else{
        out.println("<script>");
        out.println("    alert('게시글이 수정되었습니다');");
        out.println("    location.href='pdsList.jsp';");//목록페이지 이동
        out.println("</script>");
    }//if end	
    
}catch(Exception e){
	out.print(e);
	out.println("<p>게시글 수정 실패</p>");
	out.println("<p><a href='javascript:history.back()'>재시도</a></p>");
		
}    
%>
<!-- 본문 끝 -->
<%@ include file="../footer.jsp" %>

0개의 댓글