`

JQuery、JSON、Ajax在Servlet中的应用

阅读更多
准备条件:

1、在Java中正确得到JSONObject,需要导入JSON的JAVA支持包“json-lib-2.3-jdk15.jar”,同时需导入 JSON依赖包“commons-logging-1.0.4.jar”,“commons-lang.jar”,“commons- collections.jar”,“commons-beanutils.jar”,“ezmorph-1.0.4.jar”;

2、由于在客户端脚本中要用到JQuery与JSON,需引入"JQuery.js"与"json2.js"。

JAVA 代码如下:

package example;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;

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

import net.sf.json.JSONObject;

public class JasonServlet extends HttpServlet {

/**
* Constructor of the object.
*/
public JasonServlet() {
   super();
}


public void destroy() {
   super.destroy(); // Just puts "destroy" string in log
   // Put your code here
}


public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
   doPost(request, response);
}


public void doPost(HttpServletRequest request, HttpServletResponse response) {
   try {
    String userStr = readJSONString(request);//得到requestContext
    JSONObject jsonObj = JSONObject.fromObject(userStr);//转换成JSONObject
    System.out.println(jsonObj.getInt("userId"));//得到JSONObject的userId值
    System.out.println(jsonObj.getString("name"));

    JSONObject resultJSON = new JSONObject();//构建一个JSONObject
    resultJSON.accumulate("errNum", 1);
    resultJSON.accumulate("errInfo", "成功");

    response.setContentType("application/x-json");//需要设置ContentType 为"application/x-json"
    PrintWriter out = response.getWriter();
    out.println(resultJSON.toString());//向客户端输出JSONObject字符串
    out.flush();
    out.close();
   } catch (Exception e) {
    e.printStackTrace();
   }
}

/**
* Initialization of the servlet. <br>
*
* @throws ServletException
*             if an error occure
*/
public void init() throws ServletException {
   // Put your code here
}
public String readJSONString(HttpServletRequest request){
   StringBuffer json = new StringBuffer();
   String line = null;
   try {
   BufferedReader reader = request.getReader();
   while((line = reader.readLine()) != null) {
   json.append(line);
   }
   }
   catch(Exception e) {
   System.out.println(e.toString());
   }
   return json.toString();
   }

}

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>

   <title>My JSP 'JasonTest.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="js/jquery.min.js"></script>
   <script type="text/javascript" src="js/json2.js"></script>
</head>

<body>
   <script type="text/javascript">
function User(userId, name) {
this.userId = userId;
this.name = name;
}
function requestServlet()
{
var urlStr="http://192.168.1.118:8080/AjaxTest/servlet/JasonServlet";
var user = JSON.stringify(new User(101,"阿猫"));

//调用JQuery提供的Ajax方法
    $.ajax({
    type:"POST",
   url:urlStr,
   data:user,
   dataType: "jason",//此处要设置成jason
   success: callback});//回调函数
   }
function callback(jasonObj)
{
var str = jasonObj;
   var obj = JSON.parse(str);//调用Json2.js中提供的JSON解析器来解析成JSONObject
    alert(obj.errNum);
   }
requestServlet();
</script>
</body>
</html>
3
0
分享到:
评论
2 楼 ae6623 2014-06-08  
楼主,没必要用json2.js,jquery自己就可以去解析json了,你的这段源码不用json2.js的话可以这么写。

function User(userId, name) {
	this.userId = userId;
	this.name = name;
}
function requestServlet() {
	var urlStr = "jsonServlet";
	var user = JSON.stringify(new User(101, "阿猫"));

	//调用JQuery提供的Ajax方法 
	$.ajax( {
		type : "POST",
		url : urlStr,
		data : user,
		dataType : "json",//此处要设置成jason 
		success : function(data){
			alert(data.errNum);
		}
	});//回调函数 
}

 
requestServlet();

1 楼 布衣九久 2010-07-13  
博主的这篇文章对我的帮助很大,谢谢

相关推荐

    Jquery+ajax+json+servlet

    在IT行业中,`jQuery`、`Ajax`、`JSON` 和 `Servlet` 是四个非常重要的技术,它们在构建现代Web应用程序中发挥着关键作用。让我们深入探讨这些技术及其相互之间的结合。 首先,`jQuery` 是一个高效、轻量级的...

    jquery+ajax+json+servlet实例源码

    这个实例源码主要展示了如何在Web开发中利用jQuery库进行AJAX异步请求,与后台Servlet进行数据交互,并通过JSON格式来序列化和反序列化数据。这些技术是现代Web应用中常见的组件,对于前端与后端通信至关重要。 ...

    jquery ajax servlet json简单demo

    【Demo流程】在这个"jquery ajax servlet json简单demo"中,我们可以预期以下流程: 1. 客户端(浏览器)的JavaScript代码使用jQuery的AJAX函数发起请求,请求可能包含一些参数,格式化为JSON。 2. 请求被发送到...

    Servlet利用Ajax,JQuery交互Json

    在Servlet中,我们可以使用`JSONObject`或`JSONArray`等库将Java对象转换为Json字符串,然后通过Ajax发送到客户端,客户端再将接收到的Json数据解析成JavaScript对象,进而更新页面。 具体来说,当用户触发一个事件...

    spring与jquery ajax交互 和 servlet与jquery ajax交互

    在现代Web应用开发中,Spring框架、jQuery库以及Ajax技术是不可或缺的部分。Spring作为一个全面的Java企业级应用框架,提供了强大的MVC(Model-View-Controller)架构支持,而jQuery则简化了JavaScript的DOM操作和...

    jQuery+json+servlet 动态取后台数据

    在本例中,servlet会接收到jQuery发起的请求,然后根据业务逻辑查询数据库或其他数据源,将结果转化为JSON对象,最后将这个对象写入响应体返回给前端。 ```java protected void doGet(HttpServletRequest request, ...

    struts2+jquery+ajax+servlet

    在提供的示例中,“struts2Ajax”可能包含了两个项目,一个使用jQuery、Ajax和Servlet,另一个引入了Struts2。这两个例子可以帮助初学者理解如何在实际开发中整合这些技术。 对于“jQuery+Ajax+Servlet”的示例,...

    JSON servlet实例 Ajax应用

    在Servlet中,我们可以使用`org.json`库(如`org.json.JSONObject`或`org.json.JSONArray`)来创建和解析JSON对象。当客户端发起HTTP请求时,Servlet接收到请求后,可以将Java对象转换为JSON格式,然后以文本形式...

    J2EE中JSON+Jquery_AJAX应用

    在"J2EE中JSON+Jquery_AJAX应用"的示例中,可能涉及到的场景包括动态表格更新、表单验证、分页加载、实时搜索等。例如,用户在搜索框输入关键词时,页面可以通过AJAX发送请求到服务器,服务器返回匹配的JSON数据,...

    springmvc + jquery + ajax + json 异步传递数据

    在SpringMVC中,可以使用`@ResponseBody`注解将方法返回的对象直接转换为JSON字符串,然后通过Ajax返回给客户端。 实现SpringMVC、jQuery、Ajax和JSON的异步传递数据,首先需要配置SpringMVC的DispatcherServlet和...

    Ajax+Servlet 实例

    在Servlet中,可以覆盖`doPost`或`doGet`方法,并设置请求和响应的编码: ```java protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { ...

    JSON+Jquery+servlet+jsp+ajax例子

    通过这个例子,你可以学习到如何结合使用JSON、jQuery、Servlet和AJAX来构建一个动态、交互性强的Web应用,理解前后端通信的过程以及如何在客户端和服务器端之间有效地传递数据。同时,这也是实际开发中常见的一种...

    Ajax JSON处理Servlet传回的值

    在我们的示例中,服务器端的Servlet将处理这个请求,并返回JSON格式的数据。 在Servlet端,我们需要创建一个Servlet来处理HTTP请求。这个Servlet会接收到客户端发送的请求,执行相应的业务逻辑,然后将结果封装成...

    Ajax与servlet后台交互,数据类型JSON

    1. **创建JSON对象**:在Servlet中,可以使用如Gson、Jackson或org.json等库来创建JSON对象。例如,使用Gson库: ```java import com.google.gson.Gson; public class JsonResponse { // 创建一个简单的Java对象 ...

    Servlet jQuery Ajax

    在Servlet中集成jQuery和Ajax,可以创建出更加动态的Web应用。例如,当用户在前端进行某些操作(如填写表单、点击按钮)时,jQuery可以通过Ajax发送HTTP请求到后端Servlet。Servlet接收到请求后处理数据,然后将处理...

    jquery+ajax+jsp+servlet实现二级级联菜单

    ### 使用jQuery、Ajax、JSP与Servlet实现二级级联菜单 #### 一、项目背景与技术栈概述 本文档将详细介绍如何使用jQuery、Ajax、JSP与Servlet来实现一个简单的二级级联菜单功能。该功能常见于许多Web应用程序中,如...

    JSP+Jquery+JSON 集合实现AJAX

    在AJAX场景中,jQuery提供了一种简单的方式来发起异步请求,如`$.ajax()`或`$.getJSON()`函数,可以轻松地从服务器获取数据。 **AJAX** AJAX的核心在于XMLHttpRequest对象,它是浏览器提供的API,用于在后台与...

    jQuery + Ajax + json 级联

    ### jQuery + Ajax + JSON 级联:深入解析与应用 在现代Web开发中,级联...通过深入理解和实践jQuery、Ajax与JSON在级联选择器中的应用,开发者可以构建出更高效、更人性化的Web应用程序,为用户提供更好的交互体验。

    ajax+servlet+jquery+jsp示例

    在"ajax+servlet+jquery+jsp示例"中,我们看到的是一个使用Ajax实现前后台交互的经典应用场景。 1. **jQuery的Ajax函数**:jQuery是一个流行的JavaScript库,它简化了JavaScript的许多操作,包括Ajax请求。在这个...

    Ajax和servlet数据交互小实例

    - **接收请求**:在Servlet中,重写`doGet()`或`doPost()`方法,通过`request`对象获取参数,进行业务逻辑处理。 - **返回数据**:Servlet处理完数据后,可以通过`response.getWriter().print()`将结果写入响应,...

Global site tag (gtag.js) - Google Analytics