package com.messageboard;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
/**
* Servlet implementation class for Servlet: ShowPageservlet1
*
*/
public class PageServlet extends javax.servlet.http.HttpServlet implements
javax.servlet.Servlet {
public PageServlet() {
super();
}
PageNumber pn = new PageNumber();
protected void doGet(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html;charset=gb2312");
request.setCharacterEncoding("gb2312");
HttpSession session = request.getSession();
String tablename = (String) session.getAttribute("notetable");
Integer tablerow = (Integer) session.getAttribute("noterow");
String id=request.getParameter("method");
if(id==null)
{
id=(String) session.getAttribute("modelID");
}
session.setAttribute("modelID", id);
// int tablerow = Integer.parseInt(tr);
if(tablename==null)
{
tablename="note_tb";
tablerow=4;
}
Connection conn = null;
Statement sta = null;
ResultSet rs = null;
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
conn = DriverManager.getConnection("jdbc:odbc:koko", "", "");
} catch (ClassNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if (conn == null) {
try {
// 返回可滚动的结果集
sta = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = sta.executeQuery("select * from " + tablename +" where modelnumber="+id);
// 将游标移到最后一行
rs.last();
// 获得纪录数
int number = rs.getRow();
pn.rowCount = number;// 获得总的行数
// 设置每页显示的纪录数
pn.setShowPage(10);
// 计算总共页熟
pn.setPageCount(pn.rowCount, pn.getPageSize());
} catch (SQLException e) {
e.printStackTrace();
}
} else {
synchronized (conn) {
try {
// 返回可滚动的结果集
sta = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = sta.executeQuery("select * from " + tablename +" where modelnumber="+id);
// 将游标移到最后一行
rs.last();
// 获得纪录熟
int number = rs.getRow();
pn.rowCount = number;// 获得总的行数
pn.setPageSize(10);// 每行显示的纪录数 ?
pn.setPageCount(pn.rowCount, pn.getPageSize());
} catch (SQLException e) {
e.printStackTrace();
}
}
}
String s = request.getParameter("a");
if (s == null) {
s = "1";
}
List<String> list = new ArrayList<String>();
if (s.equals("next")) {
int n = pn.getShowPage();
n = (n + 1);
if (n >pn.getPageCount()) {
n = pn.getPageCount();
}
pn.setShowPage(n);
// 将游标移到指定位置
try {
rs.absolute((n-1) * (pn.getPageSize()) + 1);
// 显示该页内容
for (int i = 1; i <= pn.getPageSize(); i++) {
for (int j = 1; j <= tablerow; j++) {
list.add(rs.getString(j));
}
rs.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
} else if (s.equals("previous")) {
int n = pn.getShowPage();
n = (n - 1);
if (n <=0) {
n =1;
}
pn.setShowPage(n);
// 将游标移到指定位置
try {
rs.absolute((n-1) * pn.getPageSize() + 1);
// 显示该页内容
for (int i = 1; i <=pn.getPageSize(); i++) {
for (int j = 1; j <=tablerow; j++) {
list.add(rs.getString(j));
}
rs.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
} else {
int m = Integer.parseInt(s);
pn.setShowPage(m);
int n = pn.getShowPage();
try {
rs.absolute((n - 1) * pn.getPageSize() + 1);
// 显示该页内容
for (int i = 1; i <= pn.getPageSize(); i++) {
for (int j = 1; j <= tablerow; j++) {
list.add(rs.getString(j));
}
rs.next();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
session.setAttribute("list2", list);
response.sendRedirect("page.jsp");
}
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
this.doGet(request, response);
}
}
评论0