2015-06-14 106 views
-1

該方案的主要功能是寫一個頁面顯示數據庫的內容,並可以實現分頁爲什麼分頁查詢不起作用

當您第一次訪問該頁面可以顯示數據庫的內容,但是,當你點擊下面的鏈接時頁面不能正常顯示數據庫的內容,頁面可以顯示一些標題

這是一個java的web代碼,和我的代碼有什麼問題?

當第一次訪問java web時,它是工作的,但是當我單擊頁面連接時,它只顯示標題並且不顯示數據庫。

package com.zigbee.data; 

import java.io.IOException; 
import java.io.PrintWriter; 
import java.sql.*; 

import javax.servlet.ServletException; 
import javax.servlet.annotation.WebServlet; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

/** 
* Servlet implementation class Data 
*/ 
@WebServlet("/DataInfo") 
public class DataInfo extends HttpServlet { 
private static final long serialVersionUID = 1L; 
/** 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    response.setContentType("text/html; charset=utf-8"); 
    PrintWriter out = response.getWriter(); 

    String Num = request.getParameter("Num"); 
    //out.println("<h1 align=center>基於ZigBee的客車超載管理系統</h1>"); 
    //從數據庫中取出數據,並顯示 
    Connection ct = null; 
    PreparedStatement ps = null; 
    ResultSet rs = null; 

    int pageNow = 1; //當前頁 
    int pageSize = 20; //每頁顯示的記錄 
    int pageCount = 1; //共有多少頁 
    int rowCount = 1; //共有多少記錄 

    //接收提交的pageNow 
    String spageNow = request.getParameter("pageNow"); 
    if(spageNow != null) 
    { 
     pageNow = Integer.parseInt(spageNow); 
    } 

    try { 
     Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
     ct = DriverManager.getConnection 
       ("jdbc:sqlserver://localhost:1433; databaseName=zigbee", "sa", "123456"); 
     //算出共多少頁 
     ps = ct.prepareStatement("select count(*) from data where Num="+Num+""); 
     rs = ps.executeQuery(); 
     rs.next(); 
     rowCount = rs.getInt(1); 

     pageCount = rowCount%pageSize==0 ? rowCount/pageSize : rowCount/pageSize+1; 

     ps = ct.prepareStatement("select top "+pageSize+" * from data where Time not in(select top "+(pageNow-1)*pageSize+" Time from data where Num="+Num+" order by Time desc) and Num="+Num+" order by Time desc"); 
     rs = ps.executeQuery(); 

     out.println("<table align=center width=400px border=2 >"); 
     out.println("<tr align=center><th>時間</th><th>車號</th><th>限載人數</th><th>實載人數</th></tr>"); 

     while(rs.next()) 
     { 
      out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getInt(3)+"</td><td>"+rs.getInt(4)+"</td></tr>"); 
     } 
     out.println("</table>"); 

     for(int i=1; i<=pageCount; i++) 
     { 
      out.println("<a href='/ZigBee/DataInfo?pageNow="+i+"'><"+i+"></a>"); 
     } 

    } catch (Exception e) { 
     // TODO: handle exception 
     e.getStackTrace(); 
    }finally{ 
     try { 
      if(rs != null) 
      { 
       rs.close(); 
      } 
      if(ps != null) 
      { 
       ps.close(); 
      } 
      if(ct != null) 
      { 
       ct.close(); 
      } 

     } catch (SQLException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 
} 

/** 
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
*/ 
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    // TODO Auto-generated method stub 
    this.doGet(request, response); 
} 

}

+1

停止捕獲異常而忽略它。異常消息和堆棧跟蹤會告訴你什麼是錯誤的。 –

+0

看來你不會在你的鏈接中添加Num作爲參數。 DataInfo需要它在我的index.jsp文件中顯示數據 –

+0

Num – Alpace

回答

0

當你點擊頁面的連接,Num是空