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)
댓글 남기기