zoukankan      html  css  js  c++  java
  • 利用MVC模式简单设计jsp分页效果

    利用Mysql创建一个表Car

    用Eclipse创建一个Dynamic Web Project

    在lib目录下导入Mysql的jar包

    创建如下文件

    package com.bean;
    
    public class Car {
        private String code;
        private String name;
        private String brand;
        private String time;
        private double oil;
        private int powers;
        private int exhaust;
        private double price;
        private String image;
        public String getCode() {
            return code;
        }
        public void setCode(String code) {
            this.code = code;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public String getBrand() {
            return brand;
        }
        public void setBrand(String brand) {
            this.brand = brand;
        }
        public String getTime() {
            return time;
        }
        public void setTime(String time) {
            this.time = time;
        }
        public double getOil() {
            return oil;
        }
        public void setOil(double oil) {
            this.oil = oil;
        }
        public int getPowers() {
            return powers;
        }
        public void setPowers(int powers) {
            this.powers = powers;
        }
        public int getExhaust() {
            return exhaust;
        }
        public void setExhaust(int exhaust) {
            this.exhaust = exhaust;
        }
        public double getPrice() {
            return price;
        }
        public void setPrice(double price) {
            this.price = price;
        }
        public String getImage() {
            return image;
        }
        public void setImage(String image) {
            this.image = image;
        }
        
    }
    package com.dao;
    
    import java.sql.Connection;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    
    import com.bean.Car;
    
    public class CarDao {
        private Connection conn;
        private PreparedStatement stat;
        private ResultSet rs;
        
        //获取总页数
        public int getPageCount(int pageSize) throws Exception{
            conn= DBConnection.getconnection();
            String sql= "select count(*) from car";
            stat=conn.prepareStatement(sql);
            rs= stat.executeQuery();
            rs.next();
            int rowCount = rs.getInt(1);
            int pageCount = (int)Math.ceil((1.0*rowCount/pageSize));
            conn.close();
            return pageCount;
            
        }
        //获取第几页的数据
        public ArrayList<Car> getPageCar(int pageNo,int pageSize){
            ArrayList<Car> list = new ArrayList<Car>();
            try {
                conn=DBConnection.getconnection();
                String sql="select * from car limit ?,?";
                stat=conn.prepareStatement(sql);
                stat.setInt(1, (pageNo-1)*pageSize);
                stat.setInt(2, pageSize);
                rs=stat.executeQuery();
                while(rs.next()){
                    Car c = new Car();
                    c.setCode(rs.getString(1));
                    c.setName(rs.getString(2));
                    c.setBrand(rs.getString(3));
                    c.setTime(rs.getString(4));
                    c.setOil(rs.getDouble(5));
                    c.setPowers(rs.getInt(6));
                    c.setExhaust(rs.getInt(7));
                    c.setPrice(rs.getDouble(8));
                    c.setImage(rs.getString(9));
                    list.add(c);
                }
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            finally{
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
            }
            
            return list;
            
        }
        
        public ArrayList<Car> select(){
            ArrayList<Car> list = new ArrayList<Car>();
            try {
                conn=DBConnection.getconnection();
                String sql= "select * from car";
                stat=conn.prepareStatement(sql);
                rs = stat.executeQuery();
                
                while(rs.next()){
                    Car c = new Car();
                    c.setCode(rs.getString(1));
                    c.setName(rs.getString(2));
                    c.setBrand(rs.getString(3));
                    c.setTime(rs.getString(4));
                    c.setOil(rs.getDouble(5));
                    c.setPowers(rs.getInt(6));
                    c.setExhaust(rs.getInt(7));
                    c.setPrice(rs.getDouble(8));
                    c.setImage(rs.getString(9));
                    list.add(c);
                }
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            finally{
                try {
                    conn.close();
                } catch (SQLException e) {
                    // TODO 自动生成的 catch 块
                    e.printStackTrace();
                }
            }
            
            return list;
            
        }
        public Car select(String key){
            Car c = null;
            try {
                conn= DBConnection.getconnection();
                String sql = "select * from car where code=?";
                stat= conn.prepareStatement(sql);
                stat.setString(1, key);
                rs= stat.executeQuery();
                while(rs.next()){
                     c = new Car();
                     c.setCode(rs.getString(1));
                     c.setName(rs.getString(2));
                     c.setBrand(rs.getString(3));
                     c.setTime(rs.getString(4));
                     c.setOil(rs.getDouble(5));
                     c.setPowers(rs.getInt(6));
                     c.setExhaust(rs.getInt(7));
                     c.setPrice(rs.getDouble(8));
                     c.setImage(rs.getString(9));
                    
                }
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            return c;
            
        }
    }
    package com.dao;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.util.ResourceBundle;
    
    
    
    public class DBConnection {
        public static Connection getconnection() throws Exception{
            String drv = ResourceBundle.getBundle("db").getString("drv");
            String url = ResourceBundle.getBundle("db").getString("url");
            String uid = ResourceBundle.getBundle("db").getString("uid");
            String pwd = ResourceBundle.getBundle("db").getString("pwd");
            
            Class.forName(drv);
            Connection conn = DriverManager.getConnection(url,uid,pwd);
            return conn;
            
        }
    }

    db.properties文件是保护文件,里面要写用户密码。如下:

    drv=com.mysql.jdbc.Driver
    url=jdbc:mysql://127.0.0.1:3306/mydb?characterEncoding=GBK
    uid=root
    pwd=

     com.servlet包下的文件都是servlet类型的

    package com.servlet;
    
    import java.io.IOException;
    import java.util.ArrayList;
    
    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 com.bean.Car;
    import com.dao.CarDao;
    
    /**
     * Servlet implementation class Showservlet
     */
    @WebServlet("/show")
    public class Showservlet extends HttpServlet {
        private static final long serialVersionUID = 1L;
        private final int PAGESIZE =3;
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Showservlet() {
            super();
            // TODO Auto-generated constructor stub
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            //获取数据
            int pageNo = 1;
            String s = request.getParameter("pg");
            if(s !=null){
                pageNo=Integer.parseInt(s);
            }
            //处理数据
            try {
                int pageCount =  new CarDao().getPageCount(PAGESIZE);
                ArrayList<Car> list  = new  CarDao().getPageCar(pageNo, PAGESIZE);
                
                int pagePrev = pageNo>1?pageNo-1:1;
                int pageNext = pageNo<pageCount?pageNo+1:pageCount;
                
                request.setAttribute("pageNow", pageNo);
                request.setAttribute("pagePrev", pagePrev);
                request.setAttribute("pageNext", pageNext);
                request.setAttribute("pageCount", pageCount);
                request.setAttribute("cars",list);
            } catch (Exception e) {
                // TODO 自动生成的 catch 块
                e.printStackTrace();
            }
            //跳转
            request.getRequestDispatcher("index.jsp").forward(request, response);
        }
    
        /**
         * @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);
        }
    
    }

    index.jsp内容如下:

    <%@page import="com.bean.Car"%>
    <%@page import="java.util.ArrayList"%>
    <%@ page language="java" contentType="text/html; charset=utf-8"
        pageEncoding="utf-8"%>
    <!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>
    <script>
    function a(){
        document.getElementById("ff").submit();
    }
    </script>
    </head>
    <body>
    <h1>显示分页</h1>
    <%
    ArrayList<Car> list =(ArrayList<Car>)request.getAttribute("cars");
    for(Car c : list){
    %>
    <div>
    <span style="100px; display:inline-block;"><%=c.getCode() %></span>
    <span style="300px; display:inline-block;"><%=c.getName() %></span>
    <span style="100px; display:inline-block;"><%=c.getOil() %></span>
    </div>
    <%
    }
    %>
    <%--分页内容 --%>
    <a href="show?pg=1">首页</a>
    <a href="show?pg=<%=request.getAttribute("pagePrev") %>">上一页</a>
    <%
    int pageCount = (int)request.getAttribute("pageCount");
    for(int i=1; i<=pageCount;i++){
    %>
    <a href="show?pg=<%=i %>"><%=i %></a>
    <%
    }
    %>
    <a href="show?pg=<%=request.getAttribute("pageNext") %>">下一页</a>
    <a href="show?pg=<%=pageCount%>">末页</a>
    <form id="ff" method="get" action="show">
        <select name="pg" onchange="a()">
        <%
        for(int i=1;i<=pageCount;i++){
            int p = (int)request.getAttribute("pageNow");
            if(p==i){
        %>
            <option value="<%=i %>" selected="selected"><%=i %></option>
        <%
            }
            else{    
        %>    
            <option value="<%=i %>" ><%=i %></option>
        <%
            }
        }
        %>
        </select>
        <%-- <input type="submit" value="GO"/>--%>
    </form>
    </body>
    </html>

    显示如下:

  • 相关阅读:
    高精度计算
    高精度除以低精度
    P1258 小车问题
    POJ 2352 stars (树状数组入门经典!!!)
    HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
    HDU 3938 Portal (离线并查集,此题思路很强!!!,得到所谓的距离很巧妙)
    POJ 1703 Find them, Catch them(确定元素归属集合的并查集)
    HDU Virtual Friends(超级经典的带权并查集)
    HDU 3047 Zjnu Stadium(带权并查集,难想到)
    HDU 3038 How Many Answers Are Wrong(带权并查集,真的很难想到是个并查集!!!)
  • 原文地址:https://www.cnblogs.com/claricre/p/6306911.html
Copyright © 2011-2022 走看看