使用jQuery+json+servlet动态取后台的list集合的数据。
需要引入json相关的jar包(见附件)
项目结构见附件图
后台servlet:
package com.cxl.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 net.sf.json.JSONArray; import net.sf.json.JSONObject; import com.cxl.model.User; public class UserServlet extends HttpServlet { /** * */ private static final long serialVersionUID = 1L; 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;charset=UTF-8"); //禁用缓存,确保网页信息是最新数据 response.setHeader("Pragma","No-cache"); response.setHeader("Cache-Control","no-cache"); response.setDateHeader("Expires", -10); PrintWriter out = response.getWriter(); System.out.println(System.currentTimeMillis()); List<User> users = new ArrayList<User>(); User user = new User(); user.setUsername("cxl"); user.setPassword("123"); User u = new User(); u.setUsername("lhl"); u.setPassword("1234"); users.add(user); users.add(u); //List转json数组格式 JSONArray jsonArray = JSONArray.fromObject(users); System.out.println(jsonArray.toString()); /* 打印结果为:[{"password":"123","username":"cxl"} ,{"password":"1234","username":"lhl"}] */ out.print(jsonArray.toString()); /* 用json对象格式返回数据 JSONObject jsonObj = new JSONObject(); jsonObj.put("users", users); System.out.println(jsonObj); 打印结果:{"users":[{"password":"1234","username":"cxl"} ,{"password":"1234","username":"lhl"}]} out.print(jsonObj); */ out.flush(); out.close(); } }
在web.xml中配相应的映射
web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <description>This is the description of my J2EE component</description> <display-name>This is the display name of my J2EE component</display-name> <servlet-name>UserServlet</servlet-name> <servlet-class>com.cxl.servlet.UserServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>UserServlet</servlet-name> <url-pattern>/servlet/UserServlet</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app>
js文件:
//jQuery(function{})或$(document).ready(function(){})或$(function(){}); jQuery(function() { setTimeout(getUserInfo,0);//执行getUserInfo函数一次 function getUserInfo() { $.post("http://localhost:8080/jQueryDemo/servlet/UserServlet",null, function call(data){ var str = ""; str = "<table><tr><th>用户名</th><th>密码</th></tr>"; //循环遍历json数组格式的数据 $.each(data, function(index, item) { str += "<tr><td>" + item.username + "</td><td>" + item.password + "</td></tr>"; }); /* 循环遍历json对象格式的数据 $.each(data.users, function(index, item) { str += "<tr><td>" + item.username + "</td><td>“ + item.password + "</td></tr>"; }); */ str += "</table>"; //把数据展现在jsp页面上 $("#userInfo").html(str); },"json"); }; //动态取后台数据 setInterval(getUserInfo, 10000);//每隔10秒钟执行一次getUserInfo函数 });
show.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"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> <script type="text/javascript" src="<%=request.getContextPath() %>/js/jquery-1.7.min.js"></script> <script type="text/javascript" src="<%=request.getContextPath() %>/js/userInfo.js"></script> </head> <body> <center> <h2>用户信息</h2> <div id="userInfo"></div> </center> </body> </html>
相关推荐
在Jquery+Ajax+JSON的组合中,Servlet通常是后台处理数据和业务逻辑的地方。当Ajax发送JSON格式的数据到服务器时,Servlet接收到这些数据,进行处理,然后可能再次返回JSON数据作为响应。 具体实现过程可能如下: ...
这个实例源码主要展示了如何在Web开发中利用jQuery库进行AJAX异步请求,与后台Servlet进行数据交互,并通过JSON格式来序列化和反序列化数据。这些技术是现代Web应用中常见的组件,对于前端与后端通信至关重要。 ...
在本示例中,JSON被用作Servlet与前端JQuery之间传输数据的桥梁。Servlet在后台处理请求,将级联数据转化为JSON格式,然后通过HTTP响应发送到前端。 JQuery是一个强大的JavaScript库,它简化了DOM操作、事件处理、...
Struts2、jQuery、JSON和List是Web开发中常见的技术栈,它们在构建动态、交互式的Web应用程序中扮演着重要角色。这篇博文可能是探讨如何在Struts2框架中结合jQuery和JSON来处理List类型的数据。 Struts2是一个流行...
实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和相关映射。在`web.xml`中,你需要定义一个Servlet来处理所有的HTTP请求。然后,在SpringMVC的配置文件中,设置视图...
在AJAX场景中,jQuery提供了一种简单的方式来发起异步请求,如`$.ajax()`或`$.getJSON()`函数,可以轻松地从服务器获取数据。 **AJAX** AJAX的核心在于XMLHttpRequest对象,它是浏览器提供的API,用于在后台与...
4. **数据处理与更新**:接收到服务器返回的JSON数据后,使用`$.each`遍历数据,动态生成并添加新的下拉列表选项。 5. **图像预加载与展示**:根据用户的最终选择,动态生成图片文件名并预加载图片,确保图片在展示...
Struts2、jQuery、Ajax和Servlet是Web开发中常见的技术栈,它们共同构建了动态、交互式的用户界面。本文将详细解析这些技术及其在给定示例中的应用。 首先,Struts2是一个基于MVC(Model-View-Controller)设计模式...
jQuery提供了$.ajax()、$.get()和$.post()等方法,方便地实现Ajax(Asynchronous JavaScript and XML)请求,实现在后台与服务器交换数据并局部更新页面。 在jQuery中,$.ajax()是最强大的异步请求方法,它可以配置...
Ajax使得页面无刷新更新成为可能,jQuery简化了JavaScript代码,Servlet作为Java后端处理逻辑,JSON提供了高效的数据交换方式,而JSP则可能用于构建动态页面结构。这个实例对于学习和理解Web开发中的数据交互流程...
在现代Web开发中,Servlet、Ajax、JQuery和Json是不可或缺的技术组件,它们共同构建了高效、动态的用户界面。让我们深入探讨这些技术及其在实际应用中的交互。 Servlet是Java Web开发中的一个核心部分,它是一种...
在IT行业中,Java、Ajax、JSON和jQuery是四个非常关键的技术元素,它们在构建现代Web应用程序时发挥着重要作用。这个“java+ajax+json+jquery完整实例”提供了一个实际的应用场景,展示了如何将这些技术有效地结合在...
在Web开发中,Servlet和...Servlet在后台生成数据,以JSON格式返回,而jQuery在前端接收到数据后,动态填充到表格中,为用户提供实时更新的界面。这种方式不仅提高了用户体验,还降低了服务器与客户端之间的通信成本。
在选择文件后,SWFUpload会将文件队列发送到后台服务器,而jQuery则负责更新页面上的状态显示,如上传进度、成功或失败的提示等。 Servlet是Java EE的一部分,用于处理服务器端的请求。在这个场景下,Servlet接收...
这个系统的核心技术栈包括BootStrap、Jsp、Servlet、Jdbc、Mysql、Jquery和Ajax,这些技术共同构建了一个功能完备的后台管理系统。下面将详细解释这些技术及其在新闻发布系统中的作用。 1. **BootStrap**:...
在JSP中,使用jQuery和AJAX进行前后台交互是一种常见的技术手段,特别是在处理动态数据和页面局部更新时。在本示例中,主要讲解如何通过AJAX将JSON格式的参数传递给服务器,并接收服务器返回的JSON数据。 首先,...
本Demo将展示如何将`jQuery Uploadify`与Java的Servlet技术进行整合,实现在后台服务器上处理文件上传的流程。 首先,我们需要了解`jQuery Uploadify`的核心概念。Uploadify通过AJAX和Flash技术实现了无刷新的文件...
Servlet、jQuery和Ajax是Web开发中的重要技术,它们在构建动态、交互性强的网页应用中起着关键作用。这篇博文将深入探讨这三个概念及其相互之间的关系。 Servlet是Java平台上的一个标准,它允许开发者创建服务器端...
在本项目中,Servlet承担了与后台数据库交互的角色,它处理来自Datatables的Ajax请求,执行SQL查询(如SELECT、INSERT、UPDATE、DELETE)来完成数据的增删改查操作,并将结果以JSON格式返回给前端。 SQLite3则是一...