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>

    显示如下:

  • 相关阅读:
    GDB查看内存命令(x命令)
    链接装载和库读书笔记 未初始化的全局变量是弱符号
    如何在不动系统中安装的gstreamer的前提下安装一套自己的gstreamer开发环境
    安装gstreamer, gstpluginsbase, gstpluginsgood, gstpluginsugly, gstpluginsbad, gstffmpeg的依赖
    链接装载和库读书笔记 在动态库中尽量少使用全局变量,要使用请加上static
    Ubuntu 10.04 Lucid gstreamer H264 encoder element
    What is MPEG4 Simple Profile Level 0?
    Linux shell常用技巧(一)
    高级嵌套的查询sql语句
    删除重复sql语句|一句话删除重复sql语句
  • 原文地址:https://www.cnblogs.com/claricre/p/6306911.html
Copyright © 2011-2022 走看看