• JSP网站开发基础总结《八》


      JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页。就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一下。

     1、分页数据获取方法:

      获得数据总数:

    public int getSize() {
            int num = 0;
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            conn = DBO.getConnection();
            String sql = "select count(*) from students";
            try {
                st = conn.createStatement();
                rs = st.executeQuery(sql);
                rs.next();
                num=rs.getInt(1);
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return num;
        }

      计算一共分几页:

    public int getPageCnt(int pageRec) {
            int page = 0;
            int size = this.getSize();
            if(size>0){
                page = (size-1)/pageRec+1;
            }
            return page;
        }

      获得在该页需要显示的数据:

    public List<Student> getSome(int pageNo, int pageRec) {
            List<Student> list = new ArrayList<Student>();
            Connection conn = null;
            Statement st = null;
            ResultSet rs = null;
            try {
                conn=DBO.getConnection();
                String sql="select * from students limit ";
                int num = this.getSize()-pageNo*pageRec;
                int a = this.getSize()-(pageNo-1)*pageRec;
                if(num<0){
                    num=0;
                }
                sql+=(num)+","+ a;
                st=conn.createStatement();
                rs=st.executeQuery(sql);
                while(rs.next()){
                    Student stu = new Student();
                    stu.setId(rs.getInt("id"));
                    stu.setName(rs.getString("username"));
                    stu.setSex(rs.getInt("sex"));
                    stu.setYear(rs.getInt("age"));
                    stu.setFrom(rs.getString("form"));
                    stu.setSchool(rs.getString("school"));
                    list.add(stu);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }finally{
                DBO.close(rs, st, conn);
            }
            return list;
        }

     2、实现页面效果代码:

    <%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%>
    <%@page import="com.mysql.jsp.student.Student"%>
    <%@page import="com.mysql.jsp.sever.StudentMaImp"%>
    <%
    String path = request.getContextPath();
    String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
    %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <html>
      <head>
        <base href="<%=basePath%>">
        
        <title>百度分页效果</title>
        
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">    
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
    
      </head>
      
      <body>
      <%
               int pageNo=1;
               if(request.getParameter("p") !=null){
                pageNo=Integer.parseInt(request.getParameter("p"));
            }
               int pageRec=5;//每页显示的数据条数 
               StudentMaImp smi = new StudentMaImp();  
            List<Student> list = smi.getSome(pageNo, pageRec);
            int recCnt=smi.getSize();//得到总记录数
            int pageCnt=smi.getPageCnt(pageRec);//得到总页数
       %>
        <center>
            <h1>百度分页效果</h1>
            <hr/>
            <table border="1" width="80%">
                <TR>
                    <td>编号</td><TD>ID</TD><td>姓名</td><td>性别</td><td>年龄</td><td>家乡</td><td>学校</td>
                </TR>
                <%
                    if(list.size()!=0 && pageNo>1 ){
                        for(int i=list.size()-1,j=1; i>=0; i--,j++){
                            Student student = list.get(i);
                %>
                        <tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
                <%
                        }
                    }else{
                        for(int i=list.size()-1,j=1; i>=0&&list.size()!=0; i--,j++){
                            Student student = list.get(i);
                %>
                        <tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
                 <%
                        }
                     }
                 %>
                 <tr>
                     <td colspan="7" align="center">
                       <% if(pageNo!=1){ %>
                           <a href="All_BaiDu.jsp?p=1"><span>首页</span></a>
                      <%} %>
                      <% if(pageNo>1){ %>
                        <a href="All_BaiDu.jsp?p=<%=pageNo-1 %>"><span>上一页</span></a>
                      <%} %>
                       <%
                           for(int i=1;i<=pageCnt;i++){
                           if(i!=pageNo){
                       %>
                           <a href="All_BaiDu.jsp?p=<%=i %>"><span><%=i%></span></a>
                    <%}else{ %>
                            <span><%=i%></span></a>
                       <%}}%>
                         <% if(pageNo!=pageCnt){ %>
                           <a href="All_BaiDu.jsp?p=<%=pageNo+1 %>"><span>下一页</span></a>
                      <%} %>               
                      <% if(pageNo!=pageCnt){ %>
                        <a href="All_BaiDu.jsp?p=<%=pageCnt %>"><span>尾页</span></a>
                      <%} %>
                     </td>
                 </tr>
            </table>
        </center>
      </body>
    </html>

      效果图:

      

      好了,到这里我们最简单的百度分页效果就实现了,具体的美化工作,就需要我们的css+div+javascript知识了,大家可以学习一下,对做网页帮助很大。


      关于JSP的基础知识总结,到今天就为大家总结完毕,共计8篇博客,由于文字描述的局限,所以大家有什么疑问可以留言,我会一一为大家解答。

      总结了这么多,最后给大家聊几句,学习JSP之前大家尽量先学习一下JAVASE的基础知识,对你理解JSP中的代码帮助很大,当然如果你对网站开发很感兴趣,可以学一下HTML之后再来学习JSP,这样对你了解里面的JSP语句帮助很大。不过有必要说一点的是,JSP开发现在远没有PHP开发那么受关注,PHP开发无须太多的基础,而JSP开发需要有一定的JAVA基础。大家如果没有JAVA基础,建议大家学习PHP,同样可以达到动态网站的开发的目的,而且PHP开发对于微信端开发很方便,所以大家如果对于JSP的学习感觉压力较大,建议大家学习PHP,不过任何一门技术刚刚接触时,都会存在很多的不懂,重要的是坚持,各种技术之间都是相通,当大家真正掌握一门技术后,再去接触别的技术,就会达到事半功倍的效果。

      最后祝各位在程序猿这条路上能找到属于自己的蓝天。

  • 相关阅读:
    c# DateTime 格式化输出字符串
    计算运行时长
    ubuntu helpers
    json.net omit member
    git 本地项目关联新repo
    c# DirectoryEntry LDAPS
    为视图或函数指定的列名比其定义中的列多
    Java反序列化漏洞学习笔记
    流量抓包
    软件安全策略-下
  • 原文地址:https://www.cnblogs.com/AndroidJotting/p/4348282.html
Copyright © 2020-2023  润新知