- 浏览: 116366 次
- 性别:
- 来自: 南京
最新评论
-
zhchyun2008:
鱼崽崽 写道大家可以看看这个,里面有真正的实例:http:// ...
springmvc+MyBatis简单CRUD -
鱼崽崽:
大家可以看看这个,里面有真正的实例:http://43.249 ...
springmvc+MyBatis简单CRUD -
w-mamba:
适合初学者学习,蛮好…
ajax+jquery+json分页demo -
aa00aa00:
我笑了............................ ...
springmvc+MyBatis简单CRUD -
u010100704:
大哥。能不能加个项目结构图。再加个运行结果图,你这样写我都不知 ...
springmvc+MyBatis简单CRUD
ajax+jquery+json分页demo
实体类:Book.java
package com.model; import java.util.Date; public class Book { private int id; private String name; private Date publish_time; 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 Date getPublish_time() { return publish_time; } public void setPublish_time(Date publish_time) { this.publish_time = publish_time; } } BookDao.java package com.model; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; public class BookDao { public ArrayList<Book> FindBookByPage(Page page) throws SQLException{ // MySQL select *from t_book limit currentRecord , pageSize ArrayList<Book> bookls=new ArrayList<Book>(); Connection con=null; PreparedStatement st=null; ResultSet rs=null; try{ con = JdbcUtils.getConnection(); st = con.prepareStatement("select *from t_book limit ?,?"); st.setInt(1, page.getCurrentRecord()); st.setInt(2, page.getPageSize()); rs = st.executeQuery(); while(rs.next()){ Book book = new Book(); book.setId(rs.getInt("id")); book.setName(rs.getString("name")); book.setPublish_time(rs.getTimestamp("publishtime")); bookls.add(book); } }finally{ JdbcUtils.close(rs,st,con); } return bookls; } public int getBookNum() throws SQLException{ Connection con=null; PreparedStatement st=null; ResultSet rs=null; int num =0; try { con = JdbcUtils.getConnection(); st = con.prepareStatement("select count(*) from t_book"); rs = st.executeQuery(); if(rs.next()) num = rs.getInt(1); JdbcUtils.close(rs,st,con); }finally { JdbcUtils.close(rs,st,con); } return num; } }
BookDTO.java
package com.model; public class BookDTO { private int id; private String name; private String str_publish_time; 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 getStr_publish_time() { return str_publish_time; } public void setStr_publish_time(String str_publish_time) { this.str_publish_time = str_publish_time; } }
JdbcUtils.java
package com.model; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; public final class JdbcUtils { private static String url = "jdbc:mysql://localhost:3306/books"; private static String user = "root"; private static String password = "root"; private JdbcUtils() { } static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { throw new ExceptionInInitializerError(e); } } public static Connection getConnection() throws SQLException { return DriverManager.getConnection(url, user, password); } public static void close(ResultSet rs, PreparedStatement st, Connection conn) { try { if (rs != null) rs.close(); } catch (SQLException e) { e.printStackTrace(); } finally { try { if (st != null) st.close(); } catch (SQLException e) { e.printStackTrace(); } finally { if (conn != null) try { conn.close(); } catch (SQLException e) { //todo log4j e.printStackTrace(); } } } } }
Page.java
package com.model; /* * 这个Page 可以对所有的 实体进行分页显示 * * curuentPage--->currentRecord * * */ public class Page { private int totalRecord;//总的记录条数 private int totalPage;//总页数 private int currentPage=1;//当前页数 private int currentRecord;//当前记录的条数 private int pageSize=3 ;//每页显示的记录数量,这里默认每页显示6条 // MySQL select *from t_book limit currentRecord , pageSize public int getCurrentPage() { return currentPage; } public void setCurrentPage(int currentPage ) { this.currentPage = currentPage; } public int getTotalPage() { return totalPage; } public void setTotalPage(int totalRecord,int pageSize) { //如果总记录数除以每页显示条数可以整除,商就是总页码 if(totalRecord%pageSize == 0) { totalPage = totalRecord/pageSize; }else { //如果总记录数除以每页显示条数不能整除,商加1才是总页码 totalPage = totalRecord/pageSize+1; } } public int getCurrentRecord() { return currentRecord; } public void setCurrentRecord(int currentPage,int pageSize) { //该页的 第一条记录 =( 当前页号-1)*pageSize; 页号从0开始编制 this.currentRecord = (currentPage-1 )*pageSize; } public int getPageSize() { return pageSize; } public void setPageSize(int pageSize) { this.pageSize = pageSize; } public int getTotalRecord() { return totalRecord; } public void setTotalRecord(int totalRecord) { this.totalRecord = totalRecord; } }
=============servlet================
Book_ShowServlet.java
package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.sql.SQLException; import java.util.ArrayList; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import net.sf.json.JSONSerializer; import com.model.Book; import com.model.BookDTO; import com.model.BookDao; import com.model.Page; @SuppressWarnings("serial") public class Book_ShowServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); BookDao dao=new BookDao(); Page page=new Page(); try { page.setTotalRecord(dao.getBookNum()); page.setCurrentPage(1); page.setPageSize(6); page.setTotalPage(page.getTotalRecord(), page.getPageSize()); page.setCurrentRecord(page.getCurrentPage(), page.getPageSize()); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } String pageindex=request.getParameter("pagehash"); if(pageindex!=null){ int targetpage = Integer.parseInt(pageindex); if(targetpage>=1&&targetpage<=page.getTotalPage()){ page.setCurrentPage(targetpage); page.setCurrentRecord(page.getCurrentPage(), page.getPageSize()); } } ArrayList<Book> books = null; try { books = dao.FindBookByPage(page); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } ArrayList<BookDTO> bookdtos = BookToBookDTO(books); String doc = JSONSerializer.toJSON(bookdtos).toString(); System.out.println("传送JSION"+doc); PrintWriter out = response.getWriter(); out.print(doc); } private ArrayList<BookDTO> BookToBookDTO(ArrayList<Book> books) { //把books 输出成xml文档 //String doc = JSONUtils.valueToString(books); //books---->booksDTO ArrayList<BookDTO> bookdtos = new ArrayList<BookDTO>(); for(int i=0;i<books.size();i++){ BookDTO dto =new BookDTO(); dto.setId(books.get(i).getId()); dto.setName(books.get(i).getName()); dto.setStr_publish_time(books.get(i).getPublish_time().toString()); bookdtos.add(dto); } return bookdtos; } }
LoginServlet.java
package com.servlet; import java.io.IOException; import java.io.PrintWriter; import java.net.URLDecoder; import java.util.regex.Pattern; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class LoginServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); //response.setCharacterEncoding("gb2312"); PrintWriter out = response.getWriter(); String type = request.getParameter("type"); if (type != null) { String isoname = request.getParameter("name"); // String name=new String(isoname.getBytes("iso8859-1"),"UTF-8"); String name = URLDecoder.decode(isoname, "UTF-8"); String password = request.getParameter("password"); if ("ajaxcheck".equals(type)) { if (!name.equals("yzy")) out.print("username " + name + " is not exgist"); } if ("submit".equals(type)) { //通过正则表达式 对密码进行验证 String errorMsg = ""; if (!Pattern.compile("^[0-9a-zA-Z\u4e00-\u9fa5]+$") .matcher(password) .matches()) { errorMsg = "密码必须由数字字母组成"; response.sendRedirect("index.jsp?errorMsg=" + errorMsg); } else { if (name.equals("yzy") && password.equals("123")) response.sendRedirect("show.jsp"); else { errorMsg = "用户名或密码错误"; response.sendRedirect("index.jsp?errorMsg=" + errorMsg); } } } } } }
================jsp===
index.jsp
<%@ 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 'index.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="jquery-1.4.2.min.js"></script> <script> $(function(){ $("#name").blur(function(){ var name=$("#name").val(); // var name=encodeURI($("#name").val()); // var name=encodeURI(encodeURI($("#name").val())); // if(isChinaOrNumbOrLett(name)) $.post("LoginServlet",{ type:"ajaxcheck",name:name},function(data){$("#namecheck").text(data);} ) // else // alert("用户名必须由汉字、字母、数字组成 "); }); }); /* 用途:检查输入字符串是否只由汉字、字母、数字组成 输入: value:字符串 返回: 如果通过验证返回true,否则返回false */ function isChinaOrNumbOrLett(s) {//判断是否是汉字、字母、数字组成 var regu = "^[0-9a-zA-Z\u4e00-\u9fa5]+$"; var re = new RegExp(regu); if (re.test(s)) { return true; } else { return false; } } </script> </head> <body> <center> 欢迎登陆FaceBook <form action="LoginServlet?type=submit" method="post"> 用户名; <input type="text" name="name" id="name" /> <div id="namecheck"></div> 密 码: <input type="password" name="password" /> <div id="passwordcheck"></div> <% String msg = request.getParameter("errorMsg"); if(msg!=null){ out.println(msg); } %> <input type="submit" value="提交" /> </form> <a href="/show.jsp"> aaa</a> </center> </body> </html>
show.jsp
<%@ page language="java" import="java.util.*,com.model.*" pageEncoding="gb2312"%> <% 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 'pageInfo.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="jquery-1.4.2.min.js"></script> <STYLE> A:hover { color:red; text-transform:uppercase; letter-spacing:1cm } </STYLE> <script> var loadFinish = function(data) { var bookinfo = ""; var books = $.parseJSON(data); for(var i=0;i<books.length;i++) { var book = books[i]; bookinfo = bookinfo+ book.id + book.name+book.str_publish_time +"<br/> " ; } $("#list").html(bookinfo); } $(function(){ //设置 超链接不可以使用 //$("a").css({disabled:disabled}); var hash = document.location.hash; //如果不含有# 说明是第一次来的这个页面 if(!hash){showBooksInfo(1);} $("#first").click(function(){ showBooksInfo(1);}); $("#next").click(function(){ showBooksInfo(parseInt( document.location.hash.split("#")[1])+1);}); $("#previous").click(function(){ showBooksInfo(parseInt( document.location.hash.split("#")[1])-1);}); } ); function showBooksInfo(int_pagehash) { //设置地址栏hash document.location.hash = int_pagehash; $.post("Book_ShowServlet",{pagehash:int_pagehash},loadFinish); } </script> </head> <body> <div id="list"> </div> <table> <tr> <td><a id="first" href="javascript:void(0)" >首页</a></td> <td><a id="next" href="javascript:void(0)">下一页 </a></td> <td><a id="previous" href="javascript:void(0)">上一页 </a></td> </tr> </table> </body> </html>
======jar===
json-lib-2.1.jar
ezorph-1.0.3.jar
jstl-1.2.jar
commons-beanutils-1.7.0.jar
commons-collections-3.2.jar
commons-lang-2.3.jar
commons-logging-1.0.4.jar
commons-logging-api-1.1.jar
standard.jar
相关推荐
3. Ajax(Asynchronous JavaScript and XML):虽然名字中包含XML,但现在的Ajax更多的是处理JSON格式的数据。它允许网页在不刷新整个页面的情况下,通过JavaScript向服务器发送异步请求,获取并更新部分页面内容,...
3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...
在本项目"SpringMVC+MyBatis+EasyUI简单分页Demo"中,我们将探讨如何结合这三种技术实现一个具备基本分页功能的Web应用。SpringMVC是Spring框架的一部分,负责处理HTTP请求和响应;MyBatis是一个轻量级的持久层框架...
在“ajax分页demo”这个项目中,我们可以通过将压缩包“ajaxpage”解压并放入Tomcat服务器的webapps目录下,然后启动服务器来运行示例。访问http://localhost:8080/ajaxpage/,可以看到一个动态加载分页效果的实例。...
<h4>Demo 3: Php+jQuery实现AJAX 分页效果 <div id="pagetxt"></div> <div id="demo"> ``` 2. **PHP处理**:在index.php中,通过PHP获取并显示初始的5篇文章,同时计算总页数并传给jPaginate的`count`属性。 ...
"Ajax_Jquery_Demo"这个压缩包文件提供了学习和实践这两个技术的机会。下面,我们将深入探讨Ajax和jQuery的核心概念、用法及其在Web开发中的应用。 ### Ajax Ajax的核心理念是局部刷新,它通过XMLHttpRequest对象...
本DEMO主要展示了如何使用AJAX结合JSON格式的数据实现前端分页。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的形式,同时对人和机器都非常友好。在前后端分离的架构中,JSON...
本文介绍的知识点涵盖了jQuery实现分页功能的多个方面,从AJAX请求的发送、模拟后台数据、分页逻辑的实现到代码的具体参数说明,以及实现过程中可能遇到的优缺点分析。通过示例代码和详细的分析,可以帮助开发者更好...
这个压缩包"jQuery json带分页的动态数据表格代码.zip"包含了一个简单的JavaScript实现,它演示了如何从JSON文件中获取数据并将其显示在一个交互式的表格中。下面我们将详细探讨这一技术。 首先,jQuery是一个广泛...
"jQuery_pagination分页demo"是一个用于实现网页分页功能的示例项目,它基于JavaScript库jQuery,提供了高效且易于使用的分页功能。这个demo包括了首页、末页以及跳转到指定页数的功能,同时还包含了处理分页逻辑的...
本实例主要展示了如何使用 Bootstrap 和 jQuery 创建一个带有分页跳转功能的表格,这在数据展示和管理中非常常见。我们将讨论以下几个关键知识点: 1. **Bootstrap**:Bootstrap 是一个流行的开源 CSS 框架,它提供...
在 "JqueryAPI +easyUI+demo" 中,你可能找到使用jQuery和EasyUI开发的实例,如创建响应式的表格,使用动画效果,以及实现与服务器的交互。这些示例可以帮助你更好地理解如何将这两个库结合使用,以构建功能丰富的...
【dt+ztree+ajax的DEMO】是一个整合了Datatables、ZTree和Ajax技术的示例项目,旨在实现用户在ZTree中进行交互时,通过Ajax异步加载数据到Datatables表格中的功能。这个DEMO展示了如何将这三者有效地结合,以提供一...
例如,使用Ajax加载分页数据、实时聊天、无刷新搜索结果等。 综上所述,jQuery通过其易用的Ajax接口,使得与后台的交互变得更加简单,提高了Web应用的响应速度和用户体验。通过熟练掌握这些知识点,开发者可以构建...
在这个“ajax动态分页的DEMO”中,我们将深入探讨如何结合Ajax、JavaScript和MySQL数据库实现这一功能。 ### 1. Ajax基础 Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下与服务器交换...
在本文中,我们将深入探讨如何使用PHP和Ajax技术实现无刷新分页功能。无刷新分页是一种提升用户体验的方法,它允许用户在不重新加载整个页面的情况下浏览多页内容,从而减少等待时间,提高互动性。 首先,理解无...
在Asp.net中,我们可以使用多种方式实现Ajax分页,如jQuery的Ajax功能、ASP.NET AJAX Control Toolkit中的Paging控件,或者自定义Ajax分页组件。这里我们将主要讨论使用jQuery Ajax和Asp.net MVC或Web Forms的方式。...
- **jQuery表格(table)操作技巧汇总**:学习如何使用jQuery对表格进行各种操作,比如排序、筛选、分页等。 - **jQuery操作json数据技巧汇总**:掌握如何在jQuery中有效地操作JSON数据,包括解析JSON、生成JSON等。 -...
- **浏览器兼容性**:不同浏览器对XMLHttpRequest的支持程度不同,需要使用polyfill(如jQuery的$.ajax)来确保兼容性。 - **缓存控制**:默认情况下,GET请求会被浏览器缓存,可以通过设置请求头禁用缓存。 - **...
`dataSource`参数可以是一个URL,jQuery会使用Ajax发送GET请求获取分页数据。 2. **动态渲染**:接收到服务器返回的数据后,我们需要根据当前页码和每页大小,计算出应该显示的数据范围,然后将这部分数据显示在...