JSP分页(不要连接数据库)

JSP分页(不要连接数据库),第1张

<%@ page language="java" import="java.util.*,Pages.bookbean" pageEncoding="gb2312"%>

<%

String path = request.getContextPath()

String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"

%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<base href="<%=basePath%>">

<title>My JSP 'select.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">

<meta http-equiv="description" content="This is my page">

<!--

<link rel="stylesheet" type="text/css" href="styles.css">

-->

</head>

<%@include file="phead.jsp"%>

<center>

<%

request.setCharacterEncoding("gb2312")

Vector v=(Vector)session.getAttribute("vector")

int c=10//每页显示的定单个数

int num=v.size()

int p//当前页面

int pages=num/c+1//总页面

String count=request.getParameter("page")//得到超连接里?后的page值

out.println("<center>")

out.println("<table>")

out.println("<tr><th colspan=2>books Menu</th></tr>")

out.println("<tr><td width='150'></td><td width=300></td></tr>")

if(num==0)

{

out.println("当前还没有商品")

return

}

if(count==null)

{

p=1

}

else

{

p=Integer.parseInt(count)

}

if(p==1)

{

%>

<font size=2>第一页</font>

<font size=2>上一页</font>

<%

}

else

{

%>

<a href="/projecta/Pages/select.jsp?page=1"><font size=2>第一页</font></a>

<a href="/projecta/Pages/select.jsp?page=<%=p-1 %>"><font size=2>上一页</font></a>

<%

}

if(p==pages)

{

%>

<font size=2>下一页</font>

<font size=2>最后页</font>

<%

}

else

{

%>

<a href="/projecta/Pages/select.jsp?page=<%=p+1 %>"><font size=2>下一页</font></a>

<a href="/projecta/Pages/select.jsp?page=<%=pages %>"><font size=2>最后页</font></a>

<%

}

for(int pa=1pa<=pagespa++)

{

if(p==pa)

{

for(int i=(p-1)*10i<p*10i++)

{

if(i<v.size())

{

bookbean bean=(bookbean)v.elementAt(i)

out.println("<tr><td><IMG width=110 height=160 src="+bean.getImg()+"></td><td><font size=2>书名:"+bean.getBookname()+"<br>"

+"类型:"+bean.getType()+"<br>作者:"+bean.getAuthor()+"<br>出版商:"+bean.getPublisher()+"<br>"

+"价格:"+bean.getPrice()+"<br>"

+"<a href=/projecta/page?BID="+bean.getBookID()+">[加入购物车]</a><br></font></td></a></td></tr>")

}

else break

}

out.println("</table>")

out.println("</center>")

}

}

%>

</center>

<%@include file="pfoot.jsp"%>

<body>

</body>

</html>

我写了一个,如果你图片不多想办法照我这个实现吧.不知道看出来没有,这样页面不会刷新.呵呵...这种方式比较友好. 你需要改的地方我写在注释里面. &lt;html&gt; &lt;head&gt; &lt;title&gt;图片翻页&lt;&#47;title&gt; &lt;&#47;head&gt; &lt;script&gt; var i = 0; function changImg(img){ var arrayImg = new Array(); &#47;&#47;这里我写死了图片的地址,你可以把它从数据库里面读出来.通过遍历的方式存放到这个数组arrayImg 里面(不要告诉我不知道怎么把JSP脚本里面的值赋给JS的变量). arrayImg.push(&quot;t11.baidu.com/it/u=2887731175,2975926630&amp;fm=0&amp;gp=24.jpg&quot;); arrayImg.push(&quot;t12.baidu.com/it/u=2954950661,3146389630&amp;fm=0&amp;gp=24.jpg&quot;); &#47;&#47;这里是为了判断图片是不是到了最后一张,如果到了最后一张则返回第一张,相信你能看懂.i是定义的全局变量 if(i &lt; arrayImg.length){img.src = arrayImg[i];i++; }else{i = 0;img.src = &quot;&quot;;&#47;&#47;这里写最开始那张吧.&quot;t12.baidu.com/it/u=2954950661n3146389630&amp;fm=0&amp;gp=24.jpg&quot;这个 }} &lt;&#47;script&gt; &lt;body&gt; &lt;img src=&quot;t12.baidu.com/it/u=2954950661i3146389630&amp;fm=0&amp;gp=24.jpg&quot; onclick=&quot;changImg(this)&quot; &#47;&gt; &lt;&#47;body&gt; &lt;&#47;html&gt;

如果要在jsp页面里实现按你要求分页的话,你可以循环方式这样写

for(int i=初始纪录树i<最大记录数i++){

list.add(从数据库取出的又放进去的ArrayList<对象>)

}

之后在从list里取用循环取出并输出在前台页面。这里的初始记录数为(currentPage-1)*pageSize,这里的最大记录数为currentPage*pageSize。

每次请求都是该页面,而仅仅是***.jsp?currentPage=?这个问号不同而已。

当然不赞成把JAVA代码放在JSP页面,因为它仅仅是用来展示而尽量不要参与逻辑业务。要放在控制层或业务层。比如说去请求servlet。

并且一次取所有数据的分页并不适合当数据量很大的时候。可以使用数据库分页。如mysql 用top,oracle用rownum。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9583261.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存