BoardWriteForm.jsp
<%@page import="java.sql.Connection"%>
<%@page import="org.apache.catalina.connector.OutputBuffer"%>
<%@page import="model.BoardDAO"%>
<%@ 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>
<form action="BoardWriterProcCon.do" method="post" >
<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"></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="submit" value="글쓰기" class="btn btn-success">
<input type="reset" value="다시작성" class="btn btn-warning">
<button type="button" class="btn btn-primary" onclick="location.href='BoardListCon.do'">전체 게시글보기</button>
</td>
</tr>
</table>
</form>
</div>
</div>
<jsp:include page="Bottom.jsp"/>
<script>
CKEDITOR.replace('content', {
width:'100%',
height:'350'
});
</script>
</body>
</html>
class BoardWriterProcCon
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;
import model.BoardBean;
import model.BoardDAO;
@WebServlet("/BoardWriterProcCon.do")
public class BoardWriterProcCon 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.setWriter(request.getParameter("writer"));
bean.setSubject(request.getParameter("subject"));
bean.setEmail(request.getParameter("email"));
bean.setPassword(request.getParameter("password"));
bean.setContent(request.getParameter("content"));
BoardDAO bdao=new BoardDAO();
bdao.insertBoard(bean);
RequestDispatcher rd =request.getRequestDispatcher("BoardListCon.do");
rd.forward(request, response);
}
}
class BoardDAO
//하나의 게시글을 저장하는 메소드 호출
public void insertBoard(BoardBean bean) {
//빈클래스에 넘어오지 않았던 데이터들을 초기화 해주어야 합니다.
getCon();
//빈클래스에 넘어오지 않았던 데이터들을 초기화 해주어야 합니다.
int ref=0; //글그룹을 의미 = 쿼리를 실행시켜서 가장큰 ref 값을 자져온 후 +1을 더해주면됨
int re_step=1; //새글이기에 = 부모글
int re_level=1;
try{
//가장 큰 ref값을 읽어오는 쿼리 준비
String refsql ="select max(ref) from board ";
//쿼리실행 객체
pstmt =con.prepareStatement(refsql);
//쿼리실행후 결과를 리턴
rs=pstmt.executeQuery();
if(rs.next()){ //결과 값이 였다면
ref =rs.getInt(1)+1;//최대값에 +1 를 더해서 글그룹을 설정
}
//실제로 게시글 전체값을 테이블에 저장
// String sql =" insert into board values( board_seq.NEXTVAL, ?, ? , ?, ? , )";
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);
pstmt.setInt(7, re_level);
pstmt.setString(8, bean.getContent());
//쿼리를 실행하시오
pstmt.executeUpdate();
}catch(Exception e){
e.printStackTrace();
}finally{
//자원 반납
closed();
}
}
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.














댓글 ( 4)
댓글 남기기