class BoardUpdateProcCon
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 값을 비교해야 합니다. if(password.equals(pass)){ //패스워드가 같다면 데이터를 수정 BoardDAO bdao =new BoardDAO(); bdao.updateBoard(num, subject, content); //수정이 완료되었다면 전체 게시글보기로 이동 //request.setAttribute("msg", ""); response.sendRedirect("BoardListCon.do?msg=complete"); //RequestDispatcher rd=request.getRequestDispatcher("BoardListCon.do"); // rd.forward(request, response); }else{ //비밀번호가 틀렸다면 이전 페이지로 이동 request.setAttribute("msg", "비밀번호가 맞지 않습니다."); RequestDispatcher rd=request.getRequestDispatcher("BoardListCon.do"); rd.forward(request, response); //response.sendRedirect("BoardListCon.do"); } }
class BoardDAO
//하나의 게시글을 수정하는 메소드 public void updateBoard(int num, String subject, String content) { //데이터베이스연결 getCon(); try{ //3.쿼리준비 쿼리실행할객체 선언 String sql="update board set subject =?, content=? where num=?"; pstmt =con.prepareStatement(sql); //?에 값을 대입 pstmt.setString(1, subject); pstmt.setString(2, content); pstmt.setInt(3, num); //4.쿼리실행 pstmt.executeUpdate(); //5.자원 반납 }catch(Exception e){ e.printStackTrace(); }finally{ closed(); } }
BoardList.jsp
<!-- 게시글 보기에 카운터링을 설정하기위한 변수들을 선언 --> <c:if test="${msg != null || param.msg != null}"> <c:if test="${param.msg =='complete'}"> <c:set var="msg" value="수정이 완료 되었습니다." /> </c:if> <script type="text/javascript"> alert("${msg}"); //파라미터 제거 history.replaceState({}, null, location.pathname); </script> </c:if>
class BoardListCon
protected void reqPro(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //1.페이징 객체 생성 페이지의 넘버값을 읽어드림 Paging paging =new Paging(request.getParameter("pageNum")); BoardDAO bdao =new BoardDAO(); //2.페이징 객체에 전체페이지를 넘겨줌, Paging 클래스에서 페이지 계산 처리 됨 paging.setTotalCount(bdao.getAllCount()); //3.페이지가 넘어갈 url 주소 paging.paginHtml("BoardListCon.do"); //페이징 객체에서 계산 처린된 row 값 최신글 10개를 기준으로 게시글을 리턴 받아주는 메소드 호출 Vector<BoardBean> v =bdao.getAllBoard(paging.getStartRow(), paging.getEndRow()); //수정시 String msg=(String)request.getAttribute("msg"); if(request.getParameter("msg")!=null){ msg=request.getParameter("msg"); } request.setAttribute("msg", msg); /////// BoardList.jsp 쪽으로 request 객체에 담아서 넘겨줌 request.setAttribute("v",v); request.setAttribute("paging", paging); RequestDispatcher dis =request.getRequestDispatcher("BoardList.jsp"); dis.forward(request, response); }
동영상 강좌와 다르게 모바일 적용이 가능한 반응형 부트스트랩을 사용하였다.
여기서는 jsp 를 배우는 강좌 이기 때문에 html 적 요소에는 비중있게 생각 하지 않아도 될 것이다.
또한, 일부 자바 코드는 제 입맛에 맞게 변경 하였습니다.
혹시, 이 강의를 들으면서 제 글을 읽고 소스코드를 참조하는 수강생이 있다면 동영상의 코드와 다르다고 생각지 마세요. 대부분 동여상 내용과 같으니 학습에 도움이 될거라 생각 합니다.
소스 : https://github.com/braverokmc79/jsp_sin
유튜브 동영상 출처 :
강사 : 신형섭(잭임연구원)
저작권 : (주)소프트캠퍼스 http://www.softcampus.co.kr 더많은 무료 강의는 사이트에서 확인하실수 있습니다.
댓글 ( 5)
댓글 남기기