jsp 페이지 표시 구현 코드

4291 단어 jsp 페이지
최근 며칠 간 JSP 게시판 디자인 을 하 다가 문제 가 생 겼 다.먼저 캡 처 한 장 보기:
 이것 은 한 뉴스의 댓 글 페이지 에서 마음대로 캡 처 한 그림 입 니 다.만약 에 댓 글 의 수량 이 너무 많 으 면 전체 페이지 가 길 게 배열 되 어야 합 니 다.그러면 사용자 에 게 번 거 롭 고 불편 한 느낌 을 줄 수 있 습 니 다.그래서 이 문 제 를 해결 하려 면 보통 페이지 를 나 누 어 표시 하 는 방법 을 사용 합 니 다.       페이지 디 스 플레이 방식 을 이런 방식 으로 설계 하려 면 보통 이 몇 가지 기본 변 수 를 사용 해 야 한다.pageSize(각 페이지 에 표 시 된 기록 수),pageCount(모두 몇 페이지 가 있 는 지),showPage(현재 몇 페이지 를 표시 하고 있 는 지),recordCount(총 기록 수)는 이해 하기 위해 그림 을 그 렸 다.

페이지 를 이렇게 표시 하려 면 이 그림 에서 페이지 크기=4,페이지 Count=3,쇼 페이지=1,recordCount=12.아 이 디 어 는 그 페이지 를 표시 하려 면 각 페이지 의 첫 번 째 기록 이 모든 기록 중의 몇 번 째 기록 이 라 고 계산 해 야 한 다 는 것 이다.각 페이지 의 첫 번 째 기록 이 전체 기록 중의 첫 번 째 position 조 기록 이 라 고 가정 하면 position=(ShowPage-1)×PageSize+1。예 를 들 어 위의 그림 과 같은 예 를 들 어 첫 페이지 를 표시 하려 면 첫 페이지 의 첫 번 째 기록 이 전체 기록 중의 첫 번 째 기록 임 을 계산 해 야 한다.두 번 째 페이지 를 표시 하려 면 두 번 째 페이지 의 첫 번 째 기록 이 전체 기록 중의 네 번 째 기록 임 을 계산 해 야 한다.세 번 째 페이지 를 표시 하려 면 첫 페이지 의 첫 번 째 기록 이 전체 기록 중의 아홉 번 째 기록 이라는 것 을 계산 해 야 한다.       JSP 의 핵심 코드 는 다음 과 같 습 니 다(사용 하 는 데이터 베 이 스 는 MySQL):

<%!  int pageSize=4;
 int pageCount;
 int showPage;
 %>

<!-- -->
<%
 Connection con;
 Statement sql;
 ResultSet rs;

 try{Class.forName("com.mysql.jdbc.Driver");
 }catch(ClassNotFoundException e){
 }

 try{con=DriverManager.getConnection("jdbc:mysql://localhost:3306/message board","root","123456");
  sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
  //
  rs=sql.executeQuery("select * from messageinfo");
  //
  rs.last();
  //
  int recordCount=rs.getRow();
  //
  pageCount=(recordCount%pageSize==0)?(lastRow/pageSize):(lastRow/pageSize+1);

  // :
  String integer=request.getParameter("showPage");
  if(integer==null){
   integer="1";
  }
  try{showPage=Integer.parseInt(integer);
  }catch(NumberFormatException e){
   showPage=1;
  }
  if(showPage<=1){
   showPage=1;
  }
  if(showPage>=pageCount){
   showPage=pageCount;
  }

  // showPage , position :
  int position=(showPage-1)*pageSize+1;
  //
  rs.absolute(position);
  // for
  for(int i=1;i<=pageSize;i++){  
 %>
   <table>
    <tr>
     <th><%=rs.getString("UserName") %></th>
     <td> :<%=rs.getString("datetime") %></td>
    </tr>
    <tr >
     <th colspan="3"><textarea><%=rs.getString("content") %></textarea></th>
    </tr>
   </table>

 <%  
   rs.next();
  } 
  rs.close();
  con.close();
  }
  catch(Exception e){
  e.printStackTrace();}
 %>
 <br>
  <%=showPage %> ( <%=pageCount %> )
 <br>
 <a href="ShowMessages.jsp?showPage=1"> </a>
 <a href="ShowMessages.jsp?showPage=<%=showPage-1%>"> </a>
<% // pageCount
  for(int i=1;i<=pageCount;i++){
 %>
   <a href="ShowMessages.jsp?showPage=<%=i%>"><%=i%></a>
<% }
 %> 
 <a href="ShowMessages.jsp?showPage=<%=showPage+1%>"> </a>
 <a href="ShowMessages.jsp?showPage=<%=pageCount%>"> </a>
 <!-- -->
 <form action="" method="get">
   <input type="text" name="showPage" size="4">
  <input type="submit" name="submit" value=" ">
 </form> 
실행 결 과 는 다음 과 같 습 니 다.

첫 페이지,이전 페이지,다음 페이지,마지막 페이지 로 이동 할 수 있 습 니 다.숫자 에 페이지 수 를 수 동 으로 지정 할 수도 있 고 입력 상자 에 표시 할 페이지 수 를 입력 할 수도 있 습 니 다.

좋은 웹페이지 즐겨찾기