在JSP页面中实现检索数据的分页显示在页面中,当检索的数据很多时,通常需要分页显示数据,并要实现翻页。 下面将通过一些例程来说明实现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 (药 querymedicine ) 包裹药; 导入 javax.servlet.*; 导入 javax.servlet.http.*; 导入 java.io.*; 导入 java.util.*; 导入 java.sql.*; 导入 Medicine.medicinelist; 导入 Medicine.searchData; //////////////////////////////////////////////////// // 接---mutiquery.jsp页面,并从request中得到5条查询条件 /// // 按条件查询药品,并将结果存进session的“medicinelist”中。 /// // 张乾 2000年3月15日 /// //////////////////////////////////////////////////// 公共的班 querymedicine 扩大 HttpServlet { 私人的 DBConnectionManager connMgr; //初始化全球的变量 公共的空的 init ( ServletConfig 设置)扔 ServletException { super.init(config); connMgr = DBConnectionManager.getInstance(); } //========================处理 HTTP Get 请求============================ 公共的空的 doGet ( HttpServletRequest请求 , HttpServletResponse反应) 陈述 stmt=null; 连接反对= connMgr.getConnection("medicine"); 如果(空的反对==){ response.sendRedirect("/medicine/con_error.html"); 归还; } // ==================== 创建数据库Statement ============================= 试一试{ stmt=con.createStatement(); } 抓住(例外 e ) { connMgr.freeConnection("medicine",con); response.sendRedirect("/medicine/stmt_error.html"); 归还; } //------------------------------------------------------------- long all_count=0;//存满足条件的药品总数 //===================从request中得到session====================== 试一试{ HttpSession会议= request.getSession(false); 如果(空的会议==){ connMgr.freeConnection("medicine",con); response.sendRedirect("/medicine/session_error.html"); 归还; } //----------------------------------------------------------- //======从“下一页”提交来的参数取得前页最后一条数据的药品编码======= 串 ll_pos=request.getParameter("pos"); //---------------------------------------------------------- //=====================查询用的SQL语句串========================== 绳sqlstatment=& quot ;选择 medicines.ypbm, medsmalltypes.zlmc, medsupertypes.clmc, //----------------------------------------------------- 绳 zlbm; 绳 dlbm; 绳 clbm; 绳 zyyx; 绳 ypm; searchData slist=新建 searchData (); 同步(会议){ slist=(searchData)session.getAttribute("searchList"); } if(ll_pos.equals("-1")){ //===表示不是由“下一页”过来要从头开始查数据========== 如果( slist ! =null ){ 同步(会议){ session.removeAttribute("searchList"); } } slist=新建 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 ); 同步(会议){ session.setAttribute (& quot ; searchList & quot ;, slist ); } //--------------------------------------------------------- } //-------------------------------------------------------- 另外 上一篇:JSP数据库连接池的必要性 下一篇:在jsp中作HTTP认证的方法 更多相关文章
|
推荐文章
精彩文章
|