class BoardReWriteCon
package control;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@WebServlet("/BoardReWriteCon.do")
public class BoardReWriteCon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
reqPro(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
reqPro(request, response);
}
protected void reqPro(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
int ref=Integer.parseInt(request.getParameter("ref"));
int re_step=Integer.parseInt(request.getParameter("re_step"));
int re_level=Integer.parseInt(request.getParameter("re_level"));
request.setAttribute("ref", ref);
request.setAttribute("re_step", re_step);
request.setAttribute("re_level", re_level);
RequestDispatcher dis =request.getRequestDispatcher("BoardReWriteForm.jsp");
dis.forward(request, response);
}
}
BoardReWriteForm.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<jsp:include page="Header.jsp"/>
</head>
<body>
<div class="row">
<div class="col-md-2"></div>
<div class="col-md-8">
<h2 class="text-center">답변글 입력하기</h2><p></p>
<form action="BoardReWriteProcCon.do" method="post">
<div class="table table-responsive">
<table class="table table-striped">
<tr>
<td>작성자</td>
<td><input type="text" class="form-control" name="writer"></td>
</tr>
<tr>
<td>제목</td>
<td><input type="text" class="form-control" name="subject" value="[답변]"></td>
</tr>
<tr>
<td>이메일</td>
<td><input type="email" class="form-control" name="email"></td>
</tr>
<tr>
<td>비밀번호</td>
<td><input type="password" class="form-control" name="password"></td>
</tr>
<tr>
<td>글내용</td>
<td><textarea rows="10" cols="50" name="content" class="form-control"></textarea></td>
</tr>
<tr>
<td colspan="2" class="text-center">
<input type="hidden" name="ref" value="${ref }">
<input type="hidden" name="re_step" value="${re_step }">
<input type="hidden" name="re_level" value="${re_level }">
<input type="submit" value="답글쓰기완료" class="btn btn-success">
<input type="reset" value="취소" class="btn btn-warning">
<input type="button" class="btn btn-primary" onclick="location.href='BoardListCon.do'" value="전체글보기">
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
<jsp:include page="Bottom.jsp"/>
</body>
</html>
class BoardDAO
//답변글을 저장하는 메소드
public void reInsertBoard(BoardBean bean) {
getCon();
//빈클래스에 넘어오지 않았던 데이터들을 초기화 해주어야 합니다.
int ref=bean.getRef(); //글그룹을 의미 = 쿼리를 실행시켜서 가장큰 ref 값을 자져온 후 +1을 더해주면됨
int re_step=bean.getRe_step(); //새글이기에 = 부모글
int re_level=bean.getRe_level();
try{
String levelSql="update board set re_level =re_level+1 where ref=? and re_level > ? ";
pstmt =con.prepareStatement(levelSql);
pstmt.setInt(1, ref);
pstmt.setInt(2, re_level);
pstmt.executeUpdate();
//데이터를 삽입하는 쿼리
String sql =" insert into BOARD (NUM, WRITER, EMAIL, SUBJECT, PASSWORD, REG_DATE, REF, ";
sql +=" RE_STEP, RE_LEVEL, READCOUNT, CONTENT) ";
sql +=" values(board_seq.NEXTVAL, ? ,? , ?, ?, sysdate, ?, ?, ? , 0, ? ) ";
pstmt=con.prepareStatement(sql);
//?에 값을 맵핑
pstmt.setString(1, bean.getWriter());
pstmt.setString(2, bean.getEmail());
pstmt.setString(3, bean.getSubject());
pstmt.setString(4, bean.getPassword());
pstmt.setInt(5, ref);
pstmt.setInt(6, re_step+1); //기존 부모글에 스텝보다 1을 증가
pstmt.setInt(7, re_level+1); // 기존 부모글에 스텝보다 1을 증가
pstmt.setString(8, bean.getContent());
//쿼리를 실행하시오
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
//자원 반납
closed();
}
}
class BoardReWriteProcCon
package control;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import model.BoardBean;
import model.BoardDAO;
@WebServlet("/BoardReWriteProcCon.do")
public class BoardReWriteProcCon extends HttpServlet {
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
reqPro(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
reqPro(request, response);
}
protected void reqPro(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("UTF-8");
//빈에 넘어온 데이터를 저장
BoardBean bean =new BoardBean();
bean.setContent(request.getParameter("content"));
bean.setEmail(request.getParameter("email"));
bean.setPassword(request.getParameter("password"));
bean.setRe_level(Integer.parseInt(request.getParameter("re_level")));
bean.setRe_step(Integer.parseInt(request.getParameter("re_step")));
bean.setRef(Integer.parseInt(request.getParameter("ref")));
bean.setSubject(request.getParameter("subject"));
bean.setWriter(request.getParameter("writer"));
BoardDAO bdao =new BoardDAO();
bdao.reInsertBoard(bean);
response.sendRedirect("BoardListCon.do");
}
}
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.














댓글 ( 4)
댓글 남기기