`
ykyfendou
  • 浏览: 408501 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

jsp+servlet前后台分页代码示例的主要代码(2012)

阅读更多

 

Main.java:

package org.jsoft.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.jsoft.topic.Topic;
import org.jsoft.topic.TopicOP;

public class Main extends HttpServlet {
	
	int pageSize = 24;//每页显示记录数
	int startRow = 0; //开始显示记录的编号 
	int pageNo=0;//需要显示的页数
	int counterStart=0;//每页页码的初始值	//每页页码记录的初始值
	int counterEnd=0;//显示页码的最大值		//每页页面记录的最大值
	int recordCount=0;//总记录数;
	int maxPage=0;//总页数
	int prevStart=0;//前一页
	int nextPage=0;//下一页
	int lastRec=0; 									//最后一页记录的标记
	int lastStartRecord=0;//最后一页开始显示记录的编号


	public void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//获取需要显示的页数,由用户提交
		if(request.getParameter("pageNo")==null){ //如果为空,则表示第1页
		if(startRow == 0){
		   pageNo = startRow + 1; //设定为1

		}
		}else{
		pageNo = Integer.parseInt(request.getParameter("pageNo")); //获得用户提交的页数
		startRow = (pageNo - 1) * pageSize; //获得开始显示的记录编号
		}

		//因为显示页码的数量是动态变化的,假如总共有一百页,则不可能同时显示100个链接。而是根据当前的页数显示
		//一定数量的页面链接		
		
		//设置显示页码的初始值!!
		if(pageNo % pageSize == 0){
			counterStart = pageNo - (pageSize - 1);
		}else{
			counterStart = pageNo - (pageNo % pageSize) + 1;
		}
	  
		counterEnd = counterStart + (pageSize - 1);	
		
		TopicOP topicOP=new TopicOP();
		//获取总记录数
		recordCount=topicOP.queryCountRecord();
		
		List<Topic> list=topicOP.queryPageAll(startRow, pageSize);
		request.getSession().setAttribute("list",list);
		

		//获取总页数
		if(recordCount % pageSize == 0){
		  maxPage = recordCount / pageSize;
		}else{
		   maxPage = recordCount/pageSize+1;
		}
				

		request.setAttribute("pageNo",pageNo);
		request.setAttribute("startRow",startRow);
		request.setAttribute("pageSize",pageSize);
		request.setAttribute("counterStart",counterStart);
		request.setAttribute("counterEnd",counterEnd);
		request.setAttribute("recordCount",recordCount);
		request.setAttribute("maxPage",maxPage);
		
	   String loginusername=(String)request.getSession().getAttribute("username");
	   request.getSession().setAttribute("loginusername", loginusername);	
	   String[] userInformation=topicOP.queryUserInformation(loginusername);
	   request.setAttribute("userInformation", userInformation);
	   request.getRequestDispatcher("main.jsp").forward(request,response);
	}
	public void doGet(HttpServletRequest request, HttpServletResponse response)
	throws ServletException, IOException {
		
		this.doPost(request, response);
		
	}


}

 

TopicOP.java:

package org.jsoft.topic;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;

import org.jsoft.util.MyConnection;

public class TopicOP
{
	Connection conn = null;
	Statement st = null;
	ResultSet rs = null;



	public List<Topic> queryALL()
	{
		List<Topic> list = new ArrayList<Topic>();

		try
		{
			conn = MyConnection.getConnection();
			st = conn.createStatement();		
			String sql="select" +" ttopic,tclickcount,ttime,username ,tid "+" FROM bbsuser b ,(select tid,userid,ttopic,ttime ,tclickcount "+"FROM bbstopic group by tid ) a "+"WHERE a.userid=b.userid";			
			rs = st.executeQuery(sql);
			while (rs.next())
			{
				Topic topic = new Topic();
				topic.setTclickcount(rs.getInt(2));
				topic.setTid(rs.getInt(5));
				topic.setTtopic(rs.getString(1));
				topic.setUsername(rs.getString(4));
				topic.setTtime(rs.getDate(3));
				list.add(topic);			
			}
		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally
		{
			MyConnection.close(rs, st, conn);
		}

		return list;
	}
	
	
	//查询要显示的页面的所有记录。limit条件。返回一个List。
	public List queryPageAll(int startRow,int pageSize){
		
		List<Topic> list = new ArrayList<Topic>();	
		try {
						
			conn = MyConnection.getConnection();		
			st = conn.createStatement();	

	
			rs = st.executeQuery("select" +" ttopic,tclickcount,ttime,username ,tid "+" FROM bbsuser b ,(select tid,userid,ttopic,ttime ,tclickcount "+"FROM bbstopic group by tid ) a "+"WHERE a.userid=b.userid ORDER BY a.tid ASC LIMIT "
				       +startRow+", "+pageSize);
			while (rs.next())
			{
				Topic topic = new Topic();
				topic.setTclickcount(rs.getInt(2));
				topic.setTid(rs.getInt(5));
				topic.setTtopic(rs.getString(1));
				topic.setUsername(rs.getString(4));
				topic.setTtime(rs.getDate(3));
				list.add(topic);			
		
			}
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			
			MyConnection.close(rs, st, conn);
		}
	
		return list;
	}
	
	

	public Topic queryByID(int id)
	{

		Topic topic = new Topic();

		topic.setTid(id);
		try
		{
			conn = MyConnection.getConnection();
			st = conn.createStatement();
			String sql = "SELECT tcontents,ttime,ttopic,username FROM bbstopic  a,bbsuser  b WHERE a.userid=b.userid and tid= "
					+ id;
			rs = st.executeQuery(sql);
			if (rs.next())
			{
				topic.setTtime(rs.getDate("ttime"));
				topic.setTcontents(rs.getString("tcontents"));
				topic.setTtopic(rs.getString("ttopic"));
				topic.setUsername(rs.getString("username"));

			}

		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

		return topic;
	}
	
	public int addTopic(int userid,String ttopic,String tcontents,String ttime)
	{
		int tag = 0;
		try
		{
			conn = MyConnection.getConnection();
			
			st = conn.createStatement();
			String sql = "INSERT INTO bbstopic(userid,ttopic,tcontents,ttime) VALUES("+userid+",'"+ttopic+"','"+tcontents+"','"+ttime+"')";
			
			tag = st.executeUpdate(sql);
			
		} catch (Exception e)
		{
			e.printStackTrace();
		}
		
		
		
		return tag;
	}
	
	
	
public String[] queryUserInformation(String username){

		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		String[] str = new String[2];
		try
		{
			conn = MyConnection.getConnection();
			st = conn.createStatement();
			String sql = "SELECT email FROM bbsuser WHERE username='"+username+"'";
			rs = st.executeQuery(sql);
			while(rs.next()){
				str[1] = rs.getString("email");	

				
			}
	
		} catch (Exception e)
		{
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally
		{
			MyConnection.close(rs, st, conn);
		}
		str[0]=username;
		return str;
		
		
	}


	//获取总记录数
	public int queryCountRecord(){
		Connection conn = null;
		Statement st = null;
		ResultSet rs = null;
		
		int recordCount = 0;
		
		try {
			conn = MyConnection.getConnection();
			st = conn.createStatement();
			rs = st.executeQuery("select count(*) from bbstopic") ;	
			rs.next();			
			recordCount = rs.getInt(1);
			
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace(); 
		} 
		return recordCount;		
	}

//public static void main(String[] args) {
//	TopicOP op=new TopicOP();
////	op.queryByID(3);
//	op.queryCountRecord();
//	
//}
	
}

 

 

 

jdbc.properties

url=jdbc:mysql:///bbs
username=root
password=root
driverclass=com.mysql.jdbc.Driver

 

main.jsp:

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"  prefix="c"%>
<%@ page import="org.jsoft.topic.TopicOP" %>
<%
request.setCharacterEncoding("utf-8");
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<%
int pageNo=(Integer)request.getAttribute("pageNo");
int startRow=(Integer)request.getAttribute("startRow");
int pageSize=(Integer)request.getAttribute("pageSize");
int counterStart=(Integer)request.getAttribute("counterStart");
int counterEnd=(Integer)request.getAttribute("counterEnd");
int recordCount=(Integer)request.getAttribute("recordCount");
int maxPage=(Integer)request.getAttribute("maxPage");
int prevStart=0;
int nextPage=0;
int lastRec=0;
int lastStartRecord=0;	
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <base href="<%=basePath%>">
    
    <title>My JSP 'main.jsp' starting page</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">
<link rel="stylesheet" type="text/css" href="css/mainstyle.css">
  </head>
  <body>

<div id="container">

		<div id="top">		
		<div id="topleft"></div>
		<div id="topmiddle">
			<h1 id="topich1"><font color="#DAD3A9">欢迎来到雪狼论坛</font></h1>		
		</div>	
		<div id="topright">
				<table id=userinformation border="1px">
					<tr>
						<td id="userinformationtd1">用户名</td>
						<td id="userinformationtd2">${userInformation[0]}</td>						
					</tr>
					<tr>
						<td>邮箱</td>
						<td>${userInformation[1]}</td>
					</tr>
					<tr>
						<td colspan="2" height="40px">
								<a href="changeInformation.jsp" id="changePersonalInformation_a">亲,点此更改个人资料!!!</a>														
						</td>	
					</tr>					
			</table>
			<div id="topicrightreply">
				<a href="reply.jsp" id="topicrightreply_a">亲,点此可发帖哦!!!</a>				
			</div>			
		</div>		
	</div>
	<div id="gap">假如你没有惊天动地的大事情可以做,那么就做一个小人物,给一个可爱的小孩作父母,给一对老人做孝顺的子女,给你的另一半一个简单而幸福的人生。</div>
	<div id="middle">
		<div id="middleleft"></div>
		<div id="middlecenter">
			<marquee><font color="r#EAD1A8">点击标题进行回复&nbsp;&nbsp;&nbsp;&nbsp;点击标题进行回复&nbsp;&nbsp;&nbsp;&nbsp;点击标题进行回复&nbsp;&nbsp;&nbsp;&nbsp;点击标题进行回复&nbsp;&nbsp;&nbsp;&nbsp;点击标题进行回复</font></marquee>		
			<table align="center" border="1px">
				<tr><td align="center" width="325px">帖  子  标  题</td><td align="center" width="175px">帖  子  作   者</td><td align="center" width="100px">发  表  时  间</td><td align="center" width="100px">点  击  次  数</td></tr>
				
				<tr><%="总共"+recordCount+"条记录 - 当前页:"+pageNo+"/"+maxPage %></tr>			
				<c:forEach var = "topic" items="${list}">
				<tr>
  				<td align="center"><a href="ReplyTo?tid=${topic.tid }">${topic.ttopic }</a></td>
					<td align="center">${topic.username }</td>
					<td align="center">${topic.ttime }</td>
					<td align="center"> ${topic.tclickcount }</td>	
				</tr>
				</c:forEach>
			</table>
	
			<div id="page">
			<font size=4 >				
		
			<% 
			  //显示第一页或者前一页的链接
			  //如果当前页不是第1页,则显示第一页和前一页的链接
			  if(pageNo != 1){
				    prevStart = pageNo - 1;
				    out.print("<a href=Main?pageNo=1>第一页 </a>: ");
				    out.print("<a href=Main?pageNo="+prevStart+">前一页</a>");
				  }
			%>
			[
			<% 
			   //打印需要显示的页码
			   for(int c=counterStart;c<=counterEnd;c++){
			   if(c <maxPage){
			     if(c == pageNo){
			       if(c %pageSize == 0){
			         out.print(c);
			       }else{
			          out.print(c+" ,");
			       }
			     }else if(c % pageSize == 0){
			        out.print("<a href=Main?pageNo="+c+">"+c+"</a>");
			     }else{
			        out.print("<a href=Main?pageNo="+c+">"+c+"</a> , ");
			     }
			   }else{
			     if(pageNo == maxPage){
			      out.print(c);
			      break;
			     }else{
			        out.print("<a href=Main?pageNo="+c+">"+c+"</a>");
			     break;
			     }
			   }
			 }															
			%>			
			]			
			<%			
			if(pageNo < maxPage){ //如果当前页不是最后一页,则显示下一页链接
			    nextPage = pageNo + 1;
			    out.print("<a href=Main?pageNo="+nextPage+">下一页</a>");
			}									

			%>
			<%
			
			//同时如果当前页不是最后一页,要显示最后一页的链接
			if(pageNo < maxPage){
			   lastRec = recordCount % pageSize;
			   if(lastRec == 0){
			      lastStartRecord = recordCount - pageSize;
			   }
			   else{
			      lastStartRecord = recordCount - lastRec;
			   }

			   out.print(":");
			    out.print("<a href=Main?pageNo="+maxPage+">最后一页</a>");
			  }						
			%>
		
			</font>
			</div>

		</div>
		<div id="middleright">		
			<div id="backtopbutton">
				<input type="button" width="100" height="100" onclick="location.href='#top'" value="回到顶部" />
			</div>	
		</div>
	</div>
	<div id="bottom">
		<p>笑笑更幸福</p>
		<p>
			某人上街买了一坛好酒,放在小院走廊上,第二天,他发现酒少了5分之1,便在酒桶上贴了不许偷酒四个字。
			第三天酒又少了5分之2,他非常生气又贴了偷酒者重罚5个字。
			第四天,酒还是被偷,他肺都快气炸了。他朋友知道了就对他说;你不会在酒桶上贴尿桶二字啊,看谁还偷喝。他觉得很有道理就照办了。第五天天他哭了。桶满了。
			……等等,故事还没完,第六天,他再一次在酒桶上贴了不许偷酒四个字。
			那一天很多人都哭了。
		</p>	
	</div>
</div>
  </body>
</html>

 

 

 

 

 

 

分享到:
评论

相关推荐

    JSP +分页技术+JSP经典分页代码+servlet +分页

    本篇将深入探讨JSP(JavaServer Pages)结合分页技术和Servlet的实现方式,以及一个经典JSP分页代码的详细解析。 首先,我们需要理解JSP的基本概念。JSP是一种动态网页技术,它允许开发者在HTML或XML文档中嵌入Java...

    jsp + servlet分页代码

    在这个“jsp + servlet分页代码”中,我们很显然关注的是如何实现数据库查询结果的分页展示。分页是一种有效的优化策略,它能帮助用户更方便地浏览大量数据,同时减轻服务器负载。 首先,我们需要理解JSP和Servlet...

    jsp+servlet实现增删改查

    在IT行业中,Web开发是至关重要的领域,而`jsp`(JavaServer Pages)和`servlet`是Java Web开发中的核心技术,常用于构建动态网站。本项目以"jsp+servlet实现增删改查"为主题,旨在利用这两者实现CRUD(Create、Read...

    JSP+JDBC_真分页(基于MySQL数据库分页)

    2. 调用后台服务:通过Servlet或Controller调用后台处理分页的方法,传递当前页和每页大小。 3. 渲染结果:后台返回分页后的数据列表,JSP页面遍历并渲染到HTML中。 **四、后台处理分页** 在Java后端,我们需要...

    JSP+servlet+filters+JS+CSS+JBean编写新闻管理系统

    《基于JSP、Servlet、Filters、JS、CSS和JBean的新闻管理系统开发详解》 新闻管理系统是企业信息化建设中常见的应用之一,它可以帮助用户高效地发布、管理和检索新闻信息。本系统采用Java技术栈,结合JSP、Servlet...

    jsp+servlet+javabean新闻发布系统精品毕业设计

    1.新闻分类:(国际 娱乐 体育 等)新闻分类需要从数据库中动态取出(因为后台中有添加删除修改分类的功能), 可以只显示4—5个分类,后面加个“更多&gt;&gt;”链接,来罗列所有分类 2.新闻搜索:(可以选择分类)以新闻标题...

    ajax+servlet分页

    "Ajax + Servlet" 分页技术是结合了异步JavaScript和XML(Ajax)与Java Servlet技术来实现在不刷新整个页面的情况下动态加载分页内容。本文将深入探讨这种技术的实现原理和步骤。 首先,让我们理解Ajax的核心概念。...

    jsp+servlet+javabean新闻发布系统计算机毕业设计源码

    统名称:jsp+servlet+javabean新闻发布系统 大家好,这是我搜集整理好并且测试通过的的一个新闻发布系统,有程序,设计详细文档和ppt演示,我现在把程序共享给大家,有需要完整文档的朋友请再联系我!! 系统角色:...

    分页servlet+jsp+javabean+sqlserver

    在这个名为"分页servlet+jsp+javabean+sqlserver"的项目中,开发者构建了一个基于JavaWeb的人才储备系统。系统的核心功能是实现数据的分页展示,利用Servlet进行服务器端处理,JSP作为视图层进行前端展示,而...

    基于jsp+servlet+ajax的图书管理系统.zip

    此外,AJAX还可以用于分页显示图书列表,用户滚动页面时,后台自动加载更多数据,提升用户体验。 **4. 数据库交互** 图书管理系统通常会使用关系型数据库(如MySQL、Oracle等)存储图书信息、用户信息等数据。...

    Ext Gantt + jsp + servlet 工程实例(EXT 甘特图实例)

    在这个"Ext Gantt + jsp + servlet 工程实例"中,我们将探讨如何将Ext Gantt与Java后端技术,即JSP和Servlet相结合,构建一个完整的Web应用。 1. **Ext Gantt**: Ext Gantt是Ext JS组件库的一部分,提供了一套完整...

    基于Servlet+jsp+SQL Server实现的音乐网站前后台管理系统(系统PPT+项目计划书+ER图设计+需求说明书)

    基于Servlet+jsp+SQL Server实现的音乐网站前后台管理系统(系统PPT+项目计划书+ER图设计+需求说明书)基于Servlet+jsp+SQL Server实现的音乐网站前后台管理系统(系统PPT+项目计划书+ER图设计+需求说明书)基于Servlet+...

    基于Jsp+Servlet+Layui的学生信息管理系统.zip

    Servlet在后台处理业务逻辑,接收并响应来自JSP的请求。例如,`StudentServlet.java`可能包含了处理添加、删除、更新和查询学生信息的逻辑。Servlet通过重写`doGet`和`doPost`方法来处理HTTP GET和POST请求。它们...

    基于Jsp+Servlet实现图书管理系统.zip

    这个项目是一个基于Java Web技术的图书管理系统,主要使用了JSP(JavaServer Pages)和Servlet技术来构建前端和后端交互的平台。JSP是一种动态网页开发技术,它允许在HTML页面中嵌入Java代码,实现了视图与逻辑的...

    基于jsp+servlet、使用原生ajax,实现单表增删改查、文件上传、条件查询和分页

    在Java Web开发中,"基于jsp+servlet、使用原生ajax,实现单表增删改查、文件上传、条件查询和分页" 是一个常见的实战项目,非常适合初学者熟悉整个Web应用开发流程。这个项目主要涵盖了以下几个核心知识点: 1. **...

    基于ajax+jsp+servlet+mysql利用IDEA实现了图书管理系统.zip

    《基于Ajax、JSP、Servlet和MySQL的图书管理系统实现详解》 在当今信息化社会,图书管理系统作为信息资源的重要载体,其高效、便捷的管理方式至关重要。本系统采用现代Web技术,结合Ajax、JSP、Servlet和MySQL...

    物流信息网(jsp+sqlserver+servlet+strut)

    系统主要基于Java Web技术栈,包括JSP(JavaServer Pages)、SQL Server数据库、Servlet以及Struts框架。下面将详细介绍这些关键技术及其在系统中的应用。 1. JSP:JavaServer Pages是Java平台上的一种动态网页技术...

    购书网站用 javabean+servlet+jsp实现

    开发者可以在jsp页面中嵌入Java代码,通过EL(Expression Language)和JSTL(JavaServer Pages Standard Tag Library)来访问后台传递的数据,如显示书籍列表、渲染购物车内容等。此外,jsp还可以通过转发或重定向来...

    easyui+jsp+servlet上手实例

    【标题】"easyui+jsp+servlet上手实例"是一个基于Java Web开发的教程,它主要介绍了如何结合EasyUI、JSP和Servlet技术来构建Web应用程序。EasyUI是一个基于jQuery的UI库,提供了丰富的组件,如数据网格(datagrid)...

    51CTO下载-jsp+servlet+javabean实现的新闻发布系统

    【新闻心态】是一个基于JSP、Servlet和JavaBean技术实现的新闻发布系统,旨在提供一个简易而实用的平台,用于发布和管理新闻。该系统的核心功能包括新闻的添加、编辑、删除以及展示,对于初学者或者需要快速搭建新闻...

Global site tag (gtag.js) - Google Analytics