--> -->

JSP

 

 

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 더많은 무료 강의는 사이트에서 확인하실수 있습니다.

 

 

 

 

 

about author

PHRASE

Level 60  라이트

지금의 의사는 오직 사람의 병만 다스리고 마음은 고칠 줄 모르니 이는 근본을 버리고 말단만 쫓는 격이며, 그 근원은 캐지 않고 말류만 손질하는 것이다. -동의보감

댓글 ( 0)

댓글 남기기

작성

JSP 목록    more