专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » jsp分页:在JSP页面中实现检索数据的分页显示 »正文

jsp分页:在JSP页面中实现检索数据的分页显示

来源: 发布时间:星期三, 2008年9月10日 浏览:627次 评论:0
下面将通过一些例程来说明实现JSP页面翻页技术的实现。

首先,在JSP中,通过JAVA servlet 来检索数据,而用JSP来调用结果来显示。

因而,此技术可分为两个部分(依赖关系):

1. 在服务器端的servlet 中的实现

要点:
& 将查询条件保存到session中,取session中的查询条件

& 设置Statement对象的MaxRows(确定一页显示多少行数据)

& 顺序地通过执行SQL语句查询数据,按maxRows 来检索一个maxRows的数据,

下一页再检索下一maxRows的数据,以此类推。

2. 在JSP中的显示实现

要点:

& 显示maxRows条数据

& 通过“下一页”按钮或超链再次调用刚才的servlet查询下一maxRows的数据

流程如图所示:

下面通过一个例程来说明(一个servlet程序和一个JSP程序):
l querymedicine. java (Medicine. querymedicine)
package Medicine;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import java.sql.*;
import Medicine.medicinelist;
import Medicine.searchData;
////////////////////////////////////////////////////
// 接---mutiquery.jsp页面,并从request中得到5条查询条件 ///
// 按条件查询药品,并将结果存进session的“medicinelist”中。 ///
// 张乾 2000年3月15日 ///
////////////////////////////////////////////////////
public class querymedicine extends HttpServlet {
private DBConnectionManager connMgr;
//Initialize global variables
public void init(ServletConfig config) throws ServletException {
super.init(config);
connMgr = DBConnectionManager.getInstance();
}

//========================处理 HTTP Get 请求============================
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Statement stmt=null;
Connection con = connMgr.getConnection(\"medicine\");
if (con == null) {
response.sendRedirect(\"/medicine/con_error.html\");
return;
}

// ==================== 创建数据库Statement =============================
try {
stmt=con.createStatement();
}
catch (Exception e)
{
connMgr.freeConnection(\"medicine\",con);
response.sendRedirect(\"/medicine/stmt_error.html\");
return;
}

//-------------------------------------------------------------
long all_count=0; //存满足条件的药品总数

//===================从request中得到session======================
try{
HttpSession session = request.getSession(false);
if (session == null) {
connMgr.freeConnection(\"medicine\",con);
response.sendRedirect(\"/medicine/session_error.html\");
return;
}
//-----------------------------------------------------------

//======从“下一页”提交来的参数取得前页最后一条数据的药品编码=======
String ll_pos=request.getParameter(\"pos\");
//如果pos=-1则表示要从头开始查
//----------------------------------------------------------
//=====================查询用的SQL语句串==========================
String sqlstatment=\"SELECT medicines.ypbm, medsmalltypes.zlmc, medsupertypes.clmc,
medtypes.dlmc, medicines.ypm, medicines.zyyx, medicines.ypzy FROM medicines,
medsmalltypes,medsupertypes,medtypes WHERE medicines.ypbm>\"+ll_pos+\"
and (( medsmalltypes.zlbm = medicines.zlbm ) and ( medsupertypes.clbm = medicines.clbm )
and ( medtypes.dlbm = medicines.dlbm ) and ( ( medicines.del_flag = 0 ) \";
//-----------------------------------------------------
String zlbm;
String dlbm;
String clbm;
String zyyx;
String ypm;
searchData slist=new searchData();
synchronized (session) {
slist=(searchData)session.getAttribute(\"searchList\");
}
if(ll_pos.equals(\"-1\")){

//===表示不是由“下一页”过来要从头开始查数据==========
if(slist!=null){
synchronized (session) {
session.removeAttribute(\"searchList\");
}
}
slist=new searchData();

//=============从设置查询条件页面取得查询条件的参数===================
zlbm=request.getParameter(\"zlbm\");
dlbm=request.getParameter(\"dlbm\");
clbm=request.getParameter(\"clbm\");
zyyx=request.getParameter(\"zyyx\");
ypm=request.getParameter(\"ypm\");
//------------------------------------------------------

//=================将查询条件参数通过Vector存到session中==========
slist.setZlbm (zlbm);
slist.setDlbm (dlbm);
slist.setClbm (clbm);
slist.setZyyx (zyyx);
slist.setYpm (ypm);
synchronized (session) {
session.setAttribute (\"searchList\",slist);
}
//---------------------------------------------------------
}
//--------------------------------------------------------
else
{
//============================取出查询条件参数====================
if(slist!=null){
zlbm=slist.getZlbm();
dlbm=slist.getDlbm();
clbm=slist.getClbm();
zyyx=slist.getZyyx();
ypm=slist.getYpm();
}
else{
if(stmt!=null) stmt.close();
stmt.setMaxRows(0);
connMgr.freeConnection(\"medicine\",con);
response.sendRedirect(\"/medicine/session_error.html\");

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: