News新闻发布系统
News新闻发布系统分页的实现

1.首先我们要在NewsDAO中创建一个方法,返回List<NewsEntity>集合,其中pageIndex表示当前页,pageSize表示新闻数量
public List<NewsEntity> GetSelect(int pageIndex,int pageSize);
2.NewsDAOImpl类实现了NewsDAO,所以自然继承了GetSelect()方法
public List<NewsEntity> GetSelect(int pageIndex,int pageSize)
{
List<NewsEntity> list=new ArrayList<NewsEntity>();
String sql="select top "+pageSize+" * from newsDetial where newsId not in(select top "+(pageIndex-1)*pageSize+" newsId from newsDetial)";
ResultSet rs=executeQuery(sql);
if(rs!=null)
{
while(rs.next())
{
NewsEntity entity=new NewsEntity();
entity.setNewsId(rs.getInt("newsId")); entity.setNewsTitle(rs.getString("newsTitle")); entity.setNewsContent(rs.getString("newsContent")); entity.setNewsCreateDate(rs.getDate("newsCreateDate")); entity.setNewsAuthor(rs.getString("newsAuthor")); entity.setNewsCateforyId(rs.getInt("newsCategoryId")); list.add(entity);
}
}
return list;
}
3.然后我们新建一个Util包,包中有page方法,来存储向用户展示的数据
public class page
{
//当前页
private int pageIndex;
//页面记录数
private int pageSize;
//本页显示真实数据
private List<NewsEntity> list;
//总页数
private int totalPages;
//总记录数
private int totalRecords;
}
4.在NewsServlet类中,实现其功能(当给总页数赋值时,需要在NewsDAO中新建一个getAllCount方法,在NewsDaoImpl中实现其方法)
public int getAllCount() throws Exception {
int result=0;
String sql="select count(1) as num from newsDetails";
ResultSet rs=executeQuery(sql);
if(rs!=null)
{
if(rs.next())
{
result=rs.getInt("num");
}
closeAll();
}
return result;
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
NewsDAOImpl news=new NewsDAOImpl();
try {
page pages=new page();
//默认显示三条数据
int pageSize=3;
pages.setPageSize(pageSize);
//当前页
int myIndex;
String pageIndex=request.getParameter("pageIndex");
if(pageIndex!=null)
{
myIndex=Integer.parseInt(pageIndex);
}
else
{
myIndex=1;
}
//给当前页赋值
pages.setPageIndex(myIndex);
//总页数
int mytotalPage=0;
int totalPage=news.getAllCount();
if(totalPage%pageSize==0)
{
mytotalPage=totalPage/pageSize;
}
else
{
mytotalPage=totalPage/pageSize+1;
}
pages.setTotalPages(mytotalPage);
//查询所有
//List<NewsEntity> list=news.Select();
//request.setAttribute("list", list);
//泛型数据
List<NewsEntity> list=news.getSelect(pages.getPageIndex(), pageSize);
pages.setList(list);
request.setAttribute("list", pages);
//登录
String name=request.getParameter("uname");
String pwd=request.getParameter("upwd");
boolean flag= news.Login(name, pwd);
if(flag)
{
response.sendRedirect("newspages/admin.jsp");
}
else
{
request.getRequestDispatcher("/index.jsp").forward(request, response);
}
request.getRequestDispatcher("/index.jsp").forward(request, response);
} catch (Exception e) {
e.printStackTrace();
}
}
<ul class="classlist">
<%
//从作用域中取出一个泛型
page page2= (page)request.getAttribute("list");
for(NewsEntity item :page2.getList()){
//一个item就是一个新闻对象
%>
<li><a href='<%=path %>/newspages/news_read.jsp'> <%=item.getNewsTitle() %> </a><span> <%=item.getNewsCreateDate() %> </span></li>
<% }
%>
<p align="right"> 当前页数:[<%=page2.getPageIndex() %>/<%=page2.getTotalPages() %>] <a href="<%=path %>/Servlet/NewsServlet?pageIndex=<%=page2.getPageIndex()+1%>">下一页</a> <a href="#">末页</a> </p>
</ul>
其中,page2.getPageIndex()代表当前页码,page2.getTotalPages()代表了总页码,当点击下一页的时候page2.getPageIndex()要加1
News新闻发布系统的更多相关文章
- 【NodeJS 学习笔记04】新闻发布系统
前言 昨天,我们跟着这位大哥的博客(https://github.com/nswbmw/N-blog/wiki/_pages)进行了nodeJS初步的学习,最后也能将数据插入数据库了 但是一味的跟着别 ...
- 2016.6.23 PHP实现新闻发布系统主体部分
1.新闻发布系统的列表: <html><meta http-equiv="Content-Type" content="text/html; chars ...
- DRP PK 牛腩新闻发布系统
一.JSP与ASP (1)Web服务器的支持:大多数通用的Web服务器如:Apache.Netscape和Microsoft IIS都支持JSP页面,只有微软本身的Microsoft IIS和Pers ...
- 安卓项目-利用Sqlite数据库,开发新闻发布系统
本教程致力于程序员可以快速的学习安卓移动端手机开发. 适合于已经习得一种编程语言的同仁. 更多志同道合,想要学习更多编程技术的大神们. 小弟不才,麻烦关注一下我的今日头条号-做全栈攻城狮. 本文章是基 ...
- 牛腩新闻发布系统--学习Web的小技巧汇总
2014年11月10日,是个难忘的日子,这一天,小编的BS学习开始了,BS的开头,从牛腩新闻发布系统开始,之前学习的内容都是CS方面的知识,软考过后,开始学习BS,接触BS有几天的时间了,跟着牛腩老师 ...
- 牛腩新闻发布系统(五):VS网站发布及常见问题
导读:在千万个回眸中,终于看见了牛腩的归途.好吧,牛腩该整合的都整合完毕了,到了发布的时候了.这时候,不得不再次感慨那句不知道感慨了多少次的感慨:为什么,我要遭遇这么多的坎坷?下面,结合自己的情况,说 ...
- 第一章使用JSP/Server技术开发新闻发布系统第一章动态网页开发基础
一:为什么需要动态网页 由于静态网页的内容是固定的,不能提供个性化和定制化得服务,使用动态网页可真正地与用户实现互动. 二:什么是动态网页 ①:动态网页是指在服务器端运行的,使用程序语言设 ...
- 新闻发布系统<分页>
分页实现: 实现数据的分页显示,需要以下几个关键步骤: ①确定每页显示的总页数 ②计算显示的总页数 ③编写SQL语句 实现效果如图所示: 当点击下一页时,地址栏地址为?pageIndex=2 1.创建 ...
- 基于JSP+SERVLET的新闻发布系统(三)
拖了这么久..今天把栏目管理还有新闻管理模块的也挂出来.. 栏目管理跟用户管理一样. 这里重点讲解新闻管理. 效果图如上: 1,可选择栏目类别,且栏目类别是动态生成的. 默认生成的文章是未审核状态的. ...
随机推荐
- swift学习笔记之-类和结构体
//类和结构体 import UIKit //类和结构体 /* 1.枚举enum.结构体struct和String.Array.Dictionary类型,都属于值传递类型,被赋值给新的常量或变量时传递 ...
- SharePoint 2013 日历根据Category显示不同颜色
最近有一个小需求,就是SharePoint的日历类型列表,用户希望根据Event里面的Category不同,在前台视图显示成不同的颜色,绞尽脑汁,想到这么个办法,分享给大家,希望有更好方法的也能留言推 ...
- [GitHub] GitHub Repositories
https://github.com/karqical2016/karqical2016.github.io.git https://github.com/karqical2016/java.git ...
- 如何优化TableView
关于UITable的优化: 1.最常用的就是不重复生成单元格,很常见,很实用: 2.使用不透明的视图可以提高渲染速度,xCode中默认TableCell的背景就是不透明的: 3.如果有必要减少视图中的 ...
- iOS--归档和解档(Archiver)、(UnArchiver)
一.已有类型的归档和解档 首先来看一个简单的例子: //第一方式:归档对象 //对象-->文件 NSArray *array = [NSArray arrayWithObjects:@" ...
- 搭建Maven私服
最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...
- 自定义标签 与 JSTL(JSP Standard Tag Library)
1.自定义标签 [理解] [1]简介 > 在JSP2.0以后,在jsp页面中不建议使用脚本片段<% %>和JSP表达式<%= %> ...
- 如何利用Pre.im分发iOS测试包
大众创新万众创业,在移动互联网的风口,移动APP开发与测试发展方兴未艾,受到了越来越多的重视.相较 iOS,Android 的开发环境更加开放.Android 开发者要测试应用时,只需发个 APK 安 ...
- CSS3 background-size属性
请复制粘贴,图片请自带 <!DOCTYPE html > <html > <head> <meta charset="utf-8"> ...
- win7下硬盘安装ubuntu
首先还是分区,在计算机上右键--管理--磁盘管理.装Ubuntu分配的硬盘大小最好是(20G以上)不要太小,这里请注意,Ubuntu和Windows文件系统完全不同,所以我们划好要给Ubuntu的分区 ...