展会信息港展会大全

servlet分页代码示例 android软件开发教程
来源:互联网   发布日期:2016-03-01 10:41:09   浏览:1474次  

导读:本文介绍了servlet分页代码实现,采用Oracle数据库,获取SCOTT用户EMP表中的数据,分页实现步骤看下面代码1.首先创建一个对象 UserData,用以保存从数据库中获取的数据。...

本文介绍了servlet分页代码实现,采用Oracle数据库,获取SCOTT用户EMP表中的数据,分页实现步骤看下面代码

1.首先创建一个对象 UserData,用以保存从数据库中获取的数据。

代码如下:

package com.tool;

import java.math.BigDecimal;

import java.util.Date;

/**

* Created by lx_sunwei on 14-1-6.

*/

public class UserData {

/**

* EMP表中的数据属性

*/

private String ename;

private String job;

private BigDecimal empno;

private BigDecimal mgr;

private Date hireDate;

private BigDecimal sal;

private BigDecimal comm;

private BigDecimal deptno;

public BigDecimal getEmpno() {

return empno;

}

public void setEmpno(BigDecimal empno) {

this.empno = empno;

}

public BigDecimal getMgr() {

return mgr;

}

public void setMgr(BigDecimal mgr) {

this.mgr = mgr;

}

public Date getHireDate() {

return hireDate;

}

public void setHireDate(Date hireDate) {

this.hireDate = hireDate;

}

public BigDecimal getSal() {

return sal;

}

public void setSal(BigDecimal sal) {

this.sal = sal;

}

public BigDecimal getComm() {

return comm;

}

public void setComm(BigDecimal comm) {

this.comm = comm;

}

public BigDecimal getDeptno() {

return deptno;

}

public void setDeptno(BigDecimal deptno) {

this.deptno = deptno;

}

public String getEname() {

return ename;

}

public void setEname(String ename) {

this.ename = ename;

}

public String getJob() {

return job;

}

public void setJob(String job) {

this.job = job;

}

}

2.创建一个 DBHelper 对象用以与数据库进行交互

代码如下:

package com.dao;

import com.tool.UserData;

import java.math.BigDecimal;

import java.sql.*;

import java.util.*;

import java.util.Date;

/**

* Created by lx_sunwei on 14-1-6.

*/

public class DBHelper {

Connection conn;//数据库连接对象

PreparedStatement pt;//SQL语句预处理对象

ResultSet rs;//结果集对象

publicDBHelper(){

try {

Class.forName("oracle.jdbc.driver.OracleDriver");//装载驱动

} catch (ClassNotFoundException e) {

e.printStackTrace();

}

}

/**

* 获取当前页的数据

* @param curPage

* @param rowsPerPage

* @return

*/

public List<UserData> getData(int curPage, int rowsPerPage) {

List<UserData> dataList = new ArrayList<>();

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

try {

conn = DriverManager.getConnection(url,"scott","tiger");

String sql = "select * from emp where rownum <= ((? - 1) * "+rowsPerPage+" + "+rowsPerPage+") minus " +

" select * from emp where rownum <= (? - 1) * "+rowsPerPage+" ";

pt = conn.prepareStatement(sql);

pt.setInt(1,curPage);

pt.setInt(2,curPage);

rs = pt.executeQuery();

while (rs.next()){

/**

* 从结果集中取得数据

*/

UserData userData = new UserData();

BigDecimal empno = rs.getBigDecimal("empno");

String ename = rs.getString("ename");

String job = rs.getString("job");

BigDecimal mgr = rs.getBigDecimal("mgr");

Date hireDate = rs.getDate("hiredate");

BigDecimal sal = rs.getBigDecimal("sal");

BigDecimal comm = rs.getBigDecimal("comm");

BigDecimal deptno = rs.getBigDecimal("deptno");

/**

* 设置对象属性

*/

userData.setEmpno(empno);

userData.setEname(ename);

userData.setJob(job);

userData.setMgr(mgr);

userData.setHireDate(hireDate);

userData.setSal(sal);

userData.setComm(comm);

userData.setDeptno(deptno);

dataList.add(userData);//把对象添加集合中

}

rs.close();

pt.close();

conn.close();

} catch (SQLException e) {

e.printStackTrace();

}

return dataList;

}

/**

* 返回总页数

* @return

*/

public int getMaxPage(int rowsPerPage) {

int maxPage;

int maxRowCount = 0;

String url = "jdbc:oracle:thin:@localhost:1521:orcl";

try {

conn = DriverManager.getConnection(url,"scott","tiger");//创建数据库连接

String sql = "select count(*) from emp";

pt = conn.prepareStatement(sql);

rs = pt.executeQuery();

if (rs.next()){

maxRowCount = rs.getInt(1);//总行数

}

} catch (SQLException e) {

e.printStackTrace();

}

maxPage = (maxRowCount + rowsPerPage - 1) / rowsPerPage;//总页数

return maxPage;

}

}

3.创建 Servlet 对显示页面进行控制

代码如下:

package com.servlet;

import com.dao.DBHelper;

import com.tool.UserData;

import javax.servlet.RequestDispatcher;

import javax.servlet.ServletException;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import java.io.IOException;

import java.util.*;

/**

* Created by lx_sunwei on 14-1-6.

*/

public class Servlet extends HttpServlet {

public int rowsPerPage;//每页显示的行数

public int curPage;//当前页页码

public int maxPage;//总共页数

DBHelper db = new DBHelper();

public Servlet(){

rowsPerPage = 5;

}

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

String curPage1 = request.getParameter("page");//获取当前页页码

if (curPage1 == null){

curPage = 1;

request.setAttribute("curPage",curPage);//设置curPage对象

}else {

curPage = Integer.parseInt(curPage1);

if (curPage < 1){

curPage = 1;

}

request.setAttribute("curPage",curPage);

}

List<UserData> dataList;

dataList = db.getData(curPage,rowsPerPage);//获取当前页的数据

maxPage = db.getMaxPage(rowsPerPage);//获取总页数

request.setAttribute("dataList",dataList);

request.setAttribute("maxPage", maxPage);

RequestDispatcher rd = request.getRequestDispatcher("pagemain.jsp");//将请求转发到pagemain.jsp页面

rd.forward(request,response);

}

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

doPost(request,response);

}

}

4.创建 JSP 页面,显示数据。

代码如下:

<%@ page import="java.util.List" %>

<%@ page import="com.tool.UserData" %>

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<html>

<head>

<title>servlet数据分页</title>

<link rel="stylesheet" type="text/css" href="css.css">

</head>

<body>

<div style="margin-top: 15%; margin-left: 25%">

<table>

<caption>SCOTT用户,EMP表中的数据</caption>

<%! int curPage,maxPage; %>

<% curPage =Integer.parseInt(request.getAttribute("curPage").toString()); %> <!--取得当前页-->

<% maxPage =Integer.parseInt((String)request.getAttribute("maxPage").toString()); %> <!--取得总页数-->

<%if (request.getAttribute("dataList") == null){

%>

<tr>

<td colspan="8">没有数据</td>

</tr>

<%

}else {

%>

<tr>

<!--表头-->

<th>EMPNO</th>

<th>ENAME</th>

<th>JOB</th>

<th>MGR</th>

<th>HIREDATE</th>

<th>SAL</th>

<th>COMM</th>

<th>DEPTNO</th>

</tr>

<%

List list = (List) request.getAttribute("dataList");

for (Object aList : list) {

UserData userData = (UserData) aList;

%>

<tr>

<!--取得表中数据-->

<td><%= userData.getEmpno() %></td>

<td><%= userData.getEname() %></td>

<td><%= userData.getJob() %></td>

<td><%= userData.getMgr() %></td>

<td><%= userData.getHireDate() %></td>

<td><%= userData.getSal() %></td>

<td><%= userData.getComm() %></td>

<td><%= userData.getDeptno() %></td>

</tr>

<%

}

}

%>

</table>

</div>

<div style="margin-top: 8%; margin-left: 29%">

第<%= curPage %>页,共<%= maxPage %>页

<%if (curPage > 1){

%>

<a href="Servlet?page=1">首页</a>

<a href="Servlet?page=<%=curPage - 1%>">上一页</a>

<%

}else {

%>

首页 上一页

<%

}%>

<%if (curPage < maxPage){

%>

<a href="Servlet?page=<%=curPage + 1%>">下一页</a>

<a href="Servlet?page=<%=maxPage %>">尾页</a>

<%

}else {

%>

下一页 尾页

<%

}%>

转至第 <form name="form1" action="Servlet" method="get">

<label>

<select name="page" onchange="document.form1.submit()">

<%for ( int i = 1; i <= maxPage; i++){

if (i == curPage){

%>

<!--当前页页码默认选中-->

<option selected value="<%= i%>"><%= i %></option>

<%

}else {

%>

<option value="<%= i %>"><%= i %></option>

<%

}

}%>

</select>

</label>

</form> 页

</div>

</body>

</html>

web.xml 中的配置文件为:

代码如下:

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee

http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"

version="3.0">

<servlet>

<servlet-name>Servlet</servlet-name>

<servlet-class>com.servlet.Servlet</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>Servlet</servlet-name>

<url-pattern>/Servlet</url-pattern>

</servlet-mapping>

</web-app>

把项目部署到 Tomcat 服务器上,输入地址:http://localhost:8080/Servlet这样就可以看到效果

赞助本站

人工智能实验室

相关热词: 开发 编程 android

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港