-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathbbs.jsp
189 lines (169 loc) · 6.12 KB
/
bbs.jsp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import= "java.io.PrintWriter" %>
<%@ page import= "bbs.BbsDAO" %>
<%@ page import= "bbs.Bbs" %>
<%@ page import= "java.util.ArrayList" %>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width", initial-scale="1">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/custom.css">
<title>JSP 게시판 웹사이트 </title>
<style type="text/css">
a,a:hover {
color:#000000;
text-decoration: none;
}
</style>
</head>
<body>
<%
String userID = null;
if(session.getAttribute("userID") != null); {
userID = (String)session.getAttribute("userID");
}
// int pageNumber = 1;
// if(request.getParameter("pageNumber") != null){
// pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
// }
//
int pageSize = 10; // 한 페이지에 출력할 레코드 수
int pageNumber = 1;
if (request.getParameter("pageNumber") != null) {
pageNumber = Integer.parseInt(request.getParameter("pageNumber"));
}
// 페이지 링크를 클릭한 번호 / 현재 페이지
// 연산을 하기 위한 pageNum 형변환 / 현재 페이지
// 해당 페이지에서 시작할 레코드 / 마지막 레코드
int startRow = (pageNumber - 1) * pageSize + 1;
int endRow = pageNumber * pageSize;
%>
<nav class="navbar navbar-default">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed"
data-toggle="collapse" data-target="#bs-example-navbar-collapse-1"
aria-expanded="false">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="main.jsp">방명록</a>
</div>
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li><a href="main.jsp">메인</a></li>
<li class="active"><a href="bbs.jsp">게시판</a></li>
</ul>
<%
if(userID == null) {
%>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">로그인/가입<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="login.jsp">로그인</a></li>
<li><a href="join.jsp">회원가입</a></li>
</ul>
</li>
</ul>
<%
} else {
%>
<ul class="nav navbar-nav navbar-right">
<li class="dropdown">
<a href="#" class="dropdown-toggle"
data-toggle="dropdown" role="button" aria-haspopup="true"
aria-expanded="false">회원관리<span class="caret"></span></a>
<ul class="dropdown-menu">
<li><a href="logoutAction.jsp">로그아웃</a></li>
</ul>
</li>
</ul>
<%
}
%>
</div>
</nav>
<div class="container">
<div class="row">
<table class="table table-striped" style="text-align: center; border:1px solid #dddddd">
<thead>
<tr>
<th style= "background-color: #eeeeee; text-align: center;">번호</th>
<th style= "background-color: #eeeeee; text-align: center;">제목</th>
<th style= "background-color: #eeeeee; text-align: center;">작성자</th>
<th style= "background-color: #eeeeee; text-align: center;">작성일</th>
</tr>
</thead>
<tbody>
<%
BbsDAO bbsDAO = new BbsDAO();
ArrayList<Bbs> list = bbsDAO.getList(pageNumber);
int count = 0;
BbsDAO bbsDAO2 = new BbsDAO(); // bbsDAO를 그대로 쓰니 안되어서 새 인스턴스 생성... 왜 안될까?
count = bbsDAO2.getCount(); // 전체 게시물 수
for(int i = 0; i < list.size(); i++) {
%>
<tr>
<td><%= list.get(i).getBbsID() %></td>
<td><a href="view.jsp?bbsID=<%= list.get(i).getBbsID() %>"><%= list.get(i).getBbsTitle() %></a></td>
<td><%= list.get(i).getUserID() %></td>
<td><%= list.get(i).getBbsDate().substring(0,11) +list.get(i).getBbsDate().substring(11,13) + "시" + list.get(i).getBbsDate().substring(14,16) + "분" %></td>
</tr>
<%
}
%>
</tbody>
<tr>
<td colspan="6" align="center">
<% // 페이징 처리
if(count > 0){
// 총 페이지의 수
int pageCount = count / pageSize + (count%pageSize == 0 ? 0 : 1);
// 한 페이지에 보여줄 페이지 블럭(링크) 수
int pageBlock = 10;
// 한 페이지에 보여줄 시작 및 끝 번호(예 : 1, 2, 3 ~ 10 / 11, 12, 13 ~ 20)
int startPage = ((pageNumber-1)/pageBlock)*pageBlock+1;
int endPage = startPage + pageBlock - 1;
// 마지막 페이지가 총 페이지 수 보다 크면 endPage를 pageCount로 할당
if(endPage > pageCount){
endPage = pageCount;
}
if(startPage > pageBlock){ // 페이지 블록수보다 startPage가 클경우 이전 링크 생성
%>
<a href="bbs.jsp?pageNumber=<%=startPage - 10%>">[이전]</a>
<%
}
for(int i=startPage; i <= endPage; i++){ // 페이지 블록 번호
if(i == pageNumber){ // 현재 페이지에는 링크를 설정하지 않음
%>
[<%=i %>]
<%
}else{ // 현재 페이지가 아닌 경우 링크 설정
%>
<a href="bbs.jsp?pageNumber=<%=i%>">[<%=i %>]</a>
<%
}
} // for end
if(endPage < pageCount){ // 현재 블록의 마지막 페이지보다 페이지 전체 블록수가 클경우 다음 링크 생성
%>
<a href="bbs.jsp?pageNumber=<%=startPage + 10 %>">[다음]</a>
<%
}
}
%>
</td>
</tr>
</table>
<a href="write.jsp" class="btn btn-primary pull-right">글쓰기</a>
</div>
</div>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="js/bootstrap.js"></script>
</body>
</html>