package com.bean; public class Example7_2_Bean { String[] columnName;// 存放列名 String[][] tableRecord = null;// 存放查詢到的記錄 int pageSize = 1; int totalPages = 1; int currentPage = 1; public Example7_2_Bean(){ } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalPages() { return totalPages; } public void setTotalPages(int totalPages) { this.totalPages = totalPages; } public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage) { this.currentPage = currentPage; } public String[] getColumnName() { return columnName; } public void setColumnName(String[] columnName) { this.columnName = columnName; } public String[][] getTableRecord() { return tableRecord; } public void setTableRecord(String[][] tableRecord) { this.tableRecord = tableRecord; } }
package com.servlet; import com.bean.Example7_2_Bean; import java.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class Example7_2_Servlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; Connection con; Statement sql; ResultSet rs = null; @Override public void init(ServletConfig config) throws ServletException { // TODO Auto-generated method stub super.init(config); } public String handleString(String s) { try { byte b[] = s.getBytes("iso-8859-1"); s = new String(b); } catch (Exception ee) { } return s; } @Override public void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub Example7_2_Bean resultBean = null;// 放在外面是為了判斷這個是否為空, try { resultBean = (Example7_2_Bean) req.getAttribute("resultBean"); // 獲取的是bean的對象 if (resultBean == null) {// 對獲取到的javabean對象進行判斷 resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 req.setAttribute("resultBean", resultBean);// } } catch (Exception e) { // TODO: handle exception resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 req.setAttribute("resultBean", resultBean);// } try { Class.forName("com.mysql.jdbc.Driver"); } catch (Exception e) { } String dataBase = req.getParameter("dataBase"); String tableName = req.getParameter("tableName"); String nu = req.getParameter("number"); String na = req.getParameter("name"); String mT = req.getParameter("madeTime"); String pr = req.getParameter("price"); // trim函數用於刪除文本的空格 Float p = Float.parseFloat(pr); String condition = "insert into" + tableName + "values" + "(" + "'" + nu + "','" + na + "','" + mT + "'," + p + ")"; boolean boo = (nu.length() > 0); try { String uri = "jdbc:mysql://127.0.0.1/warehouse?" + "user=root&password=123456&characterEncoding=gb2312"; con = DriverManager.getConnection(uri); sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY); if (boo) sql.executeUpdate(condition); boolean m = rs.next(); if (m == true) { // 調用登入成功的方法: success(req, resp); } else { String backNews = "你輸入的用戶名不存在或密碼不匹配"; // 調用失敗的方法 fail(req, resp, backNews); } con.close(); // boolean m = rs.next(); // if (m == true) { // // 調用登入成功的方法: // success(req, resp, logname, password); // // RequestDispatcher dispatcher = req // .getRequestDispatcher("shanping/showRecord.jsp"); // dispatcher.forward(req, resp); // // } else { // String backNews = "你輸入的用戶名不存在或密碼不匹配"; // // 調用失敗的方法 // fail(req, resp, logname, backNews); // } } catch (SQLException e) { System.out.println(e); fail(req, resp, "添加記錄失敗" + e.toString()); } } public void success(HttpServletRequest req, HttpServletResponse resp) throws SQLException, ServletException, IOException { // TODO Auto-generated method stub Example7_2_Bean resultBean = null;// 放在外面是為了判斷這個是否為空, try { resultBean = (Example7_2_Bean) req.getAttribute("resultBean"); // 獲取的是bean的對象 if (resultBean == null) {// 對獲取到的javabean對象進行判斷 resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 req.setAttribute("resultBean", resultBean);// } } catch (Exception e) { // TODO: handle exception resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 req.setAttribute("resultBean", resultBean);// } rs = sql.executeQuery("select * from product"); ResultSetMetaData metaData = rs.getMetaData(); int columnCount = metaData.getColumnCount();// 得到結果集的列數 String[] columnName = new String[columnCount]; for (int i = 0; i < columnName.length; i++) { columnName[i] = metaData.getColumnName(i + 1);// 獲得列名 } resultBean.setColumnName(columnName);// 更新javabean數據模型 rs.last();// 為BoolEAN類型 int rowNumber = rs.getRow();// 得到記錄數 String[][] tableRecord = resultBean.getTableRecord(); tableRecord = new String[rowNumber][columnCount]; rs.beforeFirst(); int i = 0; while (rs.next()) { for (int k = 0; k < columnCount; k++) { tableRecord[i][k] = rs.getString(k + 1); i++; } resultBean.setTableRecord(tableRecord);// 更新javabean數據模型 con.close(); RequestDispatcher dispatcher = req .getRequestDispatcher("shanping/showRecord.jsp"); dispatcher.forward(req, resp); } } // public void success(HttpServletRequest req, HttpServletResponse resp, // String logname, String password) { // // TODO Auto-generated method stub // // Example7_2_Bean resultBean = null;// 放在外面是為了判斷這個是否為空, // try { // resultBean = (Example7_2_Bean) req.getAttribute("resultBean");// // 獲取的是bean的對象 // if (resultBean == null) {// 對獲取到的javabean對象進行判斷 // resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 // req.setAttribute("resultBean", resultBean);// // } // // } catch (Exception e) { // // TODO: handle exception // resultBean = new Example7_2_Bean();// 若為空則創建javabean對象 // req.setAttribute("resultBean", resultBean);// // } // // // } // } public void fail(HttpServletRequest req, HttpServletResponse resp, String backNews) { // TODO Auto-generated method stub resp.setContentType("text/html;charset=gb2312"); try { PrintWriter out = resp.getWriter(); out.print("<html><body>"); out.print("<h2>" + backNews + "<h2>"); out.print("<a href='example7_2.jsp'>輸入正確信息"); out.print("</html></body>"); } catch (IOException exp) { } } @Override public void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { // TODO Auto-generated method stub doPost(req, resp); } }
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'example7_2.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> 查詢warehouse數據庫product表中 <form action="<%=request.getContextPath()%>/Example7_2_Servlet" method="post"> <br>產品號<input type="text" name="number" > <br>名稱:<input type="text" name="name" > <br>生產日期:<input type="text" name="madeTime" > <br>價格:<input type="text" name="price" > <input type="submit" name="g" value="提交"> </form> </body> </html>
<%@ page language="java" import="java.util.*" pageEncoding="gb2312"%> <jsp:useBean id="resultBean" class="com.bean.Example7_2_Bean" scope="request"></jsp:useBean> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>My JSP 'showRecord.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> <br>當前顯示的內容是: <jsp:setProperty property="pageSize" name="resultBean" param="pageSize"/> <jsp:setProperty property="currentPage" name="resultBean" param="currentPage"/> <table border="1"> <% String[] columnName = resultBean.getColumnName(); if(columnName!=null){ out.print("<tr>"); for(int i=0;i<columnName.length;i++){ out.print("<th>"+columnName[i]+"</th>"); } out.print("<tr>"); } String[][] record = resultBean.getTableRecord(); if(record==null){ out.print("沒有記錄"); return; } int totalRecord = record.length; out.println("全部記錄數" + totalRecord);//全部記錄數 int pageSize = resultBean.getPageSize();//每頁顯示的記錄數 int totalPages = resultBean.getTotalPages(); if (totalRecord % pageSize == 0) totalPages = totalRecord / pageSize;//總頁數 else totalPages = totalRecord / pageSize + 1; resultBean.setPageSize(pageSize); resultBean.setTotalPages(totalPages); if (totalPages >= 1) { if (resultBean.getCurrentPage() < 1) resultBean.setCurrentPage(resultBean.getTotalPages()); if (resultBean.getCurrentPage() > resultBean.getTotalPages()) resultBean.setCurrentPage(1); int index = (resultBean.getCurrentPage() - 1) * pageSize; int start=index;//查詢位置移動到currentPage頁起始位置 for (int i = index; i < pageSize+index; i++) { if(i==totalRecord) break; out.print("<tr>"); for(int j=0;j<columnName.length;j++){ out.print("<td>"+record[i][j]+"</td>");} } out.print("</tr>"); } %> </table> <br>每頁最多顯示<jsp:getProperty property="pageSize" name="resultBean" />條信息 <br>當前顯示第 <font color=blue> <jsp:getProperty property="currentPage" name="resultBean" /> 頁,共有<jsp:getProperty property="totalPages" name="resultBean" /></font>頁。 <table> <tr> <td> <form action="" method="post"> <input type="hidden" name="currentPage" value="<%=resultBean.getCurrentPage() - 1 %>"> <input type="submit" name="g" value="上一頁"> </form> </td> <td><form action="" method="post"> <input type="hidden" name="currentPage" value="<%=resultBean.getCurrentPage() + 1%>"> <input type="submit" name="g" value="下一頁"> </form></td> </tr> <tr> <td><form action="" method="post"> 每頁顯示<input type="text" name="PageSize" value=1 size=3> 條記錄<input type="submit" name="g" value="確定"> </form></td> <td><form action="" method="post"> 輸入頁碼<input type="text" name="currentPage" size=2> <input type="submit" name="g" value="提交"> </form></td> </tr> </table> </body> </html>
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <servlet> <servlet-name>Example7_2_Servlet</servlet-name> <servlet-class>com.servlet.Example7_2_Servlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Example7_2_Servlet</servlet-name> <url-pattern>/Example7_2_Servlet</url-pattern> </servlet-mapping> </web-app>
經過長時間的檢查。發現最終還是代碼有問題,一定要仔細代碼, 從最基礎, 最沒有可能錯誤的地方開始查找錯誤。