jsp分页

<table>
	<%
		String s1 = String.valueOf(p1.curPage);
		ArrayList novels = p1.getResult(s1).data;
	%>
	<c:forEach var="one" items="<%=novels%>">
    	<tr>
    		<div id="novel1">
				<td><div class="book-img">
						<a id="bookImg" href="../oneNovelServlet?id=${one.novel_id}"><img src="../images/${one.novel_id}.jpg"></a>
					</div>
				</td>
				<td><div class="book-info">
					<h1 id="h1">
							<a id="book-name" href="../oneNovelServlet?id=${one.novel_id}"> <em>${one.novel_name}</em></a> 
							<a class="writer" target="_blank">${one.author }&nbsp;</a>
						</h1>
						<p class="total" style="margin-top:4px;">
							<button>连载中</button>
							<%
								Novel n1 =(Novel) pageContext.getAttribute("one");
								int n2 = n1.getNovel_type_id();
							%>
							<button><%=new find_novel_name().get_name(n2)%></button>
							<span>${one.count}</span><em>&nbsp;万字</em>
						</p>
						<p class="intro" style="margin-right:14px; 
						font: 12px/18px PingFangSC-Regular,HelveticaNeue-Light,'Helvetica Neue Light','Microsoft YaHei',sans-serif;
						    color: grey;">
							${one.jianjie }
						</p>
					</div>
				</td>
		    </div>
    	</tr>
    </c:forEach>
</table>
	<%
			if (p1.maxPage != 1) {//其余页
		%>
<form name="PageForm" action="../pageServlet" method="post">
		<%
			if (p1.curPage == 1) {
					out.print(" 首页 上一页");
				} else {
		%>
		<div style="display:table; ">
			<br>
			<a HREF="javascript:gotoPage(1)">首页</A> 
			<a HREF="javascript:gotoPage(<%=p1.curPage-1%>)">上一页</A>
			<%
				}
			%>
			<%
				if (p1.curPage == p1.maxPage) {
						out.print("下一页 尾页");
					} else {
			%>
			<a HREF="javascript:gotoPage(<%=p1.curPage+1%>)">下一页</A> <a
				HREF="javascript:gotoPage(<%=p1.maxPage%>)">尾页</A>
			<%
				}
			%>
			转到第 
			<SELECT name="jumpPage" onchange="Jumping()">
				<%
					for (int i = 1; i <= p1.maxPage; i++) {
							if (i == p1.curPage) {
				%>
						<OPTION selected value="<%=i%>"><%=i%></OPTION>
				<%} else {%>
						<OPTION value="<%=i%>"><%=i%></OPTION>
				<%}
							
			    }%>
			</SELECT></div>
					
				<div style="display:table;">
					<br>
					<em >每页<%=p1.rowsPerPage%>&nbsp;&nbsp;</em>
					<em class="iconfont"><%=p1.maxRowCount%>&nbsp;&nbsp;</em>
					<em class="iconfont "><%=p1.curPage%>&nbsp;&nbsp;</em> 
					<em class="iconfont "><%=p1.maxPage%></em>
					<BR>
				</div>
</form>
package Domain;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanListHandler;

import utils.C3p0Utils;

public class PageBean {

	public int curPage = 1; // 当前是第几页
	public int maxPage; // 一共有多少页
	public int maxRowCount; // 一共有多少行
	public int type = -1;// 小说类型
	public ArrayList data;

	public int rowsPerPage = 8; // 每页多少行

	// 得到要显示于本页的数据
	public PageBean getResult(String page) throws Exception {
		try {
			PageBean pageBean = new PageBean();

			int pageNum = Integer.parseInt(page);

			QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
			String strSql;
			List<Novel> list;
			if (type == -1) {
				strSql = "select * from novel limit " + ((pageNum - 1) * 8) + ",8";
				list = (List<Novel>) runner.query(strSql, new BeanListHandler<Novel>(Novel.class));

			} else {
				strSql = "select * from novel where novel_type_id=? limit " + ((pageNum - 1) * 8) + ",8";
				list = (List<Novel>) runner.query(strSql, new BeanListHandler<Novel>(Novel.class),
						new Object[] { type });

			}
			pageBean.curPage = pageNum;
			pageBean.data = (ArrayList) list;

			return pageBean;
		} catch (Exception e) {
			e.printStackTrace();
			throw e;

		}
	}

	// 类型选完后再获得初始化
	public void get_others() throws Exception {
		try {

			QueryRunner runner = new QueryRunner(C3p0Utils.getDataSource());
			String strSql;
			List<Novel> list;
			if (type == -1) {
				strSql = "select * from novel";
				list = (List<Novel>) runner.query(strSql, new BeanListHandler<Novel>(Novel.class));

			} else {
				strSql = "select * from novel where novel_type_id=?";
				list = (List<Novel>) runner.query(strSql, new BeanListHandler<Novel>(Novel.class),
						new Object[] { type });

			}
			maxRowCount = list.size();// 总行数
			setPageBean();// 总页数

		} catch (Exception e) {
			e.printStackTrace();
			throw e;

		}
	}

	// 初始化时对PageBean进行设置
	public void setPageBean() throws Exception {

		if (this.maxRowCount % this.rowsPerPage == 0) { // 根据总行数计算总页数
			this.maxPage = this.maxRowCount / this.rowsPerPage;
		} else {
			this.maxPage = this.maxRowCount / this.rowsPerPage + 1;
		}
	}

}
package Servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import Domain.PageBean;

/**
 * Servlet implementation class pageServlet
 */
@WebServlet("/pageServlet")
public class pageServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	/**
	 * @see HttpServlet#HttpServlet()
	 */
	public pageServlet() {
		super();
		// TODO Auto-generated constructor stub
	}

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		System.out.println("*\n");
		try {
			String pString = request.getParameter("jumpPage");// 跳到此页==当前页
			PageBean page1 = (PageBean) request.getSession().getAttribute("p1");
			page1.curPage = Integer.parseInt(pString);

			request.getSession().setAttribute("p1", page1);// 覆盖掉原来的
		} catch (Exception e) {
			e.printStackTrace();
		}

		/**
		 * 把视图派发到viewForum.jsp
		 */
		response.sendRedirect("Page/fen.jsp");

	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse
	 *      response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
	}

}

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值