class BoardDAO
//조회수를 증가하지 않는 하나의 게시글을 리턴하는 메소드 public BoardBean getOuneUpdateBoard(int num){ getCon(); BoardBean bean =new BoardBean(); try{ //한게시글에 대한 정보를 리턴해주는 쿼리를 작성 String sql ="select * from board where num=?"; pstmt=con.prepareStatement(sql); pstmt.setInt(1, num); //쿼리실행 후 결과를 리턴 rs =pstmt.executeQuery(); if(rs.next()){//하나의 게시글이 존재 한다면 bean.setNum(rs.getInt("num")); bean.setWriter(rs.getString("WRITER")); bean.setEmail(rs.getString("EMAIL")); bean.setSubject(rs.getString("SUBJECT")); bean.setPassword(rs.getString("PASSWORD")); bean.setReg_date(rs.getDate("REG_DATE").toString()); bean.setRef(rs.getInt("ref")); bean.setRe_step(rs.getInt("RE_STEP")); bean.setRe_level(rs.getInt("RE_LEVEL")); bean.setReadcount(rs.getInt("READCOUNT")); bean.setContent(rs.getString("CONTENT")); //패키징한 데이터를 벡터에 저장 } }catch(Exception e){ e.printStackTrace(); }finally{ closed(); } return bean; }
class BoardUpdateCon
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("/BoardUpdateCon.do") public class BoardUpdateCon 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 { //해당번호 int num =Integer.parseInt(request.getParameter("num")); //데이터베이스에서 하나의 게시글에 대한정보를 리턴 메소드 호출 BoardDAO bdao =new BoardDAO(); BoardBean bean=bdao.getOuneUpdateBoard(num); //request request.setAttribute("bean", bean); RequestDispatcher dis =request.getRequestDispatcher("BoardUpdateForm.jsp"); dis.forward(request, response); } }
BoardUpdateForm.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="BoardUpdateProcCon.do" method="post"> <div class="table table-responsive"> <table class="table table-striped"> <tr> <td class="danger">작성자</td> <td>${bean.writer}</td> <td class="danger">작성일</td> <td>${bean.reg_date}</td> </tr> <tr> <td class="danger">제목</td> <td colspan="3"><input type="text" class="form-control" name="subject" value="${bean.subject}"></td> </tr> <tr> <td class="danger">패스워드</td> <td colspan="3"><input type="password" class="form-control" name="password"></td> </tr> <tr> <td class="danger">글내용</td> <td colspan="3"><textarea name="content" class="form-control">${bean.content}</textarea></td> </tr> <tr> <td colspan="4" class="text-center"> <input type="hidden" name="num" value="${bean.num}"> <input type="hidden" name="pass" value="${bean.password}"> <input type="submit" 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"/> <script> CKEDITOR.replace('content', { width:'100%', height:'350' }); </script> </body> </html>
BoardUpdateProcCon
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("/BoardUpdateProcCon.do") public class BoardUpdateProcCon 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 num =Integer.parseInt(request.getParameter("num")); String password =request.getParameter("password"); //사용자로부터 입력받은 패스워드 String pass =request.getParameter("pass");//실제 데이터베이스에 저장되어있는 패스워드값 String subject=request.getParameter("subject"); String content=request.getParameter("content"); //password 값과 pass 값을 비교해야 합니다. } }
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 4)
댓글 남기기