Java-sevlet利用JSON传递数据

JSON

JSON的全称是JavaScript Object Notation,即JS对象表示法,是一种数据存储的方式,本质上是JS中的自定义对象,不同于其他的内置对象(Number,String,Array,Date,Math)。其格式如下所示:

var gareen = {"name":"盖伦","hp":616};

这样就定义了一个JSON对象,JSON对象由 名称/值对组成 名称和值之间用冒号:隔开;名称必须用双引号" 包含起来,值可以是任意javascript数据类型,字符串,布尔,数字 ,数组甚至是对象,不同的名称/值对之间用 逗号 , 隔开 。

此外,有的时候我们需要将一个JSON对象转化为一个字符串,这样可以显示JSON对象的内容,使用 JSON.stringify() 函数把它转换为字符串。 比如,我们在HTML网页中,将一组数据以JSON的格式发送给servlet:

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<title>用AJAX以JSON方式提交数据</title> 
<script type="text/javascript" src="jquery.min.js"></script> 
</head> 
<body> 
    <form > 
       名称:<input type="text" id="name"/><br/> 
        血量:<input type="text" id="hp"/><br/> 
        <input type="button" value="提交" id="sender">  
    </form> 
    <div id="messageDiv"></div> 
       
    <script> 
    $('#sender').click(function(){ 
        var name=document.getElementById('name').value; 
        var hp=document.getElementById('hp').value; 
        var hero={"name":name,"hp":hp}; 
        var url="submitServlet"; 
           
        $.post(
                url,
                {"data":JSON.stringify(hero)},
                function(data) { 
                     alert("提交成功,请在Tomcat控制台查看服务端接收到的数据");
         });  
 
    }); 
    </script> 
</body> 
   
</body>
</html>

其中发送数据的部分,我们使用了 借助JQuery的AJax,所谓AJax,指的是异步刷新,也就是网页偷偷的创建一个“小线程”和服务器进行交互,这里我们利用AJax,使用post的方式,只要按下提交按钮,就会偷偷把数据发送给服务器,url指的是发送的地址,{**}里面的就是JSON格式的数据,function表示响应函数,当servlet返回数据之后,执行这个函数的内容。

servlet

servlet是指运行在服务器的web应用中的程序,接收到浏览器html网页发送的请求resuqest之后,对数据进行业务逻辑上的处理,然后返回给浏览器数据处理的结果。而这里,我们接收到的是HTML页面发送过来的JSON格式的数据,我们先将接收到的数据在转化成JSON对象(因为发送过来的时候将JSON对象字符串化了,因此要还原),然后在服务器上显示出发送过来的内容。

import java.io.IOException;
 
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 SubmitServlet extends HttpServlet { 
    protected void service(HttpServletRequest request, HttpServletResponse response) 
            throws ServletException, IOException {
        String data =request.getParameter("data");
         
        System.out.println("服务端接收到的数据是:" +data);
  
        JSONObject json=JSONObject.fromObject(data); 
          
        System.out.println("转换为JSON对象之后是:"+ json);
           
        Hero hero = (Hero)JSONObject.toBean(json,Hero.class); 
        System.out.println("转换为Hero对象之后是:"+hero);
    } 
} 

首先获得data属性对应的值,因为这个值是JSON对象的字符串形式,因此我们将它转化为JSON对象,这样就可以对数据进行解析,然后处理并返回了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值