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();
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; }
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>