..열심히 공부하세../JSP

[19] 답변형 게시판 (수정)

댄스댄스 2012. 2. 26. 21:52

 

파일명 : bbsUpdateForm.jsp

----------------------------------------------------

<%@ page contentType="text/html; charset=utf-8" %>
<%@ include file="./ssi.jsp" %>

<%
String ip = request.getRemoteAddr();        // Client IP 추출
int bbsno = Integer.parseInt(request.getParameter("bbsno"));

bbsDTO = bbsDAO.read(bbsno); // 글 번호에 해당하는 글을 읽어 옵니다.

String wname = bbsDTO.getWname();
String subject = bbsDTO.getSubject();
String content = bbsDTO.getContent();
%>
<html>
<head>
<title>글 수정</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>

<body>
 <center>

 ** 게시판 수정 **
 <br>
<form name="frmUpdate" method="post" action="./bbsUpdateProc.jsp">
<input type="hidden" name="bbsno" value="<%=bbsno%>">  
<input type="hidden" name="ip" value="<%=ip%>">

<table border=1>
<tr align=left>
 <td>이름:</td>
    <td><input type="text" name="wname" value="<%=wname%>"></td>
</tr>
<tr align=left>
 <td>제목:</td>
    <td><input type="text" name="subject" value="<%=subject%>"></td>
</tr>
<tr align=left>
 <td>내용:</td>
    <td><textarea name="content" rows="5" cols="30"><%=content%></textarea></td>
</tr>
<tr align=left>
 <td>비번:</td>
    <td><input type="password" name="passwd"></td>
</tr>
</table>  
<br>
<input type="submit" name="btnSubmit" value="수정 진행"/>
<input type="Button" name="btnCancel" value="취소"
            onclick="javascript:history.back()"/>
<input type="Button" name="btnList" value="목록으로가기"
            onclick="javascript:location.href='./bbsList.jsp';"/>

</form>
 
</body>
</html>

----------------------------------------------------

 

파일명 : bbsUpdateProc.jsp

----------------------------------------------------

 <%@ page contentType="text/html; charset=utf-8"%>
<%@ include file="./ssi.jsp" %>

<%
bbsDTO.setBbsno(Integer.parseInt(request.getParameter("bbsno")));
bbsDTO.setPasswd(request.getParameter("passwd"));
%>  

<html>
<head>
<title>글 수정</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

</head>

<body topmargin="0" leftmargin="0">
<div align="center">
<%
// 패스워드 검사
boolean flag = bbsDAO.checkPasswd(bbsDTO.getBbsno(), bbsDTO.getPasswd());
if (flag == false){
    out.println("<p><b>패스워드가 일치하지 않습니다.</b></p>");
    out.println("<p><b>다시 한번 시도해주세요</b></p>");
    out.println("<a href='Javascript:history.back()'>다시 입력</a>");
}
else  // 패스워드 일치하면
{
    bbsDTO.setIp(request.getParameter("ip"));
    bbsDTO.setWname(request.getParameter("wname"));
    bbsDTO.setSubject(request.getParameter("subject"));
    bbsDTO.setContent(request.getParameter("content"));

    int cnt = bbsDAO.update(bbsDTO);

    if(cnt == 1){
        out.println("<p><b>글 수정 성공!!</b></p>");
%>
        [<a href='./bbsRead.jsp?bbsno=<%=bbsDTO.getBbsno() %>'>수정된 글 보러가기</a>]
        [<a href='./bbsList.jsp'>목록으로 가기</a>]
<%
    }else{
        out.println("<p><b>글 수정 실패 !!</b></p>");
        out.println("<a href='Javascript:history.back()'>다시 입력</a>");
    }
}
%>
</div>
</body>
</html>

 

----------------------------------------------------

 

 

파일명 : BbsDAO.java

----------------------------------------------------

    //수정
    public int update(BbsDTO dto){
        Connection con=dbconnect.getConnection();
        PreparedStatement pstmt = null;
        ResultSet rs = null;
        StringBuffer sql = null;
       
        int cnt = 0; // 수정한 레코드 갯수 저장
       
        try{
            sql = new StringBuffer();
           
            sql.append(" UPDATE "+table_name);
            sql.append(" SET wname=?, subject=?, content=?");
            sql.append(" WHERE bbsno=?");
   
            pstmt = con.prepareStatement(sql.toString());
           
            pstmt.setString(1, dto.getWname());
            pstmt.setString(2, dto.getSubject());
            pstmt.setString(3, dto.getContent());
            pstmt.setInt(4, dto.getBbsno());
                                   
            cnt = pstmt.executeUpdate();
           
        }catch(Exception e){
            System.out.println(e.toString());
        }finally{
            DBClose.close(con, pstmt, rs);
        }         

        return cnt;
    }

----------------------------------------------------