Java EE form表单发送Json、Servlet接收Json并发送Json

Java EE form表单发送Json、Servlet接收Json并发送Json


1.需要的jar包


commons-beanutils-1.8.3.jar
commons-collections-3.2.1-1.0.0.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
ezmorph-1.0.6.jar
json-lib-2.4-jdk15.jar

2.ajax使form传送json


<form onsubmit="return false" action="#" method="post" id="form1">
	<input type="text" name="name1">
	<input type="text" name="name2"><br/>
	
	<input type="radio" value="" name="gender">
	<input type="radio" value="" name="gender"><br/>
	
	<input type="checkbox" value="0" name="game0">game0
	<input type="checkbox" value="1" name="game0">game1
	<input type="checkbox" value="2" name="game0">game2<br/>
	

    <input type="button" value="submit" onclick="login()">
</form>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script type="text/javascript">
    function login() {
    	console.log("123")
        $.ajax({
        //几个参数需要注意一下
            type: "POST",//方法类型
            dataType: "json",//预期服务器返回的数据类型
            url: "/24-request/JsonServlet" ,//url
            contentType:"application/json",	
            data:JSON.stringify($('form').serializeObject()),
            success: function (result) {
                console.log(result);//打印服务端返回的数据(调试用)
                if (result.resultCode == 200) {
                    alert("SUCCESS");
                }
                ;
            },
            error : function() {
                alert("异常!");
            }
        });
    }
    $.fn.serializeObject = function() {
        var o = {};
        var a = this.serializeArray();
        $.each(a, function() {
            if (o[this.name]) {
                if (!o[this.name].push) {
                    o[this.name] = [ o[this.name] ];
                }
                o[this.name].push(this.value || '');
            } else {
                o[this.name] = this.value || '';
            }
        });
        return o;
    };
</script>

3.Servlet接收Json、发送Json


此部分参考博客

package com.closer.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import javax.servlet.http.HttpServletRequest;
import net.sf.json.JSONObject;
 
public class JsonReader {
	public static JSONObject receivePost(HttpServletRequest request) throws IOException, UnsupportedEncodingException {
 
		// 读取请求内容
		BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream(),"utf-8"));
		String line = null;
		StringBuilder sb = new StringBuilder();
		while ((line = br.readLine()) != null) {
			sb.append(line);
		}
		//将json字符串转换为json对象
		JSONObject json=JSONObject.fromObject(sb.toString());
		return json;
	}
}

事先创建好User类,用于将传过来的Json赋值给User类对象

package com.closer.request;

import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import com.closer.util.JsonReader;

import net.sf.json.JSONObject;

@WebServlet("/JsonServlet")
public class JsonServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    public JsonServlet() {
        super();
    }

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		response.setContentType("application/json;charset=utf-8");
		 
		/** 设置响应头允许ajax跨域访问 **/
		response.setHeader("Access-Control-Allow-Origin", "*");
		/* 星号表示所有的异域请求都可以接受, */
		response.setHeader("Access-Control-Allow-Methods", "GET,POST");
		System.out.println(response.toString());
		JSONObject json=JsonReader.receivePost(request);
		System.out.println(json);
		
		User user = (User)JSONObject.toBean(json, User.class);
		System.out.println(user.toString());
		
		JSONObject jsonObject=new JSONObject();
		response.setStatus(200);
		jsonObject.put("user", JSONObject.fromObject(user));
		jsonObject.put("message", "用户登录成功!");
		response.getWriter().write(jsonObject.toString());
		response.getWriter().flush();
	}

}

# 参考

  1. Servlet解析JSON数据和发送JSON数据
  2. form表单提交json格式数据
  3. Ajax提交表单数据的几种方式
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值