zoukankan      html  css  js  c++  java
  • 动态网页技术--JSP(4)

    分页查询

    1.创建web工程

    2.连接数据库引入jar包 classes12.jar

                                    ojdbc14.jar

       放入lib中

    3.指定一个jsp页面中的一个链接,跳转到一个Servlet上

    4.创建一个Servlet,勾选上doget,dopost方法,Next后,Servlet/JSP Mapping URL:要从根目录跳转,删去前面一部分,留下/PageServlet

    5.web.xml中配置会自动生成

    6.因为要跳转到servlet上,所以index.jsp中a标签href路径是PageServlet

    7.链接默认请求方式是get,只有表单请求方式是post,所以PageServlet在doget中写,dopost中流拼的网页都删了,请求方式改为this.doGet(request,response);

    8.doget中调整字符集

             request.setCharacterEncoding("utf-8");
             response.setContentType("text/html;charset=utf-8");

    9.引入DB类,负责连接关闭数据库(DB中用static修饰,背的类直接引用,不用实例化了)

    10.doget中接着写调用JDBC连接数据库 ResultSet  rs=DB.getCon().createStatement().executeQuery(sql);  (执行完sql返回一个ResultSet值)

          分页查询sql语句:

                int cpage=1;

                String sql="select * from " +
                                "(select t.*, rownum r from " +
                                "(select * from t_client order by client_no) t)" +
                                " where r between "+(cpage*3-2)+" and "+(cpage*3)+"";

    11.循环rs,封装成对象,放入List集合中

       创建实体类Client,提供set,get,构造方法

       声明集合 List<Client>  list=new ArrayList<Client>();

      循环rs取值:

    while(rs.next()){
    String clientNo=rs.getString("client_no");
    String clientName=rs.getString("client_name");
    String sex=rs.getString("sex");
    String birthday=rs.getString("birthday");
    String certificateNO=rs.getString("CERTIFICATE_NO");
    String telNO=rs.getString("tel_no");
    String clientType=rs.getString("client_type");
    String cardNo=rs.getString("card_no");

    每一条记录封装成一个对象

    Client  client=new Client(clientNo, clientName, sex, birthday, certificateNO, telNO, clientType, cardNo);

    循环出来的对象存入集合中

    list.add(client);

    12.list存入作用域中

    request.setAttribute("list", list);

    13.转发跳转页面

    request.getRequestDispatcher("b.jsp").forward(request, response);

    14.创建b.jsp显示页面,在这里取List

         ${requestScope.list }

       循环取出

    <c:forEach items="${requestScope.list }" var="client">
    <tr>
    <td>
    <c:out value="${client.clientNo}"></c:out>
    </td>
    <td>
    <c:out value="${client.clientName}"></c:out>
    </td>
    <td>
    <c:out value="${client.sex}"></c:out>
    </td>
    </tr>
    </c:forEach>

    15.b.jsp上点下一页按钮再跳回PageServlet上

    <a href="PageServlet?cpage=${requestScope.cpage+1 }">下一页</a>

    16.PageServlet上接收,再跳到b.jsp上

    if(request.getParameter("cpage")!=null){
    cpage=Integer.parseInt(request.getParameter("cpage"));
    }       // 因为前面声明首页数  int cpage=1;所以进行判断,不然页码数永远是1

     设置最新的cpage页码数:   request.setAttribute("cpage", Integer.valueOf(cpage)); 

    主页index.jsp

     1 index.jsp主页
     2 
     3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     4 <%
     5 String path = request.getContextPath();
     6 String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
     7 %>
     8 
     9 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    10 <html>
    11   <head>
    12     <base href="<%=basePath%>">
    13     
    14     <title>My JSP 'index.jsp' starting page</title>
    15     <meta http-equiv="pragma" content="no-cache">
    16     <meta http-equiv="cache-control" content="no-cache">
    17     <meta http-equiv="expires" content="0">    
    18     <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    19     <meta http-equiv="description" content="This is my page">
    20     <!--
    21     <link rel="stylesheet" type="text/css" href="styles.css">
    22     -->
    23   </head>
    24   
    25   <body>
    26       <a  href="PageServlet">分页查询</a>
    27   </body>
    28 </html>

    引入DB类连接关闭数据库

     1 DB
     2 
     3 package com.neusoft.db;
     4 
     5 import java.sql.Connection;
     6 import java.sql.DriverManager;
     7 import java.sql.SQLException;
     8 
     9 public class DB {    //负责数据库的连接和关闭
    10     
    11     static   Connection   con;
    12     //连接
    13     
    14     public   static   Connection         getCon(){
    15         try {
    16             Class.forName("oracle.jdbc.driver.OracleDriver");
    17             con = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:XE","lihengyu","lihengyu");
    18             System.out.println("数据库已连接");  
    19             
    20         } catch (ClassNotFoundException e) {
    21             // TODO Auto-generated catch block
    22             e.printStackTrace();
    23         } catch (SQLException e) {
    24             // TODO Auto-generated catch block
    25             e.printStackTrace();
    26         }finally{
    27             
    28             return   con;
    29         }
    30 
    31     }
    32 
    33     //关闭
    34     public   static  void   conClose(){
    35         try {
    36             con.close();  
    37         } catch (SQLException e) {
    38             // TODO Auto-generated catch block
    39             e.printStackTrace();
    40         }
    41         
    42     }
    43 
    44 }

    实体类

     1 实体类
     2 
     3 package com.neusoft.pojo;
     4 
     5 public class Client {  //客户对象  ---对应客户表       对象的属性---表中的字段        一行记录---一个对象
     6     
     7       String  clientNo;
     8       String  clientName;
     9       String  sex;
    10       String  birthday;
    11       String  certificateNO;
    12       String  telNO;
    13       String  clientType;
    14       String  cardNo;
    15       
    16     public String getClientNo() {
    17         return clientNo;
    18     }
    19     public void setClientNo(String clientNo) {
    20         this.clientNo = clientNo;
    21     }
    22     public String getClientName() {
    23         return clientName;
    24     }
    25     public void setClientName(String clientName) {
    26         this.clientName = clientName;
    27     }
    28     public String getSex() {
    29         return sex;
    30     }
    31     public void setSex(String sex) {
    32         this.sex = sex;
    33     }
    34     public String getBirthday() {
    35         return birthday;
    36     }
    37     public void setBirthday(String birthday) {
    38         this.birthday = birthday;
    39     }
    40     public String getCertificateNO() {
    41         return certificateNO;
    42     }
    43     public void setCertificateNO(String certificateNO) {
    44         this.certificateNO = certificateNO;
    45     }
    46     public String getTelNO() {
    47         return telNO;
    48     }
    49     public void setTelNO(String telNO) {
    50         this.telNO = telNO;
    51     }
    52     public String getClientType() {
    53         return clientType;
    54     }
    55     public void setClientType(String clientType) {
    56         this.clientType = clientType;
    57     }
    58     public String getCardNo() {
    59         return cardNo;
    60     }
    61     public void setCardNo(String cardNo) {
    62         this.cardNo = cardNo;
    63     }
    64     public Client() {
    65         
    66     }
    67     public Client(String clientNo, String clientName, String sex,
    68             String birthday, String certificateNO, String telNO,
    69             String clientType, String cardNo) {
    70         
    71         this.clientNo = clientNo;
    72         this.clientName = clientName;
    73         this.sex = sex;
    74         this.birthday = birthday;
    75         this.certificateNO = certificateNO;
    76         this.telNO = telNO;
    77         this.clientType = clientType;
    78         this.cardNo = cardNo;
    79     }
    80       
    81 }

    servlet

     1 servlet
     2 
     3 package com.neusoft.servlet;
     4 
     5 import java.io.IOException;
     6 import java.io.PrintWriter;
     7 import java.sql.ResultSet;
     8 import java.sql.SQLException;
     9 import java.util.ArrayList;
    10 import java.util.List;
    11 
    12 import javax.servlet.ServletException;
    13 import javax.servlet.http.HttpServlet;
    14 import javax.servlet.http.HttpServletRequest;
    15 import javax.servlet.http.HttpServletResponse;
    16 
    17 import com.neusoft.db.DB;
    18 import com.neusoft.pojo.Client;
    19 
    20 public class PageServlet extends HttpServlet {
    21 
    22     
    23     public void doGet(HttpServletRequest request, HttpServletResponse response)
    24             throws ServletException, IOException {
    25         request.setCharacterEncoding("utf-8");
    26         response.setContentType("text/html;charset=utf-8");
    27         
    28         List<Client>  list=new ArrayList<Client>();
    29         //调用JDBC连接数据库
    30         ResultSet  rs;
    31         int  cpage=1;
    32         
    33         if(request.getParameter("cpage")!=null){
    34             cpage=Integer.parseInt(request.getParameter("cpage"));
    35             
    36         }
    37     
    38         String  sql="select * from " +
    39                 "(select t.*, rownum  r  from " +
    40                 "(select * from t_client order by client_no) t)" +
    41                 " where r between "+(cpage*3-2)+" and "+(cpage*3)+"";
    42         
    43         
    44         try {
    45            rs=DB.getCon().createStatement().executeQuery(sql);
    46            while(rs.next()){
    47                String   clientNo=rs.getString("client_no");
    48                 String   clientName=rs.getString("client_name");
    49                 String   sex=rs.getString("sex");
    50                 String   birthday=rs.getString("birthday");
    51                 String   certificateNO=rs.getString("CERTIFICATE_NO");
    52                 String   telNO=rs.getString("tel_no");
    53                 String   clientType=rs.getString("client_type");
    54                 String   cardNo=rs.getString("card_no");
    55                 
    56                 //封装客户对象
    57                 Client  client=new Client(clientNo, clientName, sex, birthday, certificateNO, telNO, clientType, cardNo);
    58                 
    59                 //将客户对象存入集合中
    60                 list.add(client);
    61                
    62            }
    63            
    64               request.setAttribute("list", list);
    65               request.setAttribute("cpage", Integer.valueOf(cpage));   
    66               request.getRequestDispatcher("b.jsp").forward(request, response);
    67            
    68         } catch (SQLException e) {
    69             // TODO Auto-generated catch block
    70             e.printStackTrace();
    71         }
    72         
    73     }
    74 
    75     
    76     public void doPost(HttpServletRequest request, HttpServletResponse response)
    77             throws ServletException, IOException {
    78 
    79              this.doGet(request, response);
    80     }
    81 
    82 }

    显示页面

     1 b.jsp显示页面
     2 
     3 <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
     4 <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
     5 <%
     6     String path = request.getContextPath();
     7     String basePath = request.getScheme() + "://"
     8             + request.getServerName() + ":" + request.getServerPort()
     9             + path + "/";
    10 %>
    11 
    12 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    13 <html>
    14     <head>
    15         <base href="<%=basePath%>">
    16 
    17         <title>My JSP 'b.jsp' starting page</title>
    18 
    19         <meta http-equiv="pragma" content="no-cache">
    20         <meta http-equiv="cache-control" content="no-cache">
    21         <meta http-equiv="expires" content="0">
    22         <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    23         <meta http-equiv="description" content="This is my page">
    24         <!--
    25     <link rel="stylesheet" type="text/css" href="styles.css">
    26     -->
    27 
    28     </head>
    29 
    30     <body>
    31 
    32         <table border="1"  width="800">
    33             <tr>
    34                 <td>
    35                     客户编号
    36                 </td>
    37                 <td>
    38                     客户姓名
    39                 </td>
    40                 <td>
    41                     客户性别
    42                 </td>
    43                 <td>
    44                     生日
    45                 </td>
    46                 <td>
    47                     证书编号
    48                 </td>
    49                 <td>
    50                     电话号
    51                 </td>
    52                 <td>
    53                     类型
    54                 </td>
    55                 <td>
    56                     卡号
    57                 </td>
    58             </tr>
    59             <c:forEach items="${requestScope.list }" var="client">
    60                 <tr>
    61                     <td>
    62                         <c:out value="${client.clientNo}"></c:out>
    63                     </td>
    64                     <td>
    65                         <c:out value="${client.clientName}"></c:out>
    66                     </td>
    67                     <td>
    68                         <c:out value="${client.sex}"></c:out>
    69                     </td>
    70                     <td>
    71                         <c:out value="${client. birthday}"></c:out>
    72                     </td>
    73                     <td>
    74                         <c:out value="${client.certificateNO}"></c:out>
    75                     </td>
    76                     <td>
    77                         <c:out value="${client.telNO}"></c:out>
    78                     </td>
    79                     <td>
    80                         <c:out value="${client.clientType}"></c:out>
    81                     </td>
    82                     <td>
    83                         <c:out value="${client.cardNo}"></c:out>
    84                     </td>
    85                 </tr>
    86             </c:forEach>
    87 
    88         </table>
    89         
    90             <a href="PageServlet?cpage=${requestScope.cpage+1 }">下一页</a>
    91     </body>
    92 </html>

    执行结果

  • 相关阅读:
    用到的一些方法
    Android屏蔽Home键
    Android自定义GridView显示一行,并且可以左右滑动
    模糊匹配字母大小写
    Android四大组件之Content Provider的学习
    用于小数据存储的SharedPreferences
    Android小知识点
    【译】用C/C++操作链表
    和好友的QQ记录,多关注哈需要关怀的人
    岁不待人_20080321
  • 原文地址:https://www.cnblogs.com/Pioneer-HengYu/p/6648874.html
Copyright © 2011-2022 走看看