[jsp]代码库
// 从request中获取JSP页面上表单的输入参数
String sql = request.getParameter("querySQL");
int pageIndex = Integer.parseInt((String)request.getParameter("pageIndex"));
int pageSize = Integer.parseInt((String)request.getParameter("pageSize"));
String servleturl = request.getParameter("servleturl");
String errorurl = request.getParameter("errorurl");
try {
// 判断SQL语句是否为查询语句,以放置修改数据库
sql = sql.trim();
if (!sql.toUpperCase().startsWith("SELECT ")){
throw new Exception("输入的SQL语句必须是查询语句!");
}
// 执行查询
ResultSet rs = sm.executeQuery(sql);
// 为了防止数据库连接被关闭时,ResultSet中的数据无法读取的问题
// 在这里将ResultSet转换成CachedRowSet,它存在于内存中,不依赖于数据库。
CachedRowSet crs = new CachedRowSetImpl();
// populate方法把ResultSet中的数据导入到CachedRowSet中
crs.populate(rs);
// 构造能够分页的PageableResultSet对象
PageableResultSet pageResultSet = new PageableResultSetImpl(crs);
// 设置每页的记录数和当前页码
pageResultSet.setPageSize(pageSize);
pageResultSet.gotoPage(pageIndex);
// 将结果放入session中
HttpSession session = request.getSession();
session.setAttribute("pageResultSet", pageResultSet);
// 本Servlet处理完毕,将请求转发给下一页面。
request.getRequestDispatcher(servleturl).forward(request, response);
} catch (Exception e){
// 查询错误时,清除Session的信息
HttpSession session = request.getSession();
session.removeAttribute("pageResultSet");
// 出现异常时,记录异常信息
request.setAttribute("errormsg", e.getMessage());
// 将请求转发给错误页面
request.getRequestDispatcher(errorurl).forward(request, response);
}