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>