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