前面的文章实现了分页显示,现在把分页显示的进行了整合,整合到了一个单独的页面中,加入了按关键字查询,具体实现如下:
用于实现分页和查询的页面文件:
split_page_plugin.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%
int currentPage = 1 ; // 为当前所在的页,默认在第1页
int lineSize = 3 ; // 每次显示的记录数
long allRecorders = 0 ; // 表示全部的记录数
long pageSize = 1 ; // 表示全部的页数(尾页)
int lsData[] = {1,3,5,7,9,10,15,20,25,30,50,100} ;
String keyWord = request.getParameter("kw") ; // 接收查询关键字
String url = request.getParameter("url") ;
%>
<%
try{
currentPage = Integer.parseInt(request.getParameter("cp")) ;
} catch(Exception e) {}
try{
lineSize = Integer.parseInt(request.getParameter("ls")) ;
} catch(Exception e) {}
try{
allRecorders = Long.parseLong(request.getParameter("allRecorders")) ;
} catch(Exception e) {}
if(keyWord == null){
keyWord = "" ; // 如果模糊查询没有关键字,则表示查询全部
}
%>
<%
pageSize = (allRecorders + lineSize -1) / lineSize ;
if(pageSize == 0){
pageSize = 1 ;
}
%>
<script language="javascript">
function go(num){
document.getElementById("cp").value = num ;
document.spform.submit() ; // 表单提交
}
</script>
<form name="spform" action="<%=url%>" method="post">
输入查询关键字:<input type="text" name="kw" value="<%=keyWord%>">
<input type="submit" value="查询"><br>
<input type="button" value="首页" onclick="go(1)" <%=currentPage==1?"DISABLED":""%>>
<input type="button" value="上一页" onclick="go(<%=currentPage-1%>)" <%=currentPage==1?"DISABLED":""%>>
<input type="button" value="下一页" onclick="go(<%=currentPage+1%>)" <%=currentPage==pageSize?"DISABLED":""%>>
<input type="button" value="尾页" onclick="go(<%=pageSize%>)" <%=currentPage==pageSize?"DISABLED":""%>>
跳转到第<select name="selcp" onchange="go(this.value)">
<%
for(int x=1;x<=pageSize;x++){
%>
<option value="<%=x%>" <%=x==currentPage?"SELECTED":""%>><%=x%></option>
<%
}
%>
</select>页
每页显示
<select name="ls" onchange="go(1)">
<%
for(int x=0;x<lsData.length;x++){
%>
<option value="<%=lsData[x]%>" <%=lsData[x]==lineSize?"SELECTED":""%>><%=lsData[x]%></option>
<%
}
%>
</select>
条
<input type="hidden" name="cp" value="1">
</form>
emp_list_true.jsp进行数据库操作和显示的页面文件:
emp_list_true.jsp
<%@ page contentType="text/html" pageEncoding="GBK"%>
<%@ page import="java.sql.*" %>
<html>
<head><title>雇员列表显示</title>
<style type="text/css">
<!--
.STYLE6 {font-size: 12px}
.STYLE10 {font-size: 14px; font-weight: bold; }
-->
</style>
</head>
<script language="javascript">
function changeColor(obj,color){
obj.bgColor = color ;
}
</script>
<body>
<%!
public static final String URL = "emp_list_true.jsp" ;
%>
<%!
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver" ;
public static final String DBURL = "jdbc:oracle:thin:@localhost:1521:ORACLE" ;
public static final String DBUSER = "scott" ;
public static final String DBPASSWORD = "tiger" ;
%>
<%
Connection conn = null ;
PreparedStatement pstmt = null ;
ResultSet rs = null ;
%>
<%
int currentPage = 1 ; // 为当前所在的页,默认在第1页
int lineSize = 3 ; // 每次显示的记录数
int allRecorders = 0 ; // 表示全部的记录数
String keyWord = request.getParameter("kw") ; // 接收查询关键字
%>
<%
try{
currentPage = Integer.parseInt(request.getParameter("cp")) ;
} catch(Exception e) {}
try{
lineSize = Integer.parseInt(request.getParameter("ls")) ;
} catch(Exception e) {}
if(keyWord == null){
keyWord = "" ; // 如果模糊查询没有关键字,则表示查询全部
}
%>
<%
Class.forName(DBDRIVER) ;
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASSWORD) ;
String sql = "SELECT COUNT(empno) FROM emp " +
" WHERE empno LIKE ? OR ename LIKE ? OR job LIKE ? OR TO_CHAR(hiredate,'yyyy-mm-dd') LIKE ? " +
" OR sal LIKE ? OR comm LIKE ? " ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,"%"+keyWord+"%") ;
pstmt.setString(2,"%"+keyWord+"%") ;
pstmt.setString(3,"%"+keyWord+"%") ;
pstmt.setString(4,"%"+keyWord+"%") ;
pstmt.setString(5,"%"+keyWord+"%") ;
pstmt.setString(6,"%"+keyWord+"%") ;
rs = pstmt.executeQuery() ;
if(rs.next()){ // 取得全部的记录数
allRecorders = rs.getInt(1) ;
}
%>
<center>
<h1>雇员列表</h1>
<jsp:include page="split_page_plugin.jsp">
<jsp:param name="allRecorders" value="<%=allRecorders%>"/>
<jsp:param name="url" value="<%=URL%>"/>
</jsp:include>
<%
sql = "SELECT * FROM ( " +
" SELECT empno,ename,job,hiredate,sal,comm,ROWNUM rn " +
" FROM emp WHERE (empno LIKE ? OR ename LIKE ? OR job LIKE ? OR TO_CHAR(hiredate,'yyyy-mm-dd') LIKE ? OR sal LIKE ? OR comm LIKE ?) AND " +
" ROWNUM<=? ORDER BY empno) temp " +
" WHERE temp.rn>? " ;
pstmt = conn.prepareStatement(sql) ;
pstmt.setString(1,"%"+keyWord+"%") ;
pstmt.setString(2,"%"+keyWord+"%") ;
pstmt.setString(3,"%"+keyWord+"%") ;
pstmt.setString(4,"%"+keyWord+"%") ;
pstmt.setString(5,"%"+keyWord+"%") ;
pstmt.setString(6,"%"+keyWord+"%") ;
pstmt.setInt(7,currentPage * lineSize) ;
pstmt.setInt(8,(currentPage-1) * lineSize) ;
rs = pstmt.executeQuery() ;
%>
<TABLE BORDER="1" cellpadding="5" cellspacing="0" bgcolor="F2F2F2" width="80%">
<TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')">
<td align="center" valign="middle"><span class="STYLE10">编号</span></td>
<td align="center" valign="middle"><span class="STYLE10">姓名</span></td>
<td align="center" valign="middle"><span class="STYLE10">职位</span></td>
<td align="center" valign="middle"><span class="STYLE10">雇佣日期</span></td>
<td align="center" valign="middle"><span class="STYLE10">工资</span></td>
<td align="center" valign="middle"><span class="STYLE10">奖金</span></td>
</TR>
<%
int count = 0 ;
while(rs.next()){
count ++ ;
int empno = rs.getInt(1) ;
String ename = rs.getString(2) ;
String job = rs.getString(3) ;
Date hiredate = rs.getDate(4) ;
double sal = rs.getDouble(5) ;
double comm = rs.getDouble(6) ;
%>
<TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')">
<td align="center" valign="middle"><span class="STYLE6"><%=empno%></span></td>
<td align="center" valign="middle"><span class="STYLE6"><%=ename%></span></td>
<td align="center" valign="middle"><span class="STYLE6"><%=job%></span></td>
<td align="center" valign="middle"><span class="STYLE6"><%=hiredate%></span></td>
<td align="center" valign="middle"><span class="STYLE6"><%=sal%></span></td>
<td align="center" valign="middle"><span class="STYLE6"><%=comm%></span></td>
</TR>
<%
}
%>
<%
if(count == 0){ // 没有任何的数据
%>
<TR onMouseOver="changeColor(this,'white')" onMouseOut="changeColor(this,'F2F2F2')">
<td align="center" valign="middle" colspan="6"><span class="STYLE6">没有任何的查询结果!</span></td>
</TR>
<%
}
%>
</table>
<%
conn.close() ;
%>
</center>
</body>
</html>
分享到:
相关推荐
不用框架的分页和查询,用jdbc,service,servlet,jsp
jsp中实现分页技术,分页技术是网页开发中经常遇到的问题。
Jsp中利用JavaBean技术实现分页功能 Jsp中利用JavaBean技术实现分页功能
java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页java实现分页 jsp分页 分页
jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页...
JSP2_0技术手册,关键字等查询.内容全面,电子书,还有简单程序事例
使用jsp实现分页显示 学习靠自己。加油!!!
JSP实现分页显示数据库中的数据 JSP实现分页显示数据库中的数据 JSP实现分页显示数据库中的数据 JSP实现分页显示数据库中的数据
jsp数据库分页查询及显示jsp数据库分页查询及显示jsp数据库分页查询及显示jsp数据库分页查询及显示
JSP分页显示JSP分页显示JSP分页显示JSP分页显示JSP分页显示JSP分页显示JSP分页显示JSP分页显示JSP分页显示
jsp 分页 值得看看jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页jsp 分页
jsp+jstl实现分页,简单的分页
jsp连接数据库实现分页 jsp连接数据库实现分页
JSP 中实现分页显示数据!JSP 中实现分页显示数据!
JSP中分页效果实现步骤 JSP中分页效果实现步骤 JSP中分页效果实现步骤 JSP中分页效果实现步骤
JSP+oracle实现小型多关键字检索模块
JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页JSP实现分页
文件以一个实例的形式完成了jsp链接到sql数据库读取出内容并实现数据分页显示,有详细注释。
jsp中数据库在页面分页的实现 用存储过程实现分页 servlet分页 Oracle分页 MySQL 分页 自带数据库内容
jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页jsp分页