JSP网站开发基础总结《八》
JSP的学习总结到本篇已经八篇了,内容比较多,但都是实战,本篇最后为大家介绍一个小效果:百度分页。就是当我们遍历的数据对象较多时,这时我们就会看到了这个效果了,那他是如何实现的呢?下面我们就一起学习一下。
1、分页数据获取方法:
获得数据总数:
public int getSize() {
int num = 0;
Connection conn = null;
Statement st = null;
ResultSet rs = null;
conn = DBO.getConnection();
String sql = "select count(*) from students";
try {
st = conn.createStatement();
rs = st.executeQuery(sql);
rs.next();
num=rs.getInt(1);
} catch (SQLException e) {
e.printStackTrace();
}
return num;
}
计算一共分几页:
public int getPageCnt(int pageRec) {
int page = 0;
int size = this.getSize();
if(size>0){
page = (size-1)/pageRec+1;
}
return page;
}
获得在该页需要显示的数据:
public List<Student> getSome(int pageNo, int pageRec) {
List<Student> list = new ArrayList<Student>();
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
conn=DBO.getConnection();
String sql="select * from students limit ";
int num = this.getSize()-pageNo*pageRec;
int a = this.getSize()-(pageNo-1)*pageRec;
if(num<0){
num=0;
}
sql+=(num)+","+ a;
st=conn.createStatement();
rs=st.executeQuery(sql);
while(rs.next()){
Student stu = new Student();
stu.setId(rs.getInt("id"));
stu.setName(rs.getString("username"));
stu.setSex(rs.getInt("sex"));
stu.setYear(rs.getInt("age"));
stu.setFrom(rs.getString("form"));
stu.setSchool(rs.getString("school"));
list.add(stu);
}
} catch (SQLException e) {
e.printStackTrace();
}finally{
DBO.close(rs, st, conn);
}
return list;
}
2、实现页面效果代码:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" errorPage="error.html"%>
<%@page import="com.mysql.jsp.student.Student"%>
<%@page import="com.mysql.jsp.sever.StudentMaImp"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>"> <title>百度分页效果</title> <meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page"> </head> <body>
<%
int pageNo=1;
if(request.getParameter("p") !=null){
pageNo=Integer.parseInt(request.getParameter("p"));
}
int pageRec=5;//每页显示的数据条数
StudentMaImp smi = new StudentMaImp();
List<Student> list = smi.getSome(pageNo, pageRec);
int recCnt=smi.getSize();//得到总记录数
int pageCnt=smi.getPageCnt(pageRec);//得到总页数
%>
<center>
<h1>百度分页效果</h1>
<hr/>
<table border="1" width="80%">
<TR>
<td>编号</td><TD>ID</TD><td>姓名</td><td>性别</td><td>年龄</td><td>家乡</td><td>学校</td>
</TR>
<%
if(list.size()!=0 && pageNo>1 ){
for(int i=list.size()-1,j=1; i>=0; i--,j++){
Student student = list.get(i);
%>
<tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
<%
}
}else{
for(int i=list.size()-1,j=1; i>=0&&list.size()!=0; i--,j++){
Student student = list.get(i);
%>
<tr><td><%=j %></td><TD><%=student.getId() %></TD><td><%=student.getName() %></td><td><%if(student.getSex()==1){ %>男<%}else{ %>女<%} %></td><td><%=student.getYear() %></td><td><%=student.getFrom() %></td><td><%=student.getSchool() %></td></tr>
<%
}
}
%>
<tr>
<td colspan="7" align="center">
<% if(pageNo!=1){ %>
<a href="All_BaiDu.jsp?p=1"><span>首页</span></a>
<%} %>
<% if(pageNo>1){ %>
<a href="All_BaiDu.jsp?p=<%=pageNo-1 %>"><span>上一页</span></a>
<%} %>
<%
for(int i=1;i<=pageCnt;i++){
if(i!=pageNo){
%>
<a href="All_BaiDu.jsp?p=<%=i %>"><span><%=i%></span></a>
<%}else{ %>
<span><%=i%></span></a>
<%}}%>
<% if(pageNo!=pageCnt){ %>
<a href="All_BaiDu.jsp?p=<%=pageNo+1 %>"><span>下一页</span></a>
<%} %>
<% if(pageNo!=pageCnt){ %>
<a href="All_BaiDu.jsp?p=<%=pageCnt %>"><span>尾页</span></a>
<%} %>
</td>
</tr>
</table>
</center>
</body>
</html>
效果图:

好了,到这里我们最简单的百度分页效果就实现了,具体的美化工作,就需要我们的css+div+javascript知识了,大家可以学习一下,对做网页帮助很大。
关于JSP的基础知识总结,到今天就为大家总结完毕,共计8篇博客,由于文字描述的局限,所以大家有什么疑问可以留言,我会一一为大家解答。
总结了这么多,最后给大家聊几句,学习JSP之前大家尽量先学习一下JAVASE的基础知识,对你理解JSP中的代码帮助很大,当然如果你对网站开发很感兴趣,可以学一下HTML之后再来学习JSP,这样对你了解里面的JSP语句帮助很大。不过有必要说一点的是,JSP开发现在远没有PHP开发那么受关注,PHP开发无须太多的基础,而JSP开发需要有一定的JAVA基础。大家如果没有JAVA基础,建议大家学习PHP,同样可以达到动态网站的开发的目的,而且PHP开发对于微信端开发很方便,所以大家如果对于JSP的学习感觉压力较大,建议大家学习PHP,不过任何一门技术刚刚接触时,都会存在很多的不懂,重要的是坚持,各种技术之间都是相通,当大家真正掌握一门技术后,再去接触别的技术,就会达到事半功倍的效果。
最后祝各位在程序猿这条路上能找到属于自己的蓝天。
JSP网站开发基础总结《八》的更多相关文章
- JSP网站开发基础总结《二》
有了上一篇的学习,我相信大家对于JSP一定有了一定的认识,从今天开始我们真正开启JSP模式,如果你有HTML的基础,那学起JSP来也就方便了很多了,首先JSP做为网站开发语言,它与HTML有很多相似的 ...
- JSP网站开发基础总结《一》
经过JAVASE的学习相信大家对JAVA已经不再陌生,那么JAVA都可以干什么呢?做算法.应用程序.网站开发都可以,从今天开始为大家奉上JAVAEE之JSP动态网站开发基础总结. 既然是动态网站开发, ...
- JSP网站开发基础总结《七》
按照计划本篇将为大家总结搜索功能的两种实现:确定搜索与模糊搜索.所谓精确搜索便是指,根据用户的输入的搜索内容,在数据库中寻找具有一一对应的关系的数据,一般都是用户在数据库中的主键值.而模糊搜索,是一种 ...
- JSP网站开发基础总结《十二》
前两篇已经简单为大家介绍了一下,有关Filter接口的知识,本篇就让我们以一个登录小功能,来具体实现一下过滤器的作用,便于大家掌握.具体为大家介绍一下如何使用Filter对访问进行过滤,及如何防止中文 ...
- JSP网站开发基础总结《四》
经过前几篇的摸爬滚打,下面我们就开始我们真正的数据库操作了,本篇重点在于如何在网站端编写数据库操作语句,内容不多,就是我们常见的增删改查. 0.数据库对象创建: 在JAVASE基础知识总结时,就为大家 ...
- JSP网站开发基础总结《十三》
继上一篇为大家补充过滤器类后,本篇为大家简单介绍一下如何实现验证码效果.验证码的作用是什么呢?1.防止恶意注册2.防止恶意提交3.防止盗取账户等等,总的来说验证码的存在就是为了,防止非人为的操作,不过 ...
- JSP网站开发基础总结《九》
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
- JSP网站开发基础总结《六》
对于本篇需要总结的内容,量估计有点大,大家好好看哈,绝对全是干货,代码的已经运行测试,不存在问题,大家可以参考学习,下面开始本篇的内容. 1.添加数据到数据库: 如何用户在JSP页面的填写的信息输入到 ...
- JSP网站开发基础总结《九》(转)
本篇属于附加篇,在之前的总结中给大家提到过一个关于登录状态验证的效果,当时是通过Session对象完成的,今天我查了一下,JSP为我们封装了一个用于过滤用的过滤器类Filter,通过它我们就可以非常轻 ...
随机推荐
- 《Linux内核分析》之第四章读书笔记
4.1多任务 多任务操作系统:同时并发地交互执行多个进程的操作系统 多任务操作系统会使多个进程处于堵塞或者睡眠状态.这些任务尽管位于内存,但是并不处于可运行状态.这些进程利用内核堵塞自己,直到某一事件 ...
- 命令行解析Crash文件
做了快两年的开发了,没有写过博客,最近公司app上架,程序崩溃被拒绝了,可是给的crash文件,又看不出哪里的问题,网上各种搜,终于找到了解决的办法,想想还是写个博客吧,希望给哪些也遇到这类问题的朋友 ...
- String 归档
1.古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:,请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想.程序流程图.源代码.结果截图. 设计思想: 1)输入一个字符串str( ...
- (原创)Louis Aston Knight 的家(摄影,欣赏)
本文图片转自腾讯文化:www.cal.qq.com 1.Abstract 记忆中的家,深情刻画. 2.Content 图1 图2 图3 图4 图5 图6 图7 图8 图9 图10 图10 图1 ...
- Linux内核--网络栈实现分析(三)--驱动程序层+链路层(上)
本文分析基于Linux Kernel 1.2.13 原创作品,转载请标明http://blog.csdn.net/yming0221/article/details/7497260 更多请看专栏,地址 ...
- STM32的DMA
什么是DMA?其全称是:Direct Memory Access:根据ST公司提供的相关信息,DMA是STM32中一个独立与Cortex-M3内核的模块,有点类似与ADC.PWM.TIMER等模块:主 ...
- step by step设置postgresql用户密码并配置远程连接
设置pgsql默认用户posgres的密码 1.确认pgsql是开启的 /etc/init.d/postgresql status 2.使用默认用户登录 sudo su postgres 3.进入ps ...
- iBeacon行为分析
研究iBeacon也有段时间了, 总结一下这段时间对于ibeaacon行为的分析. iOS 7.0及以后的版本开始支持iBeacon. 硬件方面, iPhone4S 及以后, ipad 3代及以后, ...
- 【Win10 UWP】微信SDK基本使用方法和基本原理
上回讲到,作为一个长期散播温暖,散播希望的小清新无公害WP开发者,继QQ SDK之后,又把UWP微信SDK这茬了结了,仅供学习交流. 1.安装微信SDK for UWP 微信官方此前明确说明短时间内暂 ...
- 从现在开始,使用简单优雅的validata.js
表单验证,是后台开发中万年不变的话题,在经历许多实战之后发现 使用优雅便捷的validate.js实现验证实在是一件非常愉悦的事情 <form data-validate> Enter: ...