웹 서버 개발 12 페이징 번호
게시글 페이징 번호
- stackoverflow의 페이징 스타일을 참고하였다.
- 현재 페이지에 5개의 게시글을 보여준다.
- 나중에 사용자가 한 페이지에 볼 수 있는 게시글 수를 정할수 있게 할 것이다.
- 완성된 페이징 페이지.
JSP
- 게시글의 베이스가 되는 jsp 파일을 수정하였다.
notice_board.jsp
- servlet 으로 부터 현재 페이지와 마지막 페이지 정보를 받아온다.
- 페이징 번호 리스트 정보를 받아온다.
- 페이징 번호 리스트 정보를 이용하여 페이징 부분을 그려준다.
- 리스트에 들어있는 0은 생략을 의미한다.
- 총 게시글 수 보여주기.
- servlet 으로 부터 받은 총 게시글 수를 보여준다.
- 페이징 번호 스타일.
- 참고
- form 에서 input이 여러개면 엔터를 눌러도 submit 이 안된다.
- 이럴 때는 type이 submit 인 input을 만들어 줘야한다.
Servlet
MainPage.java
- uriSearch 함수의 게시판 부분이다.
- 현재 페이지 정보를 get의 파라미터로 받아온다.
- 즉
url?page=2&q=검색
형태이다. - 페이지 정보를 못 받아오거나 음수면 페이지를 1로 초기화를 진행한다.
- 검색 결과에 해당하는 총 게시글의 수 구하기.
- 한 페이지 보여줄 게시글의 수를 정한다.
- 마지막 페이지를 구해준다.
- 사용자로 부터 받은 페이지 수가 마지막 페이지 보다 크다면 마지막 페이지로 리다이렉트 한다.
- sql문으로 검색을 하기위해서 실제 데이터의 시작 위치를 계산하여 준다.
- 검색 데이터 가져오기.
- 여기서는 5개의 게시글을 가져온다.
- 페이징 번호를 저장하기 위한 리스트를 만들어준다.
- 한번에 몇개의 페이징번호를 보여줄지 정해준다.
- 해당 리스트에 0은 생략을 의미한다.
- 예를들어 현재 페이지가
6
이고 마지막 페이지가10
이면 페이징 형태가 다음과 같다.1 ... 4 5 6 7 8 ... 10
- 페이지를 그리기위하여
mainpage jsp
로 지금까지 만들었던 정보를 넘겨준다.
NoticeBoardDAO.java
- 검색목록을 가져오는 getNoticeList 함수를 수정하였다.
- 모든 목록을 가져오는 것이아닌 정해준 갯수의 게시물 목록만 가지고 온다.
- 게시글의 시작위치와 가져올 갯수를 함수의 인자로 준다.
- sql 쿼리문에 특정 갯수만 출력을 하기위한 구문을 추가한다.
prepared statment
를 이용하였다.
- 검색된 게시판 목록 총 개수 구하기.
댓글남기기