json 在上篇文章已有详细介绍,json的既简单易懂,又传输迅速。并且能和javascript很好的融为一体。
在不需要添加jar的前提下,能够很好完成jsp分页问题。
下面具体介绍分页实例:
效果如图所示,采用jsp+servlet技术
首先:编写一个javaBean User.java
复制代码 代码如下:
package bean;
public class User {
private int id;
private String name;
private String password;
private int age;
public User() {
super();
}
public User(int id, String name, String password, int age) {
super();
this.id = id;
this.name = name;
this.password = password;
this.age = age;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
//{'id':1,'name':'zhangsan','password':'123','age':1}
return "{'id':"+id+",'name':'"+name+"','password':'"+password+"','age':"+age+"}";
}
}
这里需要注意的 就是 toString的方法的改变
然后:我们来编写它的control 层和Dao层
为了简化代码,便于取值,数据库暂写为一个集合
可以看到,
1.service 接收request请求 得到页面所要展示当前页(为第page页)
2.创建一个字符串,向内依次添加 从数据库DB 得到的user,并将所有数据封装
复制代码 代码如下:
[{},{},{}]
3.将此字符串 返回到请求页面
复制代码 代码如下:
package servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedList;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import bean.User;
public class Paging extends HttpServlet {
public static final int PER_PAGE = 3;
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//分页 数据源 当前得到第几页的记录 每页显示多少条
int page = Integer.parseInt(request.getParameter("page"));
// page = 1 i = 0
//page = 2 3
int length = 0;//记录当前拿了多少条
StringBuffer sb = new StringBuffer();
sb.append("[");
//[{},{},{}]
String message = null;
if(page >= 1 && page <= 3){
for (int i = (page-1)*PER_PAGE; i < DB.list.size()&&length < PER_PAGE; i++) {
User u = DB.list.get(i);
sb.append(u.toString()+",");
length++;
}
if(length > 0){
message = sb.substring(0, sb.length()-1)+"]";
}else{
message = sb.toString()+"]";
}
}else{
response.setContentType("text/html;charset=utf-8");
response.getWriter().println("捣乱");
return;
}
response.setContentType("text/html;charset=utf-8");
response.getWriter().println(message);
}
}
class DB{
public static List<User> list = new LinkedList<User>();
static{
list.add(new User(1,"zhangsan","zs",34));
list.add(new User(2,"lisi","ls",34));
list.add(new User(3,"a","h",34));
list.add(new User(4,"b","d",34));
list.add(new User(5,"c","g",34));
list.add(new User(6,"d","a",34));
list.add(new User(7,"e","d",34));
list.add(new User(8,"f","e",34));
list.add(new User(9,"g","a",34));
}
}
之后 :jsp的填写,通过ajax异步提交page,然后得到相应的字符串
复制代码 代码如下:
var mgs = xmlHttpRequest.responseText;
var persons = mgs.evalJSON();
将json数据解析 并添加到显示的区域
复制代码 代码如下:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
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>My JSP 'regist.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">
<script type="text/javascript" src="js/prototype1.6.js"></script>
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
<script type="text/javascript">
var paging = 0;
//
function page(p){
/*if(p == 'next' && paging < 3){
paging ++;
}else if(p == 'last' && paging > 1) {
paging --;
}else{
alert('错误');
}*/
if(p == 'next' && paging < 3){
paging ++;
if(paging > 1){
$(":button:eq(0)").removeAttr('disabled');
}
if(paging == 3){
$(":button:eq(1)").attr('disabled','disabled');
}
}else if(p == 'last' && paging > 1){
paging --;
$(":button:eq(1)").removeAttr('disabled');
if(paging == 1){
$(":button:eq(0)").attr('disabled','disabled');
}
}
createXmlHttpRequest();
xmlHttpRequest.onreadystatechange=back;
var url = encodeURI("/json_page/Paging?page="+paging);
xmlHttpRequest.open("GET",url,true);
xmlHttpRequest.send(null);
}
//假设名字为xmlHttpRequest
function createXmlHttpRequest(){
if(window.ActiveXObject){
xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}else{
xmlHttpRequest = new XmlHttpRequest();
}
}
//回调函数
function back(){
if( xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
var mgs = xmlHttpRequest.responseText;
var persons = mgs.evalJSON();
//alert(mgs);
$("table").empty();
$("table").append( $("<tr><td>id</td><td>用户名</td><td>密码</td><td>age</td></tr>"));
for(var i = 0 ; i < persons.length;i++){
var person = persons[i];
var $tr = $("<tr><td>"+person.id+"</td><td>"+person.name+"</td><td>"+person.password+"</td><td>"+person.age+"</td></tr>");
$("table").append($tr);
}
}
}
</script>
</head>
<body>
<input type="button" disabled="disabled" value="上一页" onclick="page('last');"/><input type="button" value="下一页" onclick = "page('next');"/>
<table>
<tr><td>id</td><td>用户名</td><td>密码</td><td>age</td></tr>
</table>
</body>
</html>
另外:要有这两个js哦
复制代码 代码如下:
<script type="text/javascript" src="js/prototype1.6.js"></script>
<script type="text/javascript" src="js/jquery-1.4.4.js"></script>
相关推荐:
SEO包含的秘密:让你的网站轻松排上首页,新媒体营销推广方案目录
seo要公司什么资源,做seo需要用到什么软件 ,ai明星换了
ChatGPT维护页面-背后的技术与用户体验,ai领域ppt
SEO导流:如何通过精准优化实现网站流量大爆发,网站优化优化怎么做
URL站长的崛起:打造高效网站运营的秘密武器,网站建设费用计算依据
SEO出来,打破流量瓶颈,助力企业增长的关键策略,南昌营销推广代理商电话
SEO量:提升网站流量和排名的关键法则,德兴seo
SEO售产-数字营销新战场,助力企业实现盈利增长,去哪找自贡网站建设
SEO新闻:2025年最新趋势与最佳实践,你不可错过的SEO战略,郑州网络营销推广的优势
ChatGPT免登录:轻松畅聊,无需注册,快速体验AI智能助手,眼泪ai
AI搜索相似文章怎么做?揭秘高效文章检索的核心技术!,程式ai软件
SEO表格:优化网站排名的秘密武器,大数据推广营销费用多少
SEO怎么排名?这5大技巧,轻松提升网站排名,人人都可ai
seo算是什么营销方式,seo是网络营销吗 ,ai318
SEO工装裤-打造时尚与实用兼备的工作利器,ai画中国爸爸辅导孩子写作业
360关键:打造全方位安全保护,守护您的数字世界,ai乘bi
SEO运维:提升网站排名的核心战略,邢台网站建设优化建站
Chat免费,让沟通无界限,尽享智能对话时代,ai没办法置顶
AI缩写文本:助力智能生活的革新力量,ai智能写作生成神器下载
OpenAI银联支付-未来支付新体验,安全便捷全新升级,医学加ai
seo的推广工具,seo推广软件哪个好 ,国内ai写作论文怎么样
如何通过AI写文章,轻松提高写作效率与质量
seo词库优化,搜索词条优化 ,ai点选择
seo网站是什么东西,seo网站是什么东西啊 ,ai锯齿消失
ChatGPT桌面版无法加载?快速解决方案及常见问题解析,ai媚眼
SEO查:如何用精准的SEO诊断助力网站流量爆发,美团关键词排名怎么补
SEO桔子:提升网站排名的必备法宝,seo外包销售
SEO元素-提升网站排名的核心要素,推广分成网站有哪些
ChatGPT美区要梯子吗?轻松畅享全球智能聊天体验,ai音位
SEO走动:提升网站流量的关键一步,SEO数据监控宝宝推荐
“只能写作”:在创作的世界里,选择文字,就是选择自由,云南关键词排名推广报价
SEO与网络推广机构:如何选择最适合你的数字营销合作伙伴,ai写作软件性价比高吗
ChatGPT打不开实时问题解决方案:让你的AI助手始终在线,psd 转ai
ChatGPT198元永久会员,开启智慧之门,体验AI的极致服务!,老孙教ai
OpenAI网站崩溃原因:背后的技术与挑战,千牛Ai智投在哪里找
seo该从什么开始,seo是什么时候开始的 ,ai写作免费英文怎么说
文章疑似AI生成怎么办?如何辨别并应对AI生成文章的挑战
SEO新人必读:从零开始SEO的核心技巧与实践指南,网站邮件推广设计
产品经理seo是什么,产品经理seo是什么意思 ,ai政府公文写作 软件
WPJam:打破网站管理的壁垒,打造极致用户体验,广东谷歌seo工具
什么是seo在线咨询,什么是seo在线咨询服务 ,unreal ai
Zkept:重塑未来生活的智能科技革新,营销推广的面试问题
主流seo是什么,seo是什么推广网站 ,AI心理师
不利于seo是什么,不属于seo对网店推广的作用 ,ai渐变下载
ChatGPT付款被拒?如何应对与解决常见支付问题,掉包ai
SEO引擎优化方法-让你的网站流量暴增的实战指南,ai智慧树
ChatGPT国内版:为中国用户量身定制的智能助手,开启AI新纪元,ai文章赚钱
seO经理是什么岗位,seo经理招聘 ,ai写作重复被查
seo网站代码是什么,网站专业术语中seo意思是什么 ,拟人ai制作
SEO动态:2025年SEO趋势与优化技巧解析,十堰外贸网站推广费用