目录
一、准备阶段
二、使用的技术
三、 案例
四、注意事项
一、准备阶段
1、jquery-3.3.1.js
2、JSON需要的jar包:fastjson-1.2.47.jar
3、eclipse
4、将jQuery和jar包全部导入到项目中
二、使用的技术
1、Java
2、MVC模式
3、AJAX
4、jQuery
5、HTML5
6、Oracle
1、Java
2、MVC模式
3、AJAX
4、jQuery
5、HTML5
6、Oracle
三、 案例
1、首先写好基础的数据库辅助类,实体类等等
2、编写分页的方法
@Override
public List getAllByPage(int pageIndex, int pageSize) {
//实例化一个集合
List ls=new ArrayList();
try {
//调用数据库辅助类获得连接
con=DBHelper.getCon();
//定义Oracle的分页代码
String sql="select * from(select a.*,rownum as rid from goods a) b where b.rid between ? and ?";
int a = (pageIndex-1)*pageSize+1;
int b = pageIndex*pageSize;
ps=con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, a);
ps.setInt(2, b);
rs=ps.executeQuery();
while(rs.next()) {
Goods g=new Goods();
g.setGid(rs.getInt(1));
g.setGname(rs.getString(2));
g.setGprice(rs.getInt(3));
g.setGinfo(rs.getString(4));
g.setGpath(rs.getString(5));
ls.add(g);//不要忘记了
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public int getRows(String str) {
int n = 0;
try {
con=DBHelper.getCon();
String sql="select count(*) from "+str;
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()) {
n=rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
@Override
public int getMax(String str, int pageSize) {
int rows = igd.getRows(str);//拿到总行数
int max = rows/pageSize;//求页码
if(rows%pageSize!=0) {//判断是否能够除得尽
max++;
}
return max;
}
3、编写Servlet代码
@WebServlet("/page.do")//在这里配置之后就不需要到web.xml再进行配置映射,但是也要重启服务器
public class PageServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码方式
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html; charset=UTF-8");
//获取out
PrintWriter out=resp.getWriter();
//定义初始页数为1
int pageIndex=1;
//每页显示5条数据
int pageSize=5;
//接收pid
String pid=req.getParameter("pid");
if(pid!=null) {
pageIndex=Integer.parseInt(pid);
}
//调用biz层的分页方法
IGoodsBiz igb=new GoodsBiz();
//商品集合
List ls=igb.getAllByPage(pageIndex, pageSize);
//获取最大页码
int max=igb.getMax("goods", pageSize);
//把集合转为String
String str=JSON.toJSonString(ls);
//把响应输送到客户端
out.print(str+"*"+max);//特殊字符做拼接
out.flush();
out.close();
}
}
4、编写HTML代码(这里没有写分页的表格数据是因为要到jQuery中进行赋值)
首页
上一页
下一页
末页
5、编写jQuery代码(表格中的数据是按照实体类的命名来的)
6、运行测试一下(完美nice)
1、首先写好基础的数据库辅助类,实体类等等
2、编写分页的方法
@Override
public List getAllByPage(int pageIndex, int pageSize) {
//实例化一个集合
List ls=new ArrayList();
try {
//调用数据库辅助类获得连接
con=DBHelper.getCon();
//定义Oracle的分页代码
String sql="select * from(select a.*,rownum as rid from goods a) b where b.rid between ? and ?";
int a = (pageIndex-1)*pageSize+1;
int b = pageIndex*pageSize;
ps=con.prepareStatement(sql);
//给占位符赋值
ps.setInt(1, a);
ps.setInt(2, b);
rs=ps.executeQuery();
while(rs.next()) {
Goods g=new Goods();
g.setGid(rs.getInt(1));
g.setGname(rs.getString(2));
g.setGprice(rs.getInt(3));
g.setGinfo(rs.getString(4));
g.setGpath(rs.getString(5));
ls.add(g);//不要忘记了
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return ls;
}
@Override
public int getRows(String str) {
int n = 0;
try {
con=DBHelper.getCon();
String sql="select count(*) from "+str;
ps=con.prepareStatement(sql);
rs=ps.executeQuery();
if(rs.next()) {
n=rs.getInt(1);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
DBHelper.myClose(con, ps, rs);
}
return n;
}
@Override
public int getMax(String str, int pageSize) {
int rows = igd.getRows(str);//拿到总行数
int max = rows/pageSize;//求页码
if(rows%pageSize!=0) {//判断是否能够除得尽
max++;
}
return max;
}
3、编写Servlet代码
@WebServlet("/page.do")//在这里配置之后就不需要到web.xml再进行配置映射,但是也要重启服务器
public class PageServlet extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//设置编码方式
req.setCharacterEncoding("utf-8");
resp.setContentType("text/html; charset=UTF-8");
//获取out
PrintWriter out=resp.getWriter();
//定义初始页数为1
int pageIndex=1;
//每页显示5条数据
int pageSize=5;
//接收pid
String pid=req.getParameter("pid");
if(pid!=null) {
pageIndex=Integer.parseInt(pid);
}
//调用biz层的分页方法
IGoodsBiz igb=new GoodsBiz();
//商品集合
List ls=igb.getAllByPage(pageIndex, pageSize);
//获取最大页码
int max=igb.getMax("goods", pageSize);
//把集合转为String
String str=JSON.toJSonString(ls);
//把响应输送到客户端
out.print(str+"*"+max);//特殊字符做拼接
out.flush();
out.close();
}
}
4、编写HTML代码(这里没有写分页的表格数据是因为要到jQuery中进行赋值)
首页 上一页 下一页 末页
5、编写jQuery代码(表格中的数据是按照实体类的命名来的)
6、运行测试一下(完美nice)
四、注意事项
一定要保证数据库可以连接
确认Servlet的配置是否成功
jar包一定要导入



