JSP 웹 프로젝트
JSP 웹 프로젝트 (6) 작성된 게시판 불러오기
s_hoonee
2023. 1. 3. 10:29
반응형
대학생을 위한 웹 페이지 제작
사용 언어 : java (jdk 12.0.2), JavaScript, css, html
사용 툴 : Eclipse
데이터베이스 : Mysql
서버 : Tomcat
테스트 브라우저 : Chrome, Edge
파일 : jsp
학교 프로젝트로 만든 대학생을 위한 학교 웹 페이지입니다.
기능
1. 자유 게시판, 중고책, 분실물 게시판 등 운영 ( 이미지 첨부, 댓글 달기, 수정 등 가능 )
2. 학교 공지사항 게시
3. 기타 대외활동 포스터 게시
4. 학점 계산기, 자신만의 시간표, 건물 정보, 주차 구역 확인
5. 회원가입시 AES 암호화 + salt 값을 추가하여 비밀번호를 해쉬값으로 저장하여 암호화
6. 카카오 지도 API
시스템 구성도
게시판 목록 UI
postDAO.java
(1)게시물을 ArrayList에 담는 과정
public ArrayList<Post> getList(int pageNumber){
// 컬럼 postAvailable은 기본이 1이고 삭제시 0으로 바꿀 예정 즉 삭제되지 않은
// Available이 1인 게시물을 array에 넣고 게시물을 최대 10개씩 받아온다
String SQL = "select * from post where postID < ? AND postAvailable = 1 order by postID DESC"
+ " LIMIT 10";
ArrayList<Post> list = new ArrayList<Post>();
try {
PreparedStatement pstmt = conn.prepareStatement(SQL);
pstmt.setInt(1, getNext() - (pageNumber -1) *10);
rs = pstmt.executeQuery();
while (rs.next()) {
Post post = new Post();
post.setPostID(rs.getInt(1));
post.setPostTitle(rs.getString(2));
post.setUserID(rs.getString(3));
post.setPostDate(rs.getString(4));
post.setPostContent(rs.getString(5));
post.setPostAvailable(rs.getInt(6));
list.add(post);
}
} catch (Exception e) {
e.printStackTrace();
}
return list;
}
post 테이블은 여러 게시판 중 하나이며 각 각의 게시판은 일반적으로 같은 알고리즘을 사용하기에 post(공지사항 게시판)만 임의로 올림
post.jsp
원본 소스가 아닌 부트스트랩 css 코드들은 최대한 제거하고 알고리즘만을 위해 <td>태그들만 살려놨습니다 참고만 해주세요!
(2)ArrayList에 담긴 게시물을 UI에 출력하는 과정
<%
PostDAO postDAO = new PostDAO();
ArrayList<Post> list = postDAO.getList(pageNumber); %>
//아직 게시물이 없을 시 없다고 문자를 띄움
<% if(list.size() == 0){ %>
<td><h4> There are no registered posts.</h4> </td> <% } %>
//존재하는 게시물 불러오기
<% for(int i =0; i < list.size(); i++){ %>
<tr>
<td> //게시물 번호를 가져옴
<p><%= list.get(i).getPostID() %></p>
</td>
<td> //게시글에 텍스트를 누르면 상세보기 화면으로 넘어가는 <a>태그형식으로 게시물 제목을 가져옴
<h6 ><a href="mview.jsp?boardID=4&postID=<%= list.get(i).getPostID()%>"><%= list.get(i).getPostTitle()%></h6>
</td>
<td> //게시물 작성자
<p><%= list.get(i).getUserID()%></p>
</td>
<td> //substring을 활용해 작성날짜를 맞춤
<span ><%= list.get(i).getPostDate().substring(0,11) + list.get(i).getPostDate().substring(11,13)+"시" + list.get(i).getPostDate().substring(14,16)+"분"%></span>
</td>
</tr>
<% } %>
</tbody>
</table>