茫茫網海中的冷日 - 對這文章發表回應
茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1729598 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
IMG_60D_00191.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

對這文章發表回應

發表限制: 非會員 可以發表

發表者: 冷日 發表時間: 2019/6/16 11:41:48

Servlet解析JSON數據和發送JSON數據

2017年03月16日 13:11:12 忙碌的布谷鳥 閱讀數 31020
版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/guoquanyou/article/details/62421318

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();
}
}


%>
<!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" /><br/>
密碼:<input type="password" /><br/>
<input type="button" value="登錄" >
</form>
<div ></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>



原文出處:Servlet解析JSON数据和发送JSON数据 - jCuckoo的专栏 - CSDN博客
內容圖示
url email imgsrc image code quote
樣本
bold italic underline linethrough   












 [詳情...]
validation picture

注意事項:
預覽不需輸入認證碼,僅真正發送文章時才會檢查驗證碼。
認證碼有效期10分鐘,若輸入資料超過10分鐘,請您備份內容後,重新整理本頁並貼回您的內容,再輸入驗證碼送出。

選項

Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|