본문 바로가기

JSP/BBS 06

BBS 06

게시판 글을 읽다가 답글을 쓰려는 이용자가 답글쓰기 링크를 클릭하면 글쓰기 페이지(boardWrite.jsp)로 이동할 수 있게 하였다.

showContents02.jsp
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>
<%
 int num = Integer.parseInt(request.getParameter("num"));
 Context initCtx = new InitialContext();
 DataSource ds =  (DataSource)initCtx.lookup("java:comp/env/jdbc/myoracle");
 Connection conn = ds.getConnection();
 String sql = "select num, writer, subject, content, reg_date from board where num=?";
 PreparedStatement pstmt = conn.prepareStatement(sql);
 pstmt.setInt(1, num);
 ResultSet rs = pstmt.executeQuery();
%>
<html>
<head><title>게시판 글읽기 페이지</title>
<style type="text/css">
TABLE {
 font-size:70%;
}
A {
 text-decoration:none;
}
</style>
</head>
<body><p><center> 계층구조로 출력하기 연습
<hr width=70%>
<table border=1 cellspacing=0 cellpadding=5 width=500>
<%
 if(rs.next()){
  num = rs.getInt("num");
 %>
 <tr><th>글번호</th><th>작성자</th><th>제 목</th><th>작성일자</th></tr>
 <tr>
 <td align=center><%=num%></td>
 <td align=center><%=rs.getString("writer")%></td>
 <td align=center><%=rs.getString("subject")%></td>
 <td align=center><%=rs.getString("reg_date")%></td>
 </tr>
 <tr>
 <td colspan=4><%=rs.getString("content")%></td>
 </tr>
<%}
 rs.close();
 pstmt.close();
 conn.close();
%>
<tr>
<td align=center colspan=4><a href="boardWrite.jsp?ref=<%=num%>">답글쓰기</a>
</td>
</tr>
</table>
</center>
</body>
</html>

boardWrite.jsp
전달된 글번호를 이용하여 데이터베이스에서 글 제목을 가져온 후에 폼에 출력해 준다.
<%@ page language="java" contentType="text/html; charset=EUC-KR"%>
<%@ page import="java.sql.*, javax.sql.*, javax.naming.*" %>
<%
 String num = request.getParameter("ref");
 String subject = "";
 if(num!=null && !num.equals("")) {
  Context initCtx = new InitialContext();
  DataSource ds =  (DataSource)initCtx.lookup("java:comp/env/jdbc/myoracle");
  Connection conn = ds.getConnection();
  String sql = "select subject from board where num=?";
  PreparedStatement pstmt = conn.prepareStatement(sql);
  pstmt.setInt(1, Integer.parseInt(num));
  ResultSet rs = pstmt.executeQuery();
  if(rs.next()) subject = "RE:"+rs.getString("SUBJECT");
  rs.close();
  pstmt.close();
  conn.close();
 }else num="0";
%>
<html>
<head>
<title>게시판 글쓰기</title>
<style type="text/css">
A {
 text-decoration:none;
}
.textbox { border:1px solid; }
.textarea { border:1px solid; width=300; height:200; }
</style>
</head>
<body><p><center>
글을 작성하신 후에 저장버튼을 클릭해 주세요
<hr width=70%>
<form action="writeProc.jsp" method="post">
<input type="hidden" name="ref" value="<%=num%>">
<table border=1 bgcolor=orange><tr><td>
<table border=0 cellpadding=5 bgcolor=orange style=" font-size:70%">
<tr><td>작성자</td><td><input  class="textbox" style="width:100px" type="text" name="writer" value="장수정"></td></tr>
<tr><td>비밀번호</td><td><input  class="textbox" style="width:150px" type="password" name="pass" value="1111"></td></tr>
<tr><td>E-Mail</td><td><input  class="textbox" style="width:200px" type="text" name="email" value="hello@korea.com"></td></tr>
<tr><td>제 목</td><td><input class="textbox" style="width:250px" type="text" name="subject" value="<%=subject%>"></td></tr>
<tr><td>내 용</td><td><textarea class="textarea" name="content"></textarea></td></tr>
<tr><td colspan=2 align=center><input type="submit" value="저 장"> <input type="reset" value="취 소"></td></tr>
</table>
</td></tr></table>
</form>
</center>
</body>
</html>