(jsp 和 servlet功能篇) jsp+servlet+javaBean 实现分页代码(mysql 数据库)

无情 阅读:644 2021-04-01 10:25:25 评论:0

实例代码:

JavaBean 
 
package Bean; 
//物品类 
public class Goods 
{ 
 private int goodsid;  // 物品编号 
 public String goodsname;   // 物品名称 
 private float price;        // 物品单件 
 
 public void setGoodsid(int goodsid) 
 { 
  this.goodsid = goodsid; 
 } 
 public int getGoodsid() 
 { 
  return goodsid; 
 } 
 // 物品名称 
 public void setGoodsname(String goodsname) 
 { 
  this.goodsname = goodsname; 
 } 
 public String getGoodsname() 
 { 
  return goodsname; 
 } 
 // 物品价格 
 public void setPrice(float price) 
 { 
  this.price = price; 
 } 
 public float getPrice() 
 { 
  return price; 
 } 
} 
 


数据库(单列模式)

单例类 
 
package util; 
 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 
 
public class DbConnection { 
 private static Connection conn=null; 
 private String driver="com.mysql.jdbc.Driver"; 
 private String url="jdbc:mysql://localhost:3306/mydata"; 
 private String user="root"; 
 private String password="1234567"; 
  
 private DbConnection(){ 
  try { 
   Class.forName(driver); 
   conn=DriverManager.getConnection(url, user, password); 
  } catch (ClassNotFoundException e) { 
   e.printStackTrace(); 
  } catch (SQLException e) { 
   e.printStackTrace(); 
  } 
 } 
  
 public static Connection getConnection() { 
  if(conn==null){ 
   new DbConnection(); 
  } 
  return conn; 
 } 
} 
 
 


数据库操作逻辑代码:

数据库访问实现 
 
package DAO; 
 
import java.sql.Connection; 
import java.sql.ResultSet; 
import java.sql.SQLException; 
import java.sql.Statement; 
import java.util.ArrayList; 
 
import Bean.Goods; 
 
import util.DbConnection; 
 
public class Dao { 
 private static Connection conn; 
 private static ResultSet rs; 
 private static Statement stmt; 
 private static int pagesize=5; 
 static{ 
  conn=DbConnection.getConnection(); 
 } 
  
 //通用的查询方法 
 public static ResultSet ExecuteQuery(String sql) { 
  try { 
   stmt=conn.createStatement(); 
   rs=stmt.executeQuery(sql); 
  } catch (SQLException e) { 
   e.printStackTrace(); 
  } 
  return rs; 
 } 
  
 //分页逻辑 
 public static ArrayList<Goods> getGoodsList(int currentpageno){ 
  ArrayList<Goods> GoodsList=new ArrayList<Goods>(); 
  int BeginRecord=(currentpageno-1)*pagesize; 
  int EndRecord=currentpageno*pagesize; 
  rs=ExecuteQuery("select * from goods limit "+BeginRecord+","+EndRecord); 
  try { 
   while(rs.next()){ 
    Goods goods=new Goods(); 
    goods.setGoodsid(rs.getInt(1)); 
    goods.setGoodsname(rs.getString(2)); 
    goods.setPrice(rs.getFloat(3)); 
    GoodsList.add(goods); 
   } 
  } catch (SQLException e) { 
   e.printStackTrace(); 
  } 
  return GoodsList; 
 } 
  
 //统计记录数 
 public static int getPageCount(){ 
  int total=0; 
  int PageCount=0; 
  rs=ExecuteQuery("select count(*) from goods"); 
  try { 
   if(rs.next()){ 
    total=rs.getInt(1); 
    PageCount=(total-1)/pagesize+1; 
   } 
  } catch (SQLException e) { 
   e.printStackTrace(); 
  } 
  return PageCount; 
 } 
} 
 
 


servlet控制器

servlet控制器 
 
package servlet; 
 
import java.io.IOException; 
import java.io.PrintWriter; 
import java.util.ArrayList; 
 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 
 
import Bean.Goods; 
import DAO.Dao; 
 
public class GetLimiteGoods extends HttpServlet { 
 private static final long serialVersionUID = 1L; 
 public void doGet(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
  response.setContentType("text/html"); 
  String pageno= request.getParameter("currentpageno"); 
  int currentpageno=1; 
  if(pageno!=null){ 
   currentpageno=Integer.parseInt(pageno); 
  } 
  ArrayList<Goods> GoodsList=Dao.getGoodsList(currentpageno); 
  request.setAttribute("GoodsList", GoodsList); 
  request.setAttribute("currentpageno", currentpageno); 
  request.setAttribute("PageCount", Dao.getPageCount()); 
  request.getRequestDispatcher("/LimiteGoods.jsp").forward(request, response); 
 } 
 
 public void doPost(HttpServletRequest request, HttpServletResponse response) 
   throws ServletException, IOException { 
           doGet(request,rsponse); 
 } 
} 
 

配置文件

xml配置: 
 
<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
 http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
  <servlet> 
    <description>This is the description of my J2EE component</description> 
    <display-name>This is the display name of my J2EE component</display-name> 
    <servlet-name>GetLimiteGoods</servlet-name> 
    <servlet-class>servlet.GetLimiteGoods</servlet-class> 
  </servlet> 
 
  <servlet-mapping> 
    <servlet-name>GetLimiteGoods</servlet-name> 
    <url-pattern>/servlet/GetLimiteGoods</url-pattern> 
  </servlet-mapping> 
</web-app> 
 


jsp代码:

表现层jsp 
 
<%@ page language="java" contentType="text/html; charset=UTF-8" 
 pageEncoding="UTF-8"%> 
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
 <head> 
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
  <title>Insert title here</title> 
 </head> 
 <body> 
 <center> 
 <c:if test="${currentpageno>=1}"> 
   <a href="GetLimiteGoods?currentpageno=1">首页</a> 
   <a href="GetLimiteGoods?currentpageno=${currentpageno-1}">上一页</a> 
  </c:if> 
  <c:if test="${currentpageno==1}"> 
   <a href="GetLimiteGoods?currentpageno=${currentpageno+1}">下一页</a> 
   <a href="GetLimiteGoods?currentpageno=${PageCount}">尾页</a> 
  </c:if> 
  <table width="80%" border="1" height="56"> 
   <tr align="center"> 
    <td> 
     商品编号 
    </td> 
    <td> 
     商品名称 
    </td> 
    <td> 
     商品价格 
    </td> 
   </tr> 
   <c:forEach var="goods" items="${GoodsList}"> 
    <tr align="center"> 
     <td> 
      ${goods.goodsid} 
     </td> 
     <td> 
      ${goods.goodsname} 
     </td> 
     <td> 
      ${goods.price} 
     </td> 
    </tr> 
   </c:forEach> 
  </table> 
  </center> 
 </body> 
</html> 
 



 

标签:Servlet
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号