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