zoukankan      html  css  js  c++  java
  • 网页分页技术 案例分析

    1.主页

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
     
     <!-- 导入jstl文件 -->   
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <!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>
    
    <!-- 获取上下文环境 -->
    <%
        String path = request.getContextPath();
        
    %>
    
    <!-- 导入jquery包 -->
    <script src="../js/jquery-1.6.1.min.js"></script>
    <!-- 绑定事件 -->
    <script>
        $(function(){
            $(":button").bind("click",function(){
                 location.href="<%=path%>/Myser";
            });
        });
    </script>
    
    <body>
    <div style="margin-left:400px;">
    <!-- 绑定单击事件 -->
    <input type="button"  value="查询"/><br/>
        <table border="1">
            <tr>
                <th>序号</th>
                <th>用户名</th>
                <th>密码</th>
                <th>性别</th>
                <th>生日</th>            
            </tr>
    <!-- 用jstl表达式 循环遍历对象属性 -->
            <c:forEach items="${list }" var="s" varStatus="i"> 
            <tr>
                <td>${i.count }</td>
                <td>${s.getUserName() }</td>
                <td>${s.getPassword() }</td>
                <td>${s.getSex() }</td>
                <td>${s.getDate() }</td>            
            </tr>
            </c:forEach>
    <!-- 底栏分页处理 -->        
            <tr>
                <td colspan="5" align="right">
                    第${page.currentPage}页/共${page.totalPage }页 &nbsp;&nbsp;&nbsp;&nbsp;
                    <c:if test="${page.currentPage>1}">
                        <a href="<%=path %>/Myser?currentP=${page.currentPage-1}">上一页</a>
                    </c:if>    
                    &nbsp;
                    <c:if test="${page.currentPage < page.totalPage }">
                        <a href="<%=path %>/Myser?currentP=${page.currentPage+1}">下一页</a>
                    </c:if>    
                </td>
            </tr>
        </table>
        
        </div>
    </body>
    </html>
    mian.jsp

    2,数据库连接--增删改与查询

    package com.mian;
    
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    
    public class JDBCUtil
    {
        //锟斤拷锟捷匡拷
        private static String driver="com.mysql.jdbc.Driver";
        private static String url="jdbc:mysql://localhost:3306/zhuece";
        private static String user="root";
        private static String password="123456";
        
        static Connection conn;
        static ResultSet set;
        static PreparedStatement ps;
        
        //锟斤拷锟斤拷锟斤拷锟斤拷
        static {
            try
            {
                Class.forName(driver);
            } catch (ClassNotFoundException e)
            {
                e.printStackTrace();
            }
        }
        //锟斤拷锟斤拷锟斤拷
        public static void openC()
        {
            try
            {
                conn=DriverManager.getConnection(url, user, password);
            } catch (SQLException e)
            {
                e.printStackTrace();
            }        
        }
        //锟斤拷删锟侥的凤拷锟斤拷
        public static void up(String sql)
        {
            openC();
            try
            {
                ps=conn.prepareStatement(sql);
                ps.executeUpdate();
                
            } catch (SQLException e)
            {
                close();
                e.printStackTrace();
            }                
        }
        //锟斤拷询锟侥凤拷锟斤拷
        public static ResultSet cha(String sql,Object...args)
        {
            openC();
            try
            {
                ps=conn.prepareStatement(sql);
                if(args!=null)
                {
                    int len=args.length;
                    for(int i=0;i<len;i++)
                    {
                        ps.setObject(i+1,args[i]);
                    }
                }
                set=ps.executeQuery();
            } catch (SQLException e)
            {
                e.printStackTrace();
                close();
                return null;
            }        
            return set;  
        }
        
        public static void close()
        {
            if(set!=null)
            {
                try
                {
                    set.close();
                } catch (SQLException e)
                {
                    e.printStackTrace();
                }finally
                {
                    if(ps!=null)
                    {
                        try
                        {
                            ps.close();
                        } catch (SQLException e)
                        {
                            e.printStackTrace();
                        }finally
                        {
                            if(conn!=null)
                            {
                                try
                                {
                                    conn.close();
                                } catch (SQLException e)
                                {
                                    e.printStackTrace();
                                }
                            }
                        }
                    }
                }
            }
        }
        
        
    }
    JDBCUtil.java


    3.数据库中存的对象

    package com.mian;
    
    public class User
    {
        //属性私有化
        private String userName;
        private String password;
        private String sex;
        private String date;
        private int id;
        
        //空参构造器
        public User()
        {        
        }
        //有参(所有属性)构造器
        public User(String userName, String password, String sex, String date ,int id)
        {
            super();
            this.userName = userName;
            this.password = password;
            this.sex = sex;
            this.date = date;
            this.id=id;
            
        }
        
        //提供公开的set和get方法
        public String getUserName()
        {
            return userName;
        }
        public void setUserName(String userName)
        {
            this.userName = userName;
        }
        public String getPassword()
        {
            return password;
        }
        public void setPassword(String password)
        {
            this.password = password;
        }
        public String getSex()
        {
            return sex;
        }
        public void setSex(String sex)
        {
            this.sex = sex;
        }
        public String getDate()
        {
            return date;
        }
        public void setDate(String date)
        {
            this.date = date;
        }
        public int getId()
        {
            return id;
        }
        public void setId(int id)
        {
            this.id = id;
        }
        
        
            
    }
    User.java

    4.业务逻辑层,封装的增删改与查询的方法

    package com.mian;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import Page.Page;
    
    public class LianJie
    {
    
        public static List<User> find(Page page)
        {
            int current =page.getCurrentPage();
            int pageSize=page.getPageSize();
            
            String sql="select *from zhuce limit "+(current-1)*pageSize+","+pageSize;    
            
            ResultSet set=JDBCUtil.cha(sql);
            
            List<User> list = new ArrayList<User>();
            
            try
            {
                while(set.next())
                {
                    String userNmae=set.getString("username");
                    String password =set.getString("mima");
                    String sex=set.getString("sex");
                    String birth = set .getString("birthday");
                    int id=set.getInt("id");
                    
                    User user = new User(userNmae,password,sex,birth,id);
                    list.add(user);
                }
            } catch (SQLException e)
            {
                e.printStackTrace();
                JDBCUtil.close();
            }
            JDBCUtil.close();
            return list;
        }
        
        public static int getTotal()
        {
            int count =0;
            String sql="select COUNT(1) from zhuce";
            ResultSet set=JDBCUtil.cha(sql);
            try
            {
                while(set.next())
                {
                    count=set.getInt("COUNT(1)");
                }
            } catch (SQLException e)
            {
                e.printStackTrace();
                JDBCUtil.close();
            }
            JDBCUtil.close();
            return count;
        }
    }
    LianJie.java

    5.分页类,仅用于存储页数的数据

    package Page;
    
    public class Page
    {
            //当前页
            private int currentPage;
            //总页数
            private int totalPage;
            //总记录数
            private int totalSize;
            //每页显示的记录数
            private int pageSize;
            
            public int getCurrentPage() {
                return currentPage;
            }
            public void setCurrentPage(int currentPage) {
                this.currentPage = currentPage;
            }
            public int getTotalPage() {
                totalPage = (int)Math.ceil(totalSize/(double)pageSize);
                return totalPage;
            }
            public void setTotalPage(int totalPage) {
                this.totalPage = totalPage;
            }
            public int getTotalSize() {
                return totalSize;
            }
            public void setTotalSize(int totalSize) {
                this.totalSize = totalSize;
            }
            public int getPageSize() {
                return pageSize;
            }
            public void setPageSize(int pageSize) {
                this.pageSize = pageSize;
            }
    }
    Page.java

    6.处理html的服务器

    package myser;
    
    import java.io.IOException;
    import java.util.List;
    
    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 javax.servlet.http.HttpSession;
    
    import org.apache.commons.lang3.StringUtils;
    
    import com.mian.LianJie;
    import com.mian.User;
    
    import Page.Page;
    
    /**
     * Servlet implementation class Myser
     */
    @WebServlet("/Myser")
    public class Myser extends HttpServlet {
        private static final long serialVersionUID = 1L;
        int currentPage=1;
           
        /**
         * @see HttpServlet#HttpServlet()
         */
        public Myser() {
         
        }
    
        /**
         * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            int pageSize=10;
            Page page = new Page();
            int total=LianJie.getTotal();
            page.setTotalSize(total);
            page.setPageSize(pageSize);
            String currentP=request.getParameter("currentP");
            if(StringUtils.isNotBlank(currentP))
            {
                currentPage=Integer.valueOf(currentP);
            }
            page.setCurrentPage(currentPage);
            
            List<User> list=LianJie.find(page);
            HttpSession session = request.getSession();
            session.setAttribute("page", page);
            session.setAttribute("list", list);
            
            request.getRequestDispatcher("/fenye/mian.jsp").forward(request, response);
        }
    
        /**
         * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         */
        protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        }
    
    }
    Myser.java
  • 相关阅读:
    umask
    mysql 错误总结 和FROM_UNIXTIME用法
    php 读取和下载execl
    Yii 2 load() 和 save()
    iframe 模拟ajax文件上传and formdata ajax 文件上传
    angular.js简单入门。
    mysql 慢日志
    mysql 基本操作 alter
    shell cut 用法
    微信支付与支付宝支付
  • 原文地址:https://www.cnblogs.com/waarp/p/7275446.html
Copyright © 2011-2022 走看看