一,使用jsp將數據庫內的數據。分頁顯示到頁面
1,創建一個servelt處理后台數據,和數據庫的數據
private static final long serUid=1L; //加載驅動 static final String jdbc="com.mysql.jdbc.Driver"; //要連接的數據庫url static final String db_url="jdbc:mysql://localhost:3306/test"; //數據庫用戶名 static final String user="db"; //數據庫密碼 static final String pass="1743721"; int currentPage=1; public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection conn=null; Statement stmt=null; //顯示的數據的格式 response.setContentType("text/html;charset=UTF-8"); PrintWriter out =response.getWriter(); try { Class.forName(jdbc); conn=DriverManager.getConnection(db_url,user,pass); stmt=conn.createStatement(); String sql=null; sql="select * from t_message where 1=1 order by s_date desc"; int pageSize=5; int d=3; String re=null;
//接收url中的參數 re=request.getQueryString(); //System.out.print(re); if(re!=null){ String[] ee=re.split("="); if("cupg".equals(ee[0])){ re=ee[1]; int r=Integer.valueOf(re).intValue(); d=r; currentPage=r; }else{ re=ee[1]; int bt=Integer.valueOf(re).intValue(); currentPage=bt; if(bt<=3){ d=3; }else{ d=bt; } } } if(currentPage<=0){ d=3; currentPage=1; } int start=(currentPage-1)*pageSize;
//獲取數據進行分頁處理 String limitsql="select * from("+sql+")pp limit "+start+","+pageSize; ResultSet rs=stmt.executeQuery(limitsql); List<User> userlist=new ArrayList<User>(); User user=null; while(rs.next()){
//創建一個對象存入數據 user=new User(); user.setMessage_id(rs.getInt("message_id")); user.setTitle(rs.getString("title")); user.setName(rs.getString("name")); user.setS_date(rs.getString("s_date")); user.setS_des(rs.getString("s_des")); user.setL_des(rs.getString("l_des")); userlist.add(user); } request.setAttribute("nubtn",d); request.setAttribute("cupg", currentPage); request.setAttribute("args", userlist); request.getRequestDispatcher("/qh/message.jsp").forward(request, response); //關閉通道 rs.close(); conn.close(); stmt.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } }
2,在頁面接收並處理得到的數據
<div class="column"> <h1 class="column-tit"><span><a href="#" title="首頁">首頁</a> > <a href="#" title="留言回復">留言回復</a></span>留言回復</h1> <div class="mailbox mt20"> <% ArrayList userlist=(ArrayList)request.getAttribute("args");
//遍歷的到的數據 for(int i=0;i<userlist.size();i++){ User user=(User)userlist.get(i); %> <div class="online-content clearfix"> <div class="icon fl"> <img src="../images/online.png" alt=""> </div> <div class="question fr"> <p>留言主題:<%=user.getTitle()%> </p> <p class="name"><span>網友:<%=user.getName()%></span><span><%=user.getS_date()%></span><span><a target="_blank" href="#">我要留言</a></span></p> <div class="message-i "> <p><strong>留言詳情:</strong><%=user.getS_des()%></p> </div> <div class="answer"> <p><strong>執法監察總隊回復:</strong><%=user.getL_des()%></p> </div> </div> </div> <% } %> <div class="page">
//分頁按鈕的處理 <%int currentPage=(Integer)request.getAttribute("cupg"); int cugg=3; Integer d=0; int nubtn=(Integer)request.getAttribute("nubtn"); if(nubtn>=3)cugg=nubtn; String a=request.getQueryString(); if(a!=null){ String[] ee=a.split("="); a=ee[1]; d=Integer.parseInt(a); } %> <div style="display: none;" id="yc"><%=a%></div> <ul id="mu"><li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=1">首頁</a></li> <li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=<%=currentPage-1%>">上一頁</a></li> <li class="num page-active"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg-2%>"><%=cugg-2%></a></li> <li class="num" style=""><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg-1%>"><%=cugg-1 %></a></li> <li class="num"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg %>"><%=cugg %></a></li> <li class="num" ><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg+1%>"><%=cugg+1%></a></li> <li class="num"><a href="/MysqlTest/servlet/GetMysql?nubtn=<%=cugg+2%>"><%=cugg+2%></a></li> <li class="page-speciall">...</li><li class="num">34</li> <li class="num"><a href="/MysqlTest/servlet/GetMysql?cupg=<%=currentPage+1%>" >下一頁</a></li> <li class="num"><a href=>尾頁</a></li></ul> </div> </div> </div>