动态网页技术--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>

执行结果

时间: 2024-08-04 03:53:33

动态网页技术--JSP(4)的相关文章

J2EE动态网页技术—JSP

学习JSP,我们需要知道的是什么是JSP?JSP有什么特点?JSP与svelte有什么关系? 第一个概念:JSP是服务器端运行的一种脚本语言,这类似的语言还有CGI.ASP.PHP等.          CGI:采用单进程模式,每次请求服务器端的一个服务,都需要启动一个新的线程.所以当有多个用户同时进行CGI请求的时候,服务器就会打开多个进程,加重了服务器的负担,使服务器的执行效率变得越来越低下. ASP:是微软所开发一种后台脚本语言,特点简单易用,其局限性在于只能在微软的服务器平台上良好运行,

动态网页技术--JSP(7)

一.Ajax 同步传输:一问一答的样式,有发送的请求就返回响应 异步传输:多问多答的样式,不需要刷新整个页面,就可以完成局部数据访问 开发步骤: 1.事件驱动函数 2.如需要在函数中做异步交互,首先创建ajax引擎对象(XMLHttpRequest) 创建ajax引擎对象两种方法: //根据不同浏览器创建AJAX引擎对象 function createXHR(){ var xhr = null; //如果是IE if(window.ActiveXObject){ //alert("IE"

动态网页技术---J

JSP(全称JavaServer Pages)是由Sun Microsystems公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求,而动态生成HTML.XML或其他格式文档的Web网页的技术标准.JSP技术是以Java语言作为脚本语言的,JSP网页为整个服务器端的Java库单元提供了一个接口来服务于HTTP的应用程序. JSP使Java代码和特定的预定义动作可以嵌入到静态页面中.JSP句法增加了被称为JSP动作的XML标签,它们用来调用内建功能.另外,可以创建JSP标签库,然后

用动态网页技术PHP生成验证码图片的源代码

文件a.php <? //checkNum.php session_start(); function random($len) { $srcstr="ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; mt_srand(); $strs=""; for($i=0;$i<$len;$i++){ $strs.=$srcstr[mt_rand(0,35)]; } return strtoupper($strs); } $str=ra

动态网页开发jsp

1.动态网页的优势?    ①交互性:即网页会根据用户的要求和选择而动态改变和显示内容.    ③自动更新:即无需改变页面代码,便会自动生成新的页面内容.    ④随机性:即当不同的时间.不同的人访问一网址时会产生不同的页面效果. 1 2.使用JDBC访问数据库的步骤? 2 解析: 3 // 01.定义驱动字符串 4 Private final static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";

03013_动态页面技术-JSP

1.jsp的出现 2.jsp脚本和注释 (1)jsp脚本 ①<%java代码%> ----- 内部的java代码翻译到service方法的内部: ②<%=java变量或表达式> ----- 会被翻译成service方法内部out.print() : ③<%!java代码%> ---- 会被翻译成servlet的成员的内容. 1 <%@ page language="java" contentType="text/html; chars

使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础

      一:为什么需要动态网页    由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页  ①:动态网页是指在服务器端运行的,使用程序语言设计的交互网页,她们会根据某种条件的变化返回不同的网页内容.  ②动态网页需要使用服务器脚本语言. 三:动态网页的优势: ①        交互性:即网页会根据用户的要求和选择而动态改变和显示内容. ②        自动更新:即无時须改变页面代码,便会自动生成新的页面内容,可以大大节省工作量

使用JSP/Servalet技术开发新闻发布系统------动态网页开发基础

什么是动态网页? 动态网页是指在服务器端运行的程序或者网页,它们会随不同客户.不同时间,返回不同的网页. 动态网页的特点? (1).交互性:即网页会根据用户的要求和选择而动态改变和响应.采用动态网页技术的网站可以实现与用户的交互功能. (2).自动更新:无需手动操作,便会自动生成新的页面,可以节省工作量. (3).随机性:即当不同的时间.不同的人访问同一网址时会产生不同的页面效果. 为什么需要动态网页? 静态网页不能真正与用户实现互动.静态网页的内容是固定的,当修改了网页中的元素的时候,都需要重

动态网页和静态网页的区别

一.从功能方面来说动态网站与静态网站的区别 1. 动态网站可以实现静态网站所实现不了的功能,比方说:聊天室.论坛.音乐播放.浏览器.搜索等:而静态的网站则实现不了.2. 静态网站,如用Frontpage或Dreamweaver开发出来的网站,其源代码是完全公开的,任何浏览者都可以非常轻松地得到其源代码,也就是说,自己设计出来的东西很容易被别人盗用.动态网站,如:ASP开发出来的网站,虽然浏览者也可以看到其源代码,但是那已经是转换过以后的代码,想盗用源代码那是不可能的,因为它的源代码已经放在服务器