今天学了
使用分页显示,每次处理的时候需要知道要访问第几页,还需要知道一共有多少页。
要显示第几页是用户在界面上点击上一页、下一页、第一页、最后一页或者输入第几
页来确定的,所以需要获取。第 1 次访问的时候,不知道显示第几页,默认显示第 1 页。
可以使用下面的代码:
int pageNo = 1; // 设置默认值
// 获取从页面中传递的 第几页 信息
String strPageNo = request.getParameter("pageNo");
if(strPageNo != null)
{
pageNo = Integer.parseInt(strPageNo); // 把字符串转换成数字
}
另外需要把总的页数传递到显示页面,获取的方式和传递的方式与所有用户信息的获
取和传递方式相同。下面是完整的代码:
package bookstore.servlets;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
import bookstore.bean.*;
public class FindAllUserServlet extends HttpServlet{
public void doGet(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
int pageNo = 1;
// 获取从页面中传递的 第几页 信息
String strPageNo = request.getParameter("pageNo");
if(strPageNo != null)
{
pageNo = Integer.parseInt(strPageNo); // 把字符串转换成数字
// 创建模型对象
UserBean user = new UserBean();
try{
// 调用业务方法得到所有用户列表
ArrayList userlist = user.findAllUser();
// 保存到 request 中
request.setAttribute("userlist",userlist);
// 得到总的页数
Integer pageCount = user.getPageCount();
// 把总页数保存到 request 中
request.setAttribute("pageCount",pageCount);
// 把当前页传递过去
request.setAttribute("pageNo",pageNo);
// 转向显示界面
RequestDispatcher rd = request.getRequestDispatcher("userlist.jsp");
rd.forward(request,response);
}catch(Exception e){
// 设置文档类型
response.setContentType("textml;charset=gb2312");
// 获取输出流对象
PrintWriter out = response.getWriter();
// 输出异常信息
out.println(e.toString());
}
}
public void doPost(HttpServletRequest request,HttpServletResponse response)
throws IOException,ServletException
{
doGet(request,response);
}
}