Servlet解析JSON数据和发送JSON数据

package com.jcuckoo.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;
	}
}


package com.jcuckoo.servlet;

import java.io.IOException;
import java.io.Writer;
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.jcuckoo.pojos.User;
import com.jcuckoo.service.UserService;
import com.jcuckoo.util.JsonReader;
import net.sf.json.JSONObject;
@WebServlet("/LoginUserServlet")
public class LoginUserServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public LoginUserServlet() {
		super();
	}

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

	protected void doPost(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		// response.setContentType("text/html");
		// 设置字符编码为UTF-8, 这样支持汉字显示
		// response.setCharacterEncoding("UTF-8");

		response.setContentType("text/html;charset=utf-8");

		/** 设置响应头允许ajax跨域访问 **/
		response.setHeader("Access-Control-Allow-Origin", "*");
		/* 星号表示所有的异域请求都可以接受, */
		response.setHeader("Access-Control-Allow-Methods", "GET,POST");

		Writer out = response.getWriter();


		JSONObject json=JsonReader.receivePost(request);
		System.out.println(json);
		
		UserService userService=new UserService();
		
		//将建json对象转换为java对象
		User loginUser = (User)JSONObject.toBean(json,User.class);
		User user = userService.LoginUser(loginUser);
		JSONObject jsonObject=new JSONObject() ;
		if(user!=null){
			//将java对象转换为json对象
			jsonObject.put("user", JSONObject.fromObject(user));
			jsonObject.put("message", "用户登录成功!");
		}else{

			jsonObject.put("message", "用户登录失败!");
		}
		out.write(jsonObject.toString());
		out.flush();
	}
}

<%@ page language="java" contentType="text/html; charset=utf-8"%>
<!DOCTYPE html >
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Servlet-jCuckoo</title>
<script type="text/javascript" src="js/jquery-3.1.1.min.js"></script>
</head>
<body>
	<form >
		用户名:<input type="text" id="userName"/><br/>
		密码:<input type="password" id="userPwd"/><br/>
		<input type="button" value="登录" id="sender"> 
	</form>
	<div id="messageDiv"></div>
	
	<script>
	$('#sender').click(function(){
		var userName=document.getElementById('userName').value;
		var userPwd=document.getElementById('userPwd').value;
		var user={userName:userName,userPwd:userPwd};
		var url="LoginUserServlet";
		
		$.post(url, JSON.stringify(user), function(data) {
			  console.log(data);
             $("#messageDiv").html(data);
             var json=JSON.parse(data);
             alert(json.message);
         }); 
		 /* $.ajax({
			type:'post',
			url:url,
			dataType:"json",			
			data:JSON.stringify(user),
			success: function (data) {
				var user=data.user;
				 $("#messageDiv").html(JSON.stringify(user));
	             alert(data.message);
	        },
	        error: function (data) {
	             alert(data.message);
	             $("#messageDiv").html("");
	        }
		});  */
		
	});
	</script>
</body>
</html>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值