`

json的使用

    博客分类:
  • ajax
 
阅读更多
注意:要将json的相关类和json.js事先放到相关目录下面

1.AddUser.java
 
package com.servlet;

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 org.json.JSONObject;

public class AddUser extends HttpServlet{

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		StringBuffer json = new StringBuffer();
		String line = null;
		BufferedReader reader = request.getReader();
		while((line = reader.readLine())!=null){
			line = new String(line.getBytes("ISO8859-1"),"utf-8");
			json.append(line);
		}
		JSONObject jsonObject = null;
		try{
			jsonObject = new JSONObject(json.toString());
		}catch(Exception e){
			e.printStackTrace();
		}
		String username = null;
		String password = null;
		String department = null;
		String headship = null;
		String sex = null;
		String old = null;
		try{
			username = jsonObject.getString("username").toUpperCase();
			password = jsonObject.getString("password");
			department = jsonObject.getString("department");
			headship = jsonObject.getString("headship");
			sex = jsonObject.getString("sex");
			old = jsonObject.getString("old")+"岁";
			if(sex.equals("1")){
				username = username+"先生";
				sex = "男";
			}else{
				username = username+"女士";
				sex = "女";
			}
			jsonObject.put("username", username);
			jsonObject.put("password", password);
			jsonObject.put("department", department);
			jsonObject.put("headship", headship);
			jsonObject.put("sex", sex);
			jsonObject.put("old", old);
			
		}catch(Exception e){
			e.printStackTrace();
		}
		response.setContentType("text/html");
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		out.println(jsonObject.toString());
		out.flush();
		out.close();
	}
}


2.index.html
 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
	<head>
		<title>index.html</title>

		<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
		<meta http-equiv="description" content="this is my page">
		<meta http-equiv="content-type" content="text/html; charset=UTF-8">
		<script type="text/javascript" src="json.js">
</script>

		<script type="text/javascript">
var xmlhttp;
function createXmlHttpResquest() {
	if (window.ActiveXObject) {
		xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else if (window.XMLHttpRequest) {
		xmlhttp = new XMLHttpRequest();
	}
}
function addNew() {
	var username = document.getElementById("username").value;
	var password = document.getElementById("password").value;
	var department = document.getElementById("department").value;
	var headship = document.getElementById("headship").value;
	var sex = document.getElementById("sex").value;
	var old = document.getElementById("old").value;

	if (username == "") {
		window.alert("请输入姓名!");
		return;
	}
	if (password == "") {
		window.alert("请输入密码!");
		return;
	}
	if (department == "") {
		window.alert("请输入部门!");
		return;
	}
	if (headship == "") {
		window.alert("请输入职务!");
		return;
	}
	if (old == "") {
		window.alert("请输入年龄!");
		return;
	}

	var newUser = new User(username, password, department, headship, sex, old);
	var userAsJSON = JSON.stringify(newUser);
	createXmlHttpResquest();
	xmlhttp.open("GET", "addUser", true);
	xmlhttp.onreadystatechange = processor;
	xmlhttp.send(userAsJSON);
}

function processor() {
	if (xmlhttp.readyState == 4) {
		if (xmlhttp.status == 200) {
			var user = JSON.parse(xmlhttp.responseText);
			var username = user.username;
			var password = user.password;
			var department = user.department;
			var headship = user.headship;
			var sex = user.sex;
			var old = user.old;
			updateTable(username, password, department, headship, sex, old);
		}
	}
}

function User(username, password, department, headship, sex, old) {
	this.username = username;
	this.password = password;
	this.department = department;
	this.headship = headship;
	this.sex = sex;
	this.old = old;
}

function updateTable(username, password, department, headship, sex, old) {
	document.all.userTable.insertRow(-1);
	var rows = document.all.userTable.rows.length;
	document.all.userTable.rows[rows - 1].bgcolor = "#ffffff";
	document.all.userTable.rows[rows - 1].align = "center";
	//在插入的一行中插入六列
	document.all.userTable.rows[rows - 1].insertCell(-1);
	document.all.userTable.rows[rows - 1].insertCell(-1);
	document.all.userTable.rows[rows - 1].insertCell(-1);
	document.all.userTable.rows[rows - 1].insertCell(-1);
	document.all.userTable.rows[rows - 1].insertCell(-1);
	document.all.userTable.rows[rows - 1].insertCell(-1);

	document.all.userTable.rows[rows - 1].cells[0].innerText = username;
	document.all.userTable.rows[rows - 1].cells[1].innerText = password;
	document.all.userTable.rows[rows - 1].cells[2].innerText = department;
	document.all.userTable.rows[rows - 1].cells[3].innerText = headship;
	document.all.userTable.rows[rows - 1].cells[4].innerText = sex;
	document.all.userTable.rows[rows - 1].cells[5].innerText = old;
}
</script>
	</head>

	<body>
		<h2>
			AJAX+JSON示例
		</h2>
		<hr>
		姓名:
		<input name="userName" id="username" type="text">
		<br>
		密码:
		<input name="password" id="password" type="text">
		<br>
		部门:
		<input name="department" id="department" type="text">
		<br>
		职务:
		<input name="headship" id="headship" type="text">
		<br>
		性别:
		<SELECT id="sex">
			<option value="1">
				男
			</option>
			<option value="2">
				女
			</option>
		</SELECT>
		<br>
		年龄:
		<input name="old" id="old" type="text">
		<br>
		<input type="button" name="btn" value="新增用户" onClick="addNew()">
		<br>
		<br>
		<TABLE id="userTable" border="1" width="500px" bgcolor="#eeeeee">
			<TR>
				<TD align="center">
					姓名
				</TD>
				<TD align="center">
					密码
				</TD>
				<TD align="center">
					部门
				</TD>
				<TD align="center">
					职务
				</TD>
				<TD align="center">
					性别
				</TD>
				<TD align="center">
					年龄
				</TD>
			</TR>
		</TABLE>
	</body>
</html>


3.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">
	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>

	<servlet>
		<servlet-name>addUser</servlet-name>
		<servlet-class>com.servlet.AddUser</servlet-class>
	</servlet>
	<servlet-mapping>
		<servlet-name>addUser</servlet-name>
		<url-pattern>/addUser</url-pattern>
	</servlet-mapping>
</web-app>


分享到:
评论

相关推荐

    jquery-json使用

    《jQuery-JSON使用详解》 在Web开发中,数据交换是不可或缺的一部分,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,因其简洁、易读性而被广泛应用。jQuery库提供了一套方便的API来处理JSON...

    C# NewtonJson使用说明

    **C# 中的NewtonJson使用详解** 在C#开发中,处理JSON数据是常见的任务,而Newtonsoft.Json(也称为Json.NET)是一个广泛使用的库,它提供了强大的JSON序列化和反序列化功能。本文将详细介绍如何使用Newtonsoft....

    JSON使用

    在标题“JSON使用”中,我们可以推测这篇博文可能涵盖了JSON的基本用法、解析和序列化的方法,以及在不同编程语言中的应用。在实际开发中,JSON常用于前后端数据交互,因为它具有结构清晰、易读性强的特点。 描述中...

    Json使用需要依赖包

    针对“Json使用需要依赖包”的主题,我们将详细介绍在不同编程语言中使用JSON所需的依赖包。 1. **Java** 在Java中,处理JSON的主要库有Jackson、Gson和org.json。Jackson是目前最流行的Java JSON库,它提供了高效...

    json使用jar包

    在描述中提到的是“json使用jar包”,这通常指的是这些库中的一个或多个。例如,Jackson提供了`jackson-databind`、`jackson-core`和`jackson-annotations`这三个主要的jar包,用于JSON的序列化和反序列化。 1. **...

    asp.net json使用

    ASP.NET JSON 使用详解 在现代Web开发中,JSON(JavaScript Object Notation)已经成为数据交换的主要格式,尤其是在异步通信(Ajax)中。ASP.NET,作为微软的Web应用程序框架,提供了全面的支持来处理JSON序列化、...

    Json 使用简单实例(VC)

    在这个"Json 使用简单实例(VC)"中,我们将探讨如何在Visual C++(VC)环境下使用JSON。 首先,为了在VC(如VS2008)中处理JSON,我们需要一个JSON库。常见的C++ JSON库有RapidJSON、nlohmann/json、jsoncpp等。在...

    java配合json使用的JAR

    本压缩包包含的"java配合json使用的JAR"提供了相关的支持,版本配套9个JAR,这可能包括了这些库的不同组件或者不同版本。 1. **Jackson**: Jackson是Java中最流行的JSON库之一,由FasterXML团队开发。它提供了...

    json使用手册 帮助文档

    这个“json使用手册帮助文档”显然是为了指导用户如何有效地使用和理解JSON格式。下面我们将深入探讨JSON的基本概念、结构以及在实际应用中的相关知识点。 1. JSON的基础概念 - JSON是一种独立于语言的数据格式,...

    json使用文档

    json使用教程

    linux c语言封装的json使用

    本篇文章将深入探讨如何在Linux系统下使用C语言封装的JSON库——cJSON,帮助开发者轻松地进行JSON数据的打包和解析。 cJSON是一个小型、快速且易于使用的JSON解析器,由David John Millman编写。它为C程序员提供了...

    json使用解读.rar

    本压缩包“json使用解读.rar”是针对JSON在实际使用过程中可能遇到的问题的集合,包含了源文件、测试代码以及详细的说明文档,旨在帮助开发者更好地理解和处理JSON相关的问题。 1. **JSON格式规范**:JSON格式要求...

    JSON使用的jar包

    这个"JSON使用的jar包"压缩文件包含了处理JSON所需的一些关键库,帮助开发者解析、生成和操作JSON数据。以下是一些主要的JSON库以及它们的功能和使用方法: 1. **Jackson**:Jackson是Java最流行的JSON库之一,提供...

    json使用-bookmanager

    "json使用-bookmanager"这个主题可能涉及到一个名为"BookManager"的项目或应用,它使用JSON来处理和管理书籍数据。 在"BookManager"中,JSON可能扮演以下几个角色: 1. 数据存储:JSON格式可以用于存储书籍信息,...

    json使用的jar包

    标题"json使用的jar包"表明我们将讨论的是与JSON操作相关的Java库,通常是一个包含处理JSON功能的JAR文件。在Java开发中,最常用的JSON库有Gson、Jackson、org.json和Fastjson等。 1. Gson:Google提供的一个开源库...

    json使用系列分享一

    在“json使用系列分享一”中,我们可以期待探讨以下关于JSON的知识点: 1. JSON的基本结构:JSON由键值对组成,键(key)总是字符串,而值(value)可以是各种类型,包括字符串、数字、布尔值、数组、对象或null。...

    json使用的全部jar包

    "json使用的全部jar包"指的是在进行Java项目开发时,为了支持JSON操作所需要引入的一系列Java库文件。这些.jar包通常包含了处理JSON解析、生成、序列化和反序列化的类和方法。下面我们将深入探讨JSON处理的常用库...

    C# JSON库 Newtonsoft.Json 使用范例源码(双向动态生成支持嵌套,无需事先定义类)

    C# JSON库 Newtonsoft.Json 使用范例源码(双向动态生成,无需事先定义类): 1. 将字典类型序列化成Json字符串 2. 将Json字符串,反序列化成字典类型 3. 动态添加字典类型并序列化为Json字符串 4. 根据Json字符...

    json使用例子

    在"json使用例子"这个主题中,我们可以深入探讨以下几个关键知识点: 1. JSON的基本结构:JSON数据以键值对(key-value pairs)的形式存在,类似于JavaScript的对象。键(key)是字符串,用双引号包围;值(value)...

    Java中使用Json

    本文将深入探讨在Java中如何使用JSON,以及其在实际开发中的应用场景。 首先,Java中处理JSON的主要工具有两个:Jackson和Gson。这两个库提供了API,可以帮助我们轻松地将Java对象转换为JSON字符串,以及将JSON字符...

Global site tag (gtag.js) - Google Analytics