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\"); 3
相关文章
读者评论
发表评论 |