- 论坛徽章:
- 0
|
------------------------SplitPage.java(一个Bean,用于分解路径)
package page;
import java.util.*;
public class SplitPage {
//该方法记录浏览过的页面,返回路径值和上一页的id
public String[] analysePage(String currentId, String tempIdPath,
boolean isNext, boolean isPrior){
//该变量记录上一页的id
String priorId = "";
//该变量记录路径值
String idPath = "";
String[] variances = new String[2];
//单击下一页联接的处理代码,增加路径值
if(isNext){
//创建当前路径值
idPath = tempIdPath + currentId + "@@";
//分柝上一页传入path
StringTokenizer paths = new StringTokenizer(tempIdPath, "@@" ;
//取得记录的path的总数
int pathCount = paths.countTokens();
//取得上一页的最前标识
for(int i = 0; i < pathCount; i++){
priorId = paths.nextToken();
}
}else if(isPrior){
//单击上一页的处理代码,减少路径值
//分柝上一页传入path
StringTokenizer paths = new StringTokenizer(tempIdPath, "@@" ;
//取得记录的path的总数减1,减1的意义是删除一个路径值
int pathCount = paths.countTokens() - 1;
//如果只有一个路径值,保持路径值不变
if(pathCount == 0){
idPath = tempIdPath;
}
//进入添加路径循环,删除最后一个路径值
for(int i = 0; i < pathCount; i++){
String temp = paths.nextToken();
//将路径的前2个值作为上一页的最前标识
if(i == (pathCount - 2)){priorId = temp;}
idPath = idPath + temp + "@@";
}
}else{
//直接进入页面的处理代码,取得当前路径值
idPath = currentId + "@@";
//设置上一页的路径值
priorId = String.valueOf(currentId);
}
//第1个值是id
variances[0] = priorId;
//第2个值是路径值
variances[1] = idPath;
return variances;
}
}
--------------------------------------------------------ShowDataByPageUsingBean.jsp(分页显示)
<%@ page contentType="text/html; charset=GBK" %>;
<%@ page import = "java.util.*, java.sql.*"%>;
<html>;
<head>;
<title>;使用JavaBean进行分页浏览数据示例</title>;
</head>;
<body>;
<jsp:useBean id="splitPage" class="page.SplitPage" />;
<center>;
<h3>;使用JavaBean进行分页浏览数据示例</h3>;
<%
//定义每页的显示记录数
int maxRows = 4;
//设置获取参数的编码机制
request.setCharacterEncoding("GBK" ;
int id = 1;
//创建上一页的变量
String priorPage = "";
//创建下一页的变量
String nextPage = "";
//创建记录路径的变量
String path = "";
//初始化id参数
if(request.getParameter("id" !=null){
try{
//将id参数转变为数值
id = Integer.parseInt(request.getParameter("id" );
}catch(Exception ex){
id = 1;
}
}
//取得路径值
String tempPath = (request.getParameter("path" !=null)?request.getParameter("path"
:"";
boolean isNext = (request.getParameter("isNext" != null)?true:false;
boolean isPrior = (request.getParameter("isPrior" != null)?true:false;
//利用JavaBean分解路径值
String[] paths = splitPage.analysePage(String.valueOf(id), tempPath, isNext, isPrior);
//取得上一页的id
priorPage = paths[0];
//取得分解后的路径值
path = paths[1];
//使用jdbc与odbc桥创建数据库联接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver" ;
//使用DriverManager类的getConnection()方法建立联接
Connection conn = DriverManager.getConnection("jdbc dbc:mysqldemo", "", "");
//创建SQL语句执行类
Statement stmt = conn.createStatement();
//设置返回的最大记录数
stmt.setMaxRows(maxRows);
ResultSet rs = stmt.executeQuery("select * from tableDemo1 where id >;= " + id);
//声明保存记录数的变量
int rowCount = 0;
while(rs.next()){
//取得序号
id = rs.getInt("id");
//取得标题值
String title = rs.getString("title");
//取得内容
String content = rs.getString("content");
rowCount++;
%>;
<p>;<%=title%>; - <%=content%>;</p>;
<%
}
//取得下一页码
nextPage = String.valueOf(id + 1);
%>;
<p>;
<a href="ShowDataByPageUsingBean.jsp?id=<%=priorPage%>;&isPrior=true&path=<%=path%>;">;
上一页
</a>;
&&&
<%--判断下一页是否显示--%>;
<%if(rowCount == maxRows){%>;
<a href="ShowDataByPageUsingBean.jsp?id=<%=nextPage%>;&isNext=true&path=<%=path%>;">;
下一页
</a>;
<%}%>;
</p>;
</center>;
</body>;
</html>;
------------------------------------CreateTabledemo1Record.jsp(向数据库添加记录)
<%@ page contentType="text/html; charset=GBK" %>;
<%@ page import = "java.sql.*"%>;
<html>;
<head>;
<title>;创建tabledemo1数据表记录</title>;
</head>;
<body>;
<h3>;为tabledemo1数据表新增100条记录</h3>;
<%
try{
//使用jdbc与odbc桥创建数据库联接
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//使用DriverManager类的getConnection()方法建立联接
Connection conn = DriverManager.getConnection("jdbc dbc:mysqldemo", "", "");
//创建SQL语句执行类
Statement stmt = conn.createStatement();
//创建100条新记录
String sql;
int i = 0;
for(i = 0; i < 100; i++){
sql = "insert into tabledemo1(title, content) values('新记录" + i
+ "', '新内容" + i + "')";
//进行记录插入操作
stmt.executeUpdate(sql);
}
out.println("<p>;成功创建" + i + "条新记录.</p>;");
}catch(Exception ex){
ex.printStackTrace();
}
%>;
</body>;
</html>;
--------------------------------------------------------------------------
//该方法记录浏览过的页面,返回路径值和上一页的id
public String[] analysePage(String currentId, String tempIdPath,
boolean isNext, boolean isPrior)
---------为什么需要路径值,我实在看不懂,请看的懂的人,把SplitPage.java重新注释一下!谢谢了!
特别是:String currentId
String tempIdPath
boolean isNext, boolean isPrior
idPath = tempIdPath + currentId + "@@";
tempIdPath
我觉得文中的变量太多了!看不懂
|
|