• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

servlet/jsp 搞代码 7年前 (2018-06-18) 140次浏览 已收录 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 (药 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+”

http://www.gaodaima.com/41558.html在JSP页面中实现检索数据的分页显示

并且(( 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://&#8221;)或 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=”下页”>

<%}%>

<%

同步(会议){

if(session.getAttribute(“medicinelist”)!=null){

session.removeValue(“medicinelist”);

}

}

%>

</center>

<p align=”center”><input type=”button”value=”返回”name=”B3″>

<br><br><br>

<!–添加底部 –>

<div align=”中心”>

<中心>< IFRAME宽度=760高度=140 NORESIZE SCROLLING=否 FRAMEBORDER=0
MARGINHEIGHT=0MARGINWIDTH=0SRC=& quot ; ../bottom.html”></iframe>

</div>

<!–完成 –>


欢迎大家阅读《在JSP页面中实现检索数据的分页显示》,跪求各位点评,若觉得好的话请收藏本文,by 搞代码


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:在JSP页面中实现检索数据的分页显示

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址