이곳에서도 reply.jsp 와 reply_ok.jsp를 모두 수정해야합니다.
기존의 reply.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page import="java.sql.*"%> <script language = "javascript"> // 자바 스크립트 시작 function replyCheck() { var form = document.replyform; if( !form.name.value ) // form 에 있는 name 값이 없을 때 { alert( "이름을 적어주세요" ); // 경고창 띄움 form.name.focus(); // form 에 있는 name 위치로 이동 return; } if( !form.password.value ) { alert( "비밀번호를 적어주세요" ); form.password.focus(); return; } if( !form.title.value ) { alert( "제목을 적어주세요" ); form.title.focus(); return; } if( !form.memo.value ) { alert( "내용을 적어주세요" ); form.memo.focus(); return; } form.submit(); } </script> <% int idx = Integer.parseInt(request.getParameter("idx")); int pg = Integer.parseInt(request.getParameter("pg")); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:board2"; String id = ""; String pass = ""; String title = ""; try { Connection conn = DriverManager.getConnection(url,id,pass); Statement stmt = conn.createStatement(); String sql = "SELECT TITLE FROM board1 WHERE NUM=" + idx; ResultSet rs = stmt.executeQuery(sql); if(rs.next()){ title = rs.getString(1); } rs.close(); stmt.close(); conn.close(); } catch(SQLException e) { } %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>게시판</title> </head> <body> <table> <form name=replyform method=post action="reply_ok.jsp?idx=<%=idx%>&pg=<%=pg%>"> <tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr style="background:url('img/table_mid.gif') repeat-x; text-align:center;"> <td width="5"><img src="img/table_left.gif" width="5" height="30" /></td> <td>답글</td> <td width="5"><img src="img/table_right.gif" width="5" height="30" /></td> </tr> </table> <table> <tr> <td> </td> <td align="center">제목</td> <td><input name="title" size="50" maxlength="100" value = "<%=title%>"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">이름</td> <td><input name="name" size="50" maxlength="50"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">비밀번호</td> <td><input name="password" size="50" maxlength="50"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">내용</td> <td><textarea name="memo" cols="50" rows="13"></textarea></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr height="1" bgcolor="#82B5DF"><td colspan="4"></td></tr> <tr align="center"> <td> </td> <td colspan="2"><input type=button value="등록" OnClick="javascript:replyCheck();"> <input type=button value="취소" OnClick="javascript:history.back(-1)"> <td> </td> </tr> </table> </td> </tr> </table> </body>
</html>
새로운 reply.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"
pageEncoding="EUC-KR"%> <%@ page import="board.*" %> <jsp:useBean id="dao" class="board.DAO"/> <% int idx = Integer.parseInt(request.getParameter("idx")); int pg = Integer.parseInt(request.getParameter("pg")); VO vo = dao.getView(idx); %> <script language = "javascript"> // 자바 스크립트 시작 function replyCheck() { var form = document.replyform; if( !form.name.value ) // form 에 있는 name 값이 없을 때 { alert( "이름을 적어주세요" ); // 경고창 띄움 form.name.focus(); // form 에 있는 name 위치로 이동 return; } if( !form.password.value ) { alert( "비밀번호를 적어주세요" ); form.password.focus(); return; } if( !form.title.value ) { alert( "제목을 적어주세요" ); form.title.focus(); return; } if( !form.memo.value ) { alert( "내용을 적어주세요" ); form.memo.focus(); return; } form.submit(); } </script> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>게시판</title> </head> <body> <table> <form name=replyform method=post action="reply_ok.jsp?idx=<%=idx%>&pg=<%=pg%>"> <tr> <td> <table width="100%" cellpadding="0" cellspacing="0" border="0"> <tr style="background:url('img/table_mid.gif') repeat-x; text-align:center;"> <td width="5"><img src="img/table_left.gif" width="5" height="30" /></td> <td>답글</td> <td width="5"><img src="img/table_right.gif" width="5" height="30" /></td> </tr> </table> <table> <tr> <td> </td> <td align="center">제목</td> <td><input name="title" size="50" maxlength="100" value = "<%=vo.getTitle()%>"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">이름</td> <td><input name="name" size="50" maxlength="50"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">비밀번호</td> <td><input name="password" size="50" maxlength="50"></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr> <td> </td> <td align="center">내용</td> <td><textarea name="memo" cols="50" rows="13"></textarea></td> <td> </td> </tr> <tr height="1" bgcolor="#dddddd"><td colspan="4"></td></tr> <tr height="1" bgcolor="#82B5DF"><td colspan="4"></td></tr> <tr align="center"> <td> </td> <td colspan="2"><input type=button value="등록" OnClick="javascript:replyCheck();"> <input type=button value="취소" OnClick="javascript:history.back(-1)"> <td> </td> </tr> </table> </td> </tr> </table> </body> </html>
기존의 reply_ok.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page import="java.sql.*"%> <% request.setCharacterEncoding("euc-kr"); Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url = "jdbc:odbc:board2"; String id = ""; String pass = ""; String name = request.getParameter("name"); String password = request.getParameter("password"); String title = request.getParameter("title"); String memo = request.getParameter("memo"); int idx = Integer.parseInt(request.getParameter("idx")); int pg = Integer.parseInt(request.getParameter("pg")); try { int ref = 0; int indent = 0; int step = 0; Connection conn = DriverManager.getConnection(url,id,pass); Statement stmt = conn.createStatement(); String sql = "SELECT REF, INDENT, STEP FROM board1 WHERE NUM=" + idx; ResultSet rs = stmt.executeQuery(sql); if(rs.next()) { ref = rs.getInt(1); indent = rs.getInt(2); step = rs.getInt(3); } sql = "UPDATE board1 SET STEP=STEP+1 where REF="+ref+" and STEP>" +step; stmt.executeUpdate(sql); sql = "INSERT INTO board1(USERNAME, PASSWORD, TITLE, MEMO, REF, INDENT, STEP) "+ "values(?,?,?,?,?,?,?)"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1, name); pstmt.setString(2, password); pstmt.setString(3, title); pstmt.setString(4, memo); pstmt.setInt(5, ref); pstmt.setInt(6, indent+1); pstmt.setInt(7, step+1); pstmt.execute(); rs.close(); stmt.close(); pstmt.close(); conn.close(); }catch(Exception e) { } %> <script language=javascript> self.window.alert("입력한 글을 저장하였습니다."); location.href="list.jsp?pg=<%=pg%>"; </script>
새로운 reply_ok.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR" pageEncoding="EUC-KR"%> <%@ page import="board.*" %> <jsp:useBean id="dao" class="board.DAO"/> <jsp:useBean id="vo" class="board.VO"/> <jsp:setProperty name="vo" property="*" /> <%
request.setCharacterEncoding("euc-kr");int idx = Integer.parseInt(request.getParameter("idx")); int pg = Integer.parseInt(request.getParameter("pg")); VO vo1 = dao.getView(idx); int ref = vo1.getRef(); int indent = vo1.getIndent(); int step = vo1.getStep(); dao.UpdateStep(ref, step); dao.insertReply(vo, ref, indent, step); %> <script language=javascript> self.window.alert("입력한 답글을 저장하였습니다."); location.href="list.jsp?pg=<%=pg%>";
</script>
짧아서 보기 좋습니다.
이미지출처 : 판다의 이상한 블로그(http://ssppmm.tistory.com/)
'Programming > JSP - 게시판만들기' 카테고리의 다른 글
[JSP] JSP로 게시판 만들기[MODEL 1] - 13(최종파일) (34) | 2013.01.25 |
---|---|
[JSP] JSP로 게시판 만들기[MODEL 1] - 11(글수정) (0) | 2013.01.25 |
[JSP] JSP로 게시판 만들기[MODEL 1] - 10(글삭제) (3) | 2013.01.25 |
[JSP] JSP로 게시판 만들기[MODEL 1] - 8(내용보기) (0) | 2013.01.25 |
[JSP] JSP로 게시판 만들기[MODEL 1] - 7(글쓰기) (8) | 2013.01.25 |