<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ page import="java.sql.*" %> <%@ include file="/common.inc" %> <% // POST 한글 파라미터 깨짐 처리 request.setCharacterEncoding("UTF-8"); // 사용할 객체 초기화 Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; int pageNumTemp = 1; int listCount = 10; int pagePerBlock = 10; String whereSQL = ""; // 파라미터 String pageNum = request.getParameter("pageNum"); String searchType = request.getParameter("searchType"); String searchText = request.getParameter("searchText"); if(main_seq.equals("")&&sub_seq.equals("")){ response.sendRedirect("/"); return; } String contentsSeq = sub_sub_seq.equals("") ? sub_seq : sub_sub_seq; // 파라미터 초기화 if (searchText == null) { searchType = ""; searchText = ""; } if (pageNum != null) { pageNumTemp = Integer.parseInt(pageNum); } // 한글파라미터 처리 String searchTextUTF8 = new String(searchText.getBytes("ISO-8859-1"), "UTF-8"); // 데이터베이스 커넥션 및 질의문 실행 try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection( "jdbc:mysql://127.0.0.1/ys", "srpinfotec", "srpinfotec1@#"); // 게시물의 총 수를 얻는 쿼리 실행 pstmt = conn.prepareStatement("SELECT ADMIN_ONLY FROM MENU WHERE SEQ = ?"); pstmt.setInt(1, Integer.parseInt(contentsSeq)); rs = pstmt.executeQuery(); rs.next(); String isAdminOnly = rs.getString(1); pstmt = conn.prepareStatement("SELECT COUNT(seq) AS TOTAL FROM NOTICE WHERE category=? and delete_yn = 'N' " + whereSQL); if (!whereSQL.equals("")) { if (searchType.equals("ALL")) { pstmt.setString(1, searchTextUTF8); pstmt.setString(2, searchTextUTF8); pstmt.setString(3, searchTextUTF8); } else { pstmt.setString(1, searchTextUTF8); } }else{ pstmt.setString(1,contentsSeq); } rs = pstmt.executeQuery(); rs.next(); int totalCount = rs.getInt("TOTAL"); // 게시물 목록을 얻는 쿼리 실행 pstmt = conn.prepareStatement("SELECT A.*, @row_number:=@row_number-1 as row_number FROM (select COUNT(B.SEQ) as rep_cnt, A.* FROM NOTICE A LEFT JOIN REPLY B ON B.type='notice' and A.seq = B.contents_seq group by A.seq, A.menu_seq, A.reg_user_id, A.title, A.contents, A.fix_yn, A.category, A.write_date, A.cnt, A.file_nm, A.delete_yn, A.update_user_id, A.delete_user_id, A.update_dt, A.delete_dt) A, (SELECT @row_number:="+(totalCount+1)+") AS t where category=? "+whereSQL+" and delete_yn = 'N' ORDER BY seq DESC LIMIT ?, ?"); if (!whereSQL.equals("")) { // 전체검색일시 if (searchType.equals("ALL")) { pstmt.setString(1, searchTextUTF8); pstmt.setString(2, searchTextUTF8); pstmt.setString(3, searchTextUTF8); pstmt.setInt(4, listCount * (pageNumTemp-1)); pstmt.setInt(5, listCount); } else { pstmt.setString(1, searchTextUTF8); pstmt.setInt(2, listCount * (pageNumTemp-1)); pstmt.setInt(3, listCount); } } else { pstmt.setString(1,contentsSeq); pstmt.setInt(2, listCount * (pageNumTemp-1)); pstmt.setInt(3, listCount); } rs = pstmt.executeQuery(); %>  
  <%while(rs.next()){%> <%if(rs.getString("rep_cnt").equals("0")){%> <%}else{%> <%}%> <%}%>
no
TITLE 작성자 작성일
조회
<%=rs.getString("row_number")%>&main_seq=<%=main_seq%>&sub_seq=<%=sub_seq%>&sub_sub_seq=<%=sub_sub_seq%>"><%=rs.getString("title")%>&main_seq=<%=main_seq%>&sub_seq=<%=sub_seq%>&sub_sub_seq=<%=sub_sub_seq%>"><%=rs.getString("title")%><%=" ["+rs.getString("rep_cnt")+"]"%><%=rs.getString("reg_user_id")%> <%=rs.getString("write_date").substring(0,10)%> <%=rs.getString("cnt")%>
<% // 페이지 네비게이터 if(totalCount > 0) { int totalNumOfPage = (totalCount % listCount == 0) ? totalCount / listCount : totalCount / listCount + 1; int totalNumOfBlock = (totalNumOfPage % pagePerBlock == 0) ? totalNumOfPage / pagePerBlock : totalNumOfPage / pagePerBlock + 1; int currentBlock = (pageNumTemp % pagePerBlock == 0) ? pageNumTemp / pagePerBlock : pageNumTemp / pagePerBlock + 1; int startPage = (currentBlock - 1) * pagePerBlock + 1; int endPage = startPage + pagePerBlock - 1; if(endPage > totalNumOfPage) endPage = totalNumOfPage; boolean isNext = false; boolean isPrev = false; if(currentBlock < totalNumOfBlock) isNext = true; if(currentBlock > 1) isPrev = true; if(totalNumOfBlock == 1){ isNext = false; isPrev = false; } StringBuffer sb = new StringBuffer(); sb.append(""); } sb.append(""); out.print(sb.toString()); } %>
"); if(pageNumTemp > 1){ sb.append("<  "); } if (isPrev) { int goPrevPage = startPage - pagePerBlock; sb.append("<<  ").append("|"); } else { } for (int i = startPage; i <= endPage; i++) { if (i == pageNumTemp) { sb.append(" [").append(i).append("]"); } else { sb.append("[").append(i).append("]"); } } if (isNext) { int goNextPage = startPage + pagePerBlock; sb.append("  \">>"); } else { } if(totalNumOfPage > pageNumTemp){ sb.append("  > <%if(isAdminOnly.equals("Y") && session_isadimn.equals("Y")){%> <%}else if(isAdminOnly.equals("N") && session_logintrue.equals("true")){%> <%}%>
  <%@include file="/foot.inc"%> <% } catch (Exception e) { e.printStackTrace(); } finally { if (pstmt != null) pstmt.close(); if (conn != null) conn.close(); if (rs != null) rs.close(); } %>