大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> JSP专区 -> 在JSP页面中实现检索数据的分页显示

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

时间: 2021-07-31 作者:daque

    在页面中,当检索的数据很多时,常常须要分页表露数据,并要实行翻页。

底下将经过少许例程来证明实行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反馈) 扔 servletexception , ioexception {

报告 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"); //即使pos=-1则表白要从新发端查

//----------------------------------------------------------

//=====================查问用的sql语句串==========================

绳sqlstatment=& quot ;采用 medicines.ypbm, medsmalltypes.zlmc, medsupertypes.clmc, medtypes.dlmc, medicines.ypm, medicines.zyyx, medicines.ypzy来自药, medsmalltypes , medsupertypes , medtypes在哪儿 medicines.ypbm>"+ll_pos+" 而且(( medsmalltypes.zlbm = medicines.zlbm )而且( medsupertypes.clbm = medicines.clbm ) 而且( medtypes.dlbm = medicines.dlbm )而且(( medicines.del_flag =0)& quot ;;

//-----------------------------------------------------

绳 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 );

}

//---------------------------------------------------------

}

//--------------------------------------------------------

其余

{

//============================掏出查问前提参数====================

即使( slist ! =null ){

zlbm=slist.getzlbm();

dlbm=slist.getdlbm();

clbm=slist.getclbm();

zyyx=slist.getzyyx();

ypm=slist.getypm();

}

其余{

即使( stmt ! =null ) stmt.close();

stmt.setmaxrows(0);

connmgr.freeconnection("medicine",con);

response.sendredirect("/medicine/session_error.html");

偿还;

}

//-------------------------------------------------

}

绳sql2=& quot ;采用数(*)来自药在哪儿del_flag=0& quot ;;

//=====================按照前提参数树立sql语句=======================

if(!(zlbm.trim().equals("0"))) {

sqlstatment+=(& quot ;而且( medicines.zlbm=''"+zlbm.trim()+"'' )& quot ;);

sql2+=(& quot ;和 zlbm=''"+zlbm.trim()+"''");

}

if(!(dlbm.trim().equals("0"))) {

sqlstatment+=(& quot ;而且( medicines.dlbm=''"+dlbm.trim()+"'' )& quot ;);

sql2+=(& quot ;和 dlbm=''"+dlbm.trim()+"''");

}

if(!(clbm.trim().equals("0"))) {

sqlstatment+=(& quot ;而且( medicines.clbm=''"+clbm.trim()+"'' )& quot ;);

sql2+=(& quot ;和 clbm=''"+clbm.trim()+"''");

}

if(!(zyyx.trim().length ()==0)){

sqlstatment+=(& quot ;而且(象 ''%"+zyyx.trim()+"%''一律的 medicines.zyyx )& quot ;);

sql2+=(象 ''%"+zyyx.trim()+"%''");一律的& quot ;和 zyyx

}

if(!(ypm.trim().length ()==0)){

sqlstatment+=(& quot ;而且(象 ''%"+ypm.trim()+"%''一律的 medicines.ypm )& quot ;);

sql2+=(象 ''%"+ypm.trim()+"%''");一律的& quot ;和 ypm

}

sqlstatment+=& quot ;))由 medicines.ypbm asc & quot ;;的吩咐

//-------------------------------------------------------------

矢量列表 =兴建矢量();

//================= 树立一页表露的数据条数(一次检索出的数据条数)===========

stmt.setmaxrows(25);

//----------------------------------------------------------------------

//===================实行查问将截止放到resultset中================

resultset rs = stmt.executequery(sqlstatment);

resultset rs2= stmt.executequery(sql2);

//------------------------------------------------

if(rs==null){ //即使没有查问截止数据

即使( stmt ! =null ) stmt.close();

stmt.setmaxrows(0);

connmgr.freeconnection("medicine",con);

response.sendredirect("/medicine/no_medicine.html");//定向到一个页面

偿还;

}

//====================将方剂消息填入数据东西共存入vector中================

if(rs2.next()){

all_count=rs2.getlong(1);//博得总条数

}

if(rs2!=null)rs2.close();

while(rs.next()){

medicinelist m =兴建 medicinelist ();

m.setypbm(rs.getint("ypbm"));

m.setzlmc(rs.getstring("zlmc"));

m.setclmc(rs.getstring("clmc"));

m.setdlmc(rs.getstring("dlmc"));

m.setypm(rs.getstring("ypm"));

m.setzyyx(rs.getstring("zyyx"));

m.setypzy(rs.getstring("ypzy"));

m.setclbm(clbm);

m.setdlbm(dlbm);

m.setzlbm(zlbm);

list.addelement(m);

}

//----------------------------------------------------------

if(rs!=null)rs.close();

stmt.setmaxrows(0);

if(stmt!=null)stmt.close();

connmgr.freeconnection("medicine",con);

//========================惠存session中===========================

同步(聚会){

session.setattribute("medicinelist",list);

}

//-----------------------------------------------

}抓住( sqlexception e ){

connmgr.freeconnection("medicine",con);

response.sendredirect("/medicine/sql_error.html");

偿还;}

//=======================重定向到一个jsp页面==========================

串 url="/medicine/querymedicine.jsp?all_count="+all_count;

servletcontext sc = getservletcontext ();

requestdispatcher rd = sc.getrequestdispatcher(url);

rd.forward(request,反馈);

//-------------------------------------------------------

}

大众的空妨害(){

// =================== 在servlet退出时中断数据库贯穿,废除statement东西

即使( connmgr ! =null ) connmgr.release();

//------------------------------------------------------------------------

}

//========================处置http post 乞求 ============================

大众的空的 dopost ( httpservletrequest乞求 , httpservletresponse反馈) 扔 servletexception , ioexception {

doget (乞求 ,反馈);

}

//==========================博得 servlet 消息 ============================

大众的绳 getservletinfo (){

回顾 "medicine.querymedicine消息& quot ;;

}

}

l querymedicine.jsp

<%@页面谈话=& quot ; java & quot ;session=& quot ;如实的& quot ; import="java.util.*, medicine.method, medicine.medicinelist"contenttype="text/html;charset=gbk" %>

<手笔谈话=& quot ; javascript & quot ;>

功效下一条 (){

var ls_pos=document.form2.maxpos.value;

document.location="/servlet/medicine.querymedicine?pos="+ls_pos;

}

功效精细( ypbm ){

document.location="/servlet/medicine.detail?ypbm="+ypbm;

}

</script>

<!--增添头-->

<div align="重心">

<body topmargin="0"leftmargin="10"rightmargin="10” bgcolor="#ffffff"> <div align="重心">

<重心>< iframe宽窄=760莫大=130 noresize scrolling=否 frameborder=0 marginheight=0marginwidth=0src=& quot ; ..\medicinetitle.html"></iframe>

</div>

<!--实行 -->

<title>商品列表</title>

<%

本领 md =兴建本领();

矢量 sklist;

同步(聚会){

sklist =(矢量) session.getattribute("medicinelist");

}

%>

<!----------------------------- 表露表头 -------------------------------->

<%

即使( sklist ==空的或 sklist.size() <=0)

{

response.sendredirect("/medicine/no_medicine.html");

偿还;

}

其余

{%>

<center>您好!以次是商品的列表,公有<font color=#ff0000> <%=request.getparameter("all_count")%></font>条适合前提的方剂消息

</center>

<div align="重心">

<重心>

<台子边境=& quot ;1& quot ;cellpadding=& quot ;0& quot ;cellspacing=& quot ;0& quot ;宽窄=& quot ;840& quot ; bordercolorlight="#ffffff"bordercolordark="#000000">

<tr bgcolor="#339933">

<td width=42 align="center"><font color="#339933"><b>明细</b></font></td>

<td width=160 align="center"><font color="#ffffff"><b>商品称呼</b></font></td>

<td width=52 align="center"><font color="#ffffff"><b>超类</b></font></td>

<td width=145 align="center"><font color="#ffffff"><b>大类</b></font></td>

<td width=145 align="center"><font color="#ffffff"><b>子类</b></font></td>

<td width=270 align="center"><font color="#ffffff"><b>刻画</b></font></td>

</tr>

<!------------------------------------------------------------------------------------------------------------------->

<%

medicinelist d=兴建 medicinelist ();

符合于 ( int索引=0;索引 < sklist.size();index++)

{

d = (medicinelist)sklist.elementat(index);

绳 lshref;

即使 (d.getypzy()==null或 d.getypzy().equals("http://")或 d.getypzy().equals(""))

{

lshref="";

}其余{

lshref=& quot ;<一 href="+d.getypzy()+">";

}

out.println("<form定名=表格1 method=post action=/servlet/medicine.detail?ypbm="+d.getypbm()+">");

out.println("<tr bgcolor=#f3f3e9>< td align=center ><字体 color=#000000巨细=2> <input type=submit name=submit1 value=明细></font></td><td align=center><font color=#000000 size=2>");

out.println(lshref+d.getypm()+"</a></font></td><td align=center ><字体 color=#000000巨细=2>& quot ;);

out.println(d.getclmc()+"</font></td><td align=center ><字体 color=#000000巨细=2>& quot ; +d.getdlmc()+"</font></td><td align=center ><字体 color=#000000巨细=2>& quot ;);

out.println(d.getzlmc()+"</font></td><td align=center ><字体 color=#000000巨细=2>& quot ; +md.notnull(d.getzyyx())+"</font></td></tr></form>");

out.flush();

}

%>

<表格定名=表格2id=表格2>

<输出典型=hidden定名=maxpos id=maxpos value=<%=d.getypbm()%>>

< /表格 >

<%

}

%>

</table>

<p></p>

<%

串 ssll=request.getparameter("all_count");

长的长的 temp=兴建 ( ssll );

长cou= temp.longvalue();

if(sklist.size()==25&&cou>25)

{%>

<input type=button value="下页"onclick="next(1);">

<%}%>

<%

同步(聚会){

if(session.getattribute("medicinelist")!=null){

session.removevalue("medicinelist");

}

}

%>

</center>

<p align="center"><input type="button"value="归来"name="b3"onclick="history.back()">

<br><br><br>

<!--增添底部 -->

<div align="重心">

<重心>< iframe宽窄=760莫大=140 noresize scrolling=否 frameborder=0 marginheight=0marginwidth=0src=& quot ; ..\bottom.html"></iframe>

</div>

<!--实行 -->

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.