* 파일 첨부
* 게시판 소스
1. list.jsp (목록 리스트)
<%
//게시판 글개수
//디비객체생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
int count=0;
//count=메서드 호출 getBoardCount()
count = dbPro.getBoardCount();
//한페이지에 몇개 글 가져오기
int pageSize=10;
//현페이지 몇페이지 가져오기
String pageNum = request.getParameter("pageNum");
if(pageNum == null){
pageNum="1";
}
//현페이지 시작행 구하기
int currentPage = Integer.parseInt(pageNum);
int startRow = (currentPage-1)*pageSize+1;
int endRow = currentPage*pageSize;
List boardList = null;
if(count!=0){
//boardList = 메서드 호출 getBoards(startRow,pageSize)
boardList = dbPro.getBoards(startRow, pageSize);
}
%>
<h1>게시판 목록(전체글:<%=count %>)</h1>
<h3><a href="writeForm.jsp">글쓰기</a></h3>
<table border="1">
<tr><td>번호</td><td>제목</td><td>작성자</td>
<td>작성일</td><td>조회</td><td>IP</td></tr>
<%
if(count!=0){
for(int i=0; i<boardList.size(); i++){
BoardDataBean board = (BoardDataBean) boardList.get(i);
%>
<tr><td><%=board.getNum() %></td>
<td>
<%
int wid=0;
if(board.getRe_level()>0){
//답변글
wid = 10*board.getRe_level();
%>
<img src="img/level.gif" width="<%=wid%>">
<img src="img/re.gif">
<%
}
%>
<a href="content.jsp?num=<%=board.getNum()%>&pageNum=<%=currentPage%>"><%=board.getSubject() %></a></td>
<td><%=board.getWriter() %></td>
<td><%=board.getReg_date() %></td>
<td><%=board.getReadcount() %></td>
<td><%=board.getIp() %></td></tr>
<%}}
%>
</table>
<%
if(count>0){
//페이징 작업을 하기 위해서는 전체 페이지수가 필요
//전체 페이지수 구하기//50개=>5페이지, 51~59개=>6페이지
int pageCount = count/pageSize+(count%pageSize==0?0:1);
//한 페이지에 보여줄 페이지수 설정
int pageBlock = 10;
//한 페이지에 보여지는 시작페이지 구하기
int startPage = ((int)(currentPage/pageBlock)-(currentPage%pageBlock==0?1:0))*pageBlock+1;
//한 페이지에 보여지는 끝페이지 구하기
int endPage = startPage+pageBlock-1;
if(endPage>pageCount){
endPage=pageCount;
}
//[이전]
if(startPage>pageBlock){
%><a href="list.jsp?pageNum=<%=startPage-pageBlock%>">[이전]</a><%
}
//[1]~[10]
for(int i=startPage; i<=endPage; i++){
%><a href="list.jsp?pageNum=<%=i%>">[<%=i %>]</a><%
}
//[다음]
if(endPage<pageCount){
%><a href="list.jsp?pageNum=<%=startPage+pageBlock%>">[다음]</a><%
}
}
%>
2. writeForm.jsp (글쓰기)
헤드
<!-- script.js 파일을 불러오는 자바스크립트 태그 -->
<script language="javascript" src="js/script.js"></script>
<!-- css파일을 불러오는 태그 -->
<link href="css/style.css" rel="stylesheet" type="text/css">
HTML
<h1>게시판 글쓰기</h1>
<form action="writePro.jsp" method="post" name="fr" onsubmit="return writeSave()">
<table border="1">
<tr><td>이름</td><td><input type="text" name="writer"></td></tr>
<tr><td>제목</td><td><input type="text" name="subject"></td></tr>
<tr><td>Email</td><td><input type="text" name="email"></td></tr>
<tr><td>내용</td><td><textarea name="content" rows="13" cols="40"></textarea></td></tr>
<tr><td>비밀번호</td><td><input type="text" name="passwd"></td></tr>
<tr><td><input type="submit" value="글쓰기">
<input type="reset" value="다시작성">
<input type="button" value="목록보기" onclick="location.href='list.jsp'"></td></tr>
</table>
</form>
3. writePro.jsp (글쓰기 동작)
<%
// 한글처리
request.setCharacterEncoding("utf-8");
//자바빈생성 패키지 board, 파일이름 BoardDataBean
//액션태그 자바빈 객체 생성 board
//액션태그 폼 -> 자바빈 저장
%><jsp:useBean id="board" class="board.BoardDataBean"/>
<jsp:setProperty property="*" name="board"/>
<%
//수동으로 ip주소 reg_date 저장하게 해주고
board.setReg_date(new Timestamp(System.currentTimeMillis())); //현재 시간을 Reg_date에 저장
board.setIp(request.getRemoteAddr()); //ip주소를 받아서 IP에 저장
//디비파일생성 패키지 board, 파일이름 BoardDBBean
//디비객체생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
//메서드 호출 insertBoard(board)
dbPro.insertBoard(board);
//이동 list.jsp
%>
<script type="text/javascript">
alert("게시판 글쓰기 성공!");
location.href="list.jsp";
</script><%
%>
4. content.jsp (글 내용 보기)
<%
//int num과 String pageNum 가져오기
String str = request.getParameter("num");
int num = Integer.parseInt(str);
String pageNum = request.getParameter("pageNum");
//디비객체 생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
//조회수 1증가
dbPro.updateReadCount(num);
//자바빈 board = 메서드 호출 getBoard(num)
BoardDataBean board = dbPro.getboard(num);
%>
<h1>글내용보기</h1>
<table border="1">
<tr><td>글번호</td><td><%=board.getNum() %></td>
<td>조회수</td><td><%=board.getReadcount() %></td></tr>
<tr><td>작성자</td><td><%=board.getWriter() %></td>
<td>작성일</td><td><%=board.getReg_date()%></td></tr>
<tr><td>글제목</td><td colspan="3"><%=board.getSubject() %></td></tr>
<tr><td>글내용</td><td colspan="3"><%=board.getContent() %></td></tr>
<tr><td colspan="4">
<input type="button" value="글수정" onclick="location.href='updateForm.jsp?num=<%=num%>&pageNum=<%=pageNum%>'">
<input type="button" value="글삭제" onclick="location.href='deleteForm.jsp?num=<%=num%>&pageNum=<%=pageNum%>'">
<input type="button" value="답글쓰기" onclick="location.href='reWrite.jsp?num=<%=num%>&ref=<%=board.getRef() %>&re_step=<%=board.getRe_step()%>&re_level=<%=board.getRe_level()%>'">
<input type="button" value="글목록" onclick="location.href='list.jsp?pageNum=<%=pageNum%>'">
</td></tr>
</table>
5. updateForm.jsp (글 수정)
<%
//int num String pageNum
int num = Integer.parseInt(request.getParameter("num"));
String pageNum=request.getParameter("pageNum");
//디비객체생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
//자바빈 board=메서드호출 getBoard(num)
BoardDataBean board = dbPro.getboard(num);
%>
<h1>게시판 글수정</h1>
<form action="updatePro.jsp?pageNum=<%=pageNum %>" method="post">
<input type="hidden" name="num" value="<%=num%>">
<table border="1">
<tr><td>이름</td>
<td><input type="text" name="writer" value="<%=board.getWriter()%>"></td></tr>
<tr><td>제목</td>
<td><input type="text" name="subject" value="<%=board.getSubject()%>"></td></tr>
<tr><td>Email</td>
<td><input type="text" name="email" value="<%=board.getEmail()%>"></td></tr>
<tr><td>내용</td>
<td><textarea name="content" rows="13" cols="40"><%=board.getContent()%></textarea></td></tr>
<tr><td>비밀번호</td>
<td><input type="password" name="passwd"></td></tr>
<tr><td><input type="submit" value="글수정">
<input type="reset" value="다시작성">
<input type="button" value="목록보기" onclick="location.href='list.jsp?pageNum=<%=pageNum%>'"></td></tr>
</table>
</form>
6. updatePro.jsp (글 수정 동작)
<%
//한글처리
request.setCharacterEncoding("utf-8");
//액션태그 자바빈 객체 생성 board
//액션태그 폼 => 자바빈 저장
%><jsp:useBean id="board" class="board.BoardDataBean"/>
<jsp:setProperty property="*" name="board"/>
<%
//pageNum 가져오기
String pageNum = request.getParameter("pageNum");
//디비객체 생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
//int check=수정메서드 호출 updateBoard()
int check = dbPro.updateBoard(board);
// check==1이면 list.jsp?pageNum=로 이동 pageNum값 가지고 이동
// check==0 비밀번호 틀림 뒤로이동
if(check==1){
response.sendRedirect("list.jsp?pageNum="+pageNum);
}else{
%><script type="text/javascript">
alert("비밀번호 틀림");
history.back();
</script><%
}
%>
7. deleteForm.jsp (글 삭제)
<%
// int num값, String pageNum값
int num = Integer.parseInt(request.getParameter("num"));
String pageNum = request.getParameter("pageNum");
%>
<h1>글삭제</h1>
<form action="deletePro.jsp?pageNum=<%=pageNum %>" method="post">
<input type = "hidden" name="num" value="<%=num %>">
<table border="1">
<tr><td>비밀번호 입력하세요</td></tr>
<tr><td><input type="password" name="passwd"></td></tr>
<tr><td>
<input type="submit" value="글삭제">
<input type="button" value="글목록" onclick="location.href='list.jsp?pageNum=<%=pageNum %>'">
</td></tr>
</table>
</form>
8. deletePro.jsp (글 삭제 동작)
<%
// int num
int num = Integer.parseInt(request.getParameter("num"));
// String pageNum
String str = request.getParameter("pageNum");
int pageNum = Integer.parseInt(request.getParameter("pageNum"));
// String passwd
String passwd = request.getParameter("passwd");
// 디비객체생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
// int check = 메서드 호출 deleteBoard(num,passwd)
int check = dbPro.deleteBoard(num, passwd);
// check==1 이면 list.jsp?pageNum=
// check==0 비밀번호틀림 뒤로 이동
if(check==1){
response.sendRedirect("list.jsp?pageNum="+pageNum);
}else{
%><script type="text/javascript">
alert("비밀번호 틀렸어!");
history.back();
</script>
<%
}
%>
9. reWrite.jsp (답글 쓰기)
<%
int num = Integer.parseInt(request.getParameter("num"));
int ref = Integer.parseInt(request.getParameter("ref"));
int re_step = Integer.parseInt(request.getParameter("re_step"));
int re_level = Integer.parseInt(request.getParameter("re_level"));
BoardDBBean dbPro = new BoardDBBean();
BoardDataBean board = dbPro.getboard(num);
%>
<h1>게시판 답글쓰기</h1>
<form action="reWritePro.jsp" method="post">
<input type="hidden" name="num" value="<%=num%>">
<input type="hidden" name="ref" value="<%=ref%>">
<input type="hidden" name="re_level" value="<%=re_level%>">
<input type="hidden" name="re_step" value="<%=re_step%>">
<table border="1">
<tr><td>이름</td><td><input type="text" name="writer"></td></tr>
<tr><td>제목</td><td><input type="text" name="subject" value="[답글] <%=board.getSubject() %>"></td></tr>
<tr><td>Email</td><td><input type="text" name="email"></td></tr>
<tr><td>내용</td><td><textarea name="content" rows="13" cols="40"></textarea></td></tr>
<tr><td>비밀번호</td><td><input type="text" name="passwd"></td></tr>
<tr><td><input type="submit" value="답글쓰기">
<input type="reset" value="다시작성">
<input type="button" value="목록보기" onclick="location.href='list.jsp'"></td></tr>
</table>
</form>
10. reWritePro.jsp (답글 쓰기 동작)
<%
// 한글처리
request.setCharacterEncoding("utf-8");
//자바빈생성 패키지 board, 파일이름 BoardDataBean
//액션태그 자바빈 객체 생성 board
//액션태그 폼 -> 자바빈 저장
%><jsp:useBean id="board" class="board.BoardDataBean"/>
<jsp:setProperty property="*" name="board"/>
<%
//수동으로 ip주소 reg_date 저장하게 해주고
board.setReg_date(new Timestamp(System.currentTimeMillis())); //현재 시간을 Reg_date에 저장
board.setIp(request.getRemoteAddr()); //ip주소를 받아서 IP에 저장
//디비파일생성 패키지 board, 파일이름 BoardDBBean
//디비객체생성 dbPro
BoardDBBean dbPro = new BoardDBBean();
//메서드 호출 reInsertBoard(board)
dbPro.reInsertBoard(board);
//이동 list.jsp
%>
<script type="text/javascript">
alert("게시판 답글쓰기 성공!");
location.href="list.jsp";
</script><%
%>
'N스크린하이브리드앱과정 > JSP:Model-1' 카테고리의 다른 글
[8주][1일][3~6th] JSP: HTML홈피를 JSP홈피로 바꾸기 (0) | 2013.09.02 |
---|---|
[6주][3일,4일][5~6th] JSP: 로그인폼~회원삭제. "회원가입리스트 보여주기" 까지 (0) | 2013.08.21 |
[6주][1일][5~8th] JSP: 회원가입폼 분리시키기 (0) | 2013.08.19 |
[5주][2일][5~8th] JSP: 회원수정, 회원삭제, 로그인 폼 구현하기 (0) | 2013.08.13 |
[5주][1일][5~8th] mysql 실습(이어서), mysql을 java(이클립스)와 연동하기 (0) | 2013.08.12 |