rt,谢谢

解决方案 »

  1.   

    Servlet(Control层)
    package com.sun.news.control;import java.io.IOException;
    import java.io.PrintWriter;import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;import com.sun.news.bo.GetCount;
    import com.sun.news.bo.GetEmpTable;public class EmpServlet extends HttpServlet { public EmpServlet() {
    super();
    } public void destroy() {
    super.destroy(); 
    } public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException { response.setContentType("text/html;charset=GBK");
    PrintWriter out = response.getWriter();


    System.out.println(request.getContextPath());
    System.out.println(request.getServletPath());
    //得到EMP表中数据数量
    GetCount gc = new GetCount();
    int total = gc.getCount();

    int pageNum = 1;
    String page = request.getParameter("page");
    if(page==null || page.equals("")){
    pageNum = 1;
    }else{
    pageNum = Integer.parseInt(page);
    }

    int total_page = 0;
    int pagecount = 4;//每页的条数

    //设置总页数
    if(total%pagecount!=0){
    total_page = total/pagecount+1;
    }else{
    total_page = total/pagecount;
    }

    //该设置防止其溢出
    if(pageNum<=1){
    pageNum = 1;
    }
    if(pageNum>total_page){
    pageNum = total_page;
    }

    request.setAttribute("total_page", total_page);
    request.setAttribute("pageNum", pageNum);

    //设置每页的起始条数
    int start = (pageNum-1)*pagecount+1;

    GetEmpTable get = new GetEmpTable();
    String str = get.getTable(start, pagecount);
    request.setAttribute("tab", str);

    request.getRequestDispatcher("EmpMessage.jsp").forward(request, response);
    } public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    this.doGet(request, response);
    }}
    事务(M层)
    package com.sun.news.bo;import java.sql.ResultSet;import com.sun.news.demo.ConnectOra;public class GetEmpTable {
    ResultSet rs;
    public String getTable(int start,int pagecount){
    StringBuffer sb = new StringBuffer();
    ConnectOra co = new ConnectOra();
    try{
    rs = co.getResultSet(start, pagecount);
    while(rs.next()){
    sb.append("<tr><td>");
    sb.append(rs.getInt("empno"));
    sb.append("</td><td>");
    sb.append(rs.getString("ename"));
    sb.append("</td><td>");
    sb.append(rs.getString("job"));
    sb.append("</td><td>");
    sb.append(rs.getInt("sal"));
    sb.append("</td></tr>");
    }
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    co.closeOra();
    }
    return sb.toString();
    }}package com.sun.news.bo;import java.sql.ResultSet;import com.sun.news.demo.ConnectionO;public class GetCount {

    public int getCount(){
    int count = 0;
    ConnectionO co = new ConnectionO();
    ResultSet rs = co.getResultSet();
    try{
    while(rs.next()){
    String r = rs.getString(1);
    count = Integer.parseInt(r);
    }
    }catch(Exception e){
    e.printStackTrace();
    }finally{
    co.freeResource();
    }
    return count;
    }}
    连接数据库package com.sun.news.demo;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;public class ConnectionO { Connection con; Statement st; ResultSet rs; public Connection getConnection() throws Exception {
    Class.forName(PropertiesFileReader.getProperties("driverClassName"));
    String url = PropertiesFileReader.getProperties("url");
    Connection conn = DriverManager.getConnection(url, PropertiesFileReader
    .getProperties("username"), PropertiesFileReader
    .getProperties("passwd"));
    // System.out.println("dddddddd");
    return conn;
    } public ResultSet getResultSet() {
    try {
    con = this.getConnection();
    st = con.createStatement();
    String sql = "select count(*) from emp";
    rs = st.executeQuery(sql);
    } catch (Exception e) {
    e.printStackTrace();
    }
    return rs;
    } public void freeResource() {
    try {
    if (rs != null) {
    rs.close();
    }
    if (st != null) {
    st.close();
    }
    if (con != null) {
    con.close();
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    }}
    package com.sun.news.demo;import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;public class ConnectOra {
    ResultSet rs;
    Statement st;
    Connection con;

    public Connection getConnection() throws Exception{
    Class.forName(PropertiesFileReader.getProperties("driverClassName"));
    String url = PropertiesFileReader.getProperties("url");
    Connection conn = DriverManager.getConnection(url, PropertiesFileReader
    .getProperties("username"), PropertiesFileReader
    .getProperties("passwd"));
    return conn;
    }

    public ResultSet getResultSet(int start,int pagecount){
    try{
    con = this.getConnection();
    st = con.createStatement();
    String sql = "select * from (select E.*,rownum r from emp E) where r between "+start+" and "+(start+pagecount-1);
    rs = st.executeQuery(sql);
    }catch(Exception e){
    e.printStackTrace();
    }
    return rs;
    }

    public void closeOra(){
    try{
    if(rs!=null){
    rs.close();
    }
    if(st!=null){
    st.close();
    }
    if(con!=null){
    con.close();
    }
    }catch(Exception e){
    e.printStackTrace();
    }
    }}
    package com.sun.news.demo;import java.io.FileInputStream;
    import java.io.InputStream;
    import java.util.Properties;public class PropertiesFileReader {

    static Properties p = new Properties();

    static{
    try {
    InputStream is = new FileInputStream("C:\\Program Files\\Tomcat.5.5.12\\webapps\\maweb18\\WEB-INF\\classes\\dbconfig.properties");
    p.load(is);
    // System.out.println(p.getProperty("username"));
    // System.out.println(p.getProperty("url"));
    // System.out.println(p.getProperty("passwd"));
    // System.out.println(p.getProperty("driverClassName"));
    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    public static String getProperties(String name){
    return p.getProperty(name);
    }

    public static void main(String[] args){
    PropertiesFileReader p = new PropertiesFileReader();
    }}
    JSP页面
    <%@ page language="java" import="java.util.*" pageEncoding="GBK"%><html>
      <head> 
        <title>分页</title>
      </head>
      
      <body>
       <script type="text/javascript">
       function getpage(){
       var page = document.all("page").value;
       location.href="EmpServlet?page="+page;
       }
       </script>
      
        表格分页. <br>
        <table border="1" bordercolor="orange" width="80%" height="50%">
        <tr>
        <td>人员编号</td>
        <td>人员姓名</td>
        <td>人员岗位</td>
        <td>人员工资</td>
        </tr>
        ${tab}
        <tr align="center">
        <td colspan="4">
        共${total_page}页,当前第${pageNum}页
        <a href="EmpServlet?page=1">首页</a>
        <a href="EmpServlet?page=${pageNum-1}"><<</a>
        <a href="EmpServlet?page=${pageNum-1}">上一页</a>
        <a href="EmpServlet?page=${pageNum+1}">下一页</a>
        <a href="EmpServlet?page=${pageNum+1}">>></a>
        <a href="EmpServlet?page=${total_page}">尾页</a>
        GOTO第<input type="text" size="2" name="page" value=${pageNum}>页
        <input type="button" value="GO" onclick="getpage()">
        </td>
        </tr>
        </table>
      </body>
    </html>