如何上传json格式的数据到服务器?

发布网友 发布时间:2022-04-23 07:13

我来回答

5个回答

懂视网 时间:2022-05-15 01:34

这次给大家带来使用JSON传输数据到服务端,的注意事项有哪些,下面就是实战案例,一起来看一下。

准备Hero.java

public class Hero { 
 private String name; 
 private int hp; 
 public String getName() { 
 return name; 
 } public void setName(String name) { 
 this.name = name; 
 } 
 public int getHp() { 
 return hp; 
 } 
 public void setHp(int hp) { 
 this.hp = hp; 
 } 
 @Override 
 public String toString() { 
 return "Hero [name=" + name + ", hp=" + hp + "]"; 
 } 
} 
public class Hero {
 private String name;
 private int hp;
 public String getName() {
 return name;
 }
 public void setName(String name) {
 this.name = name;
 }
 public int getHp() {
 return hp;
 }
 public void setHp(int hp) {
 this.hp = hp;
 }
 @Override
 public String toString() {
 return "Hero [name=" + name + ", hp=" + hp + "]";
 }
}submit.html文件
[html] view plain copy print?<!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> 
 <p id="messagep"></p> 
 <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> 
<!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> 
 <p id="messagep"></p> 
 <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>

JSON.stringify函数的作用是将一个javascript对象,转换为JSON格式的字符串。

准备SubmitServlet用来接收数据

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

1. 获取浏览器提交的字符串

2. 把字符串转换为JSON对象

3. 把JSON对象转换为Hero对象

最后配置web.xml

<?xml version="1.0" encoding="UTF-8"?> 
<web-app> 
 <servlet> 
 <servlet-name>SubmitServlet</servlet-name> 
 <servlet-class>SubmitServlet</servlet-class> 
 </servlet> 
 <servlet-mapping> 
 <servlet-name>SubmitServlet</servlet-name> 
 <url-pattern>/submitServlet</url-pattern> 
 </servlet-mapping> 
</web-app> 
<?xml version="1.0" encoding="UTF-8"?>
<web-app>
 <servlet>
 <servlet-name>SubmitServlet</servlet-name>
 <servlet-class>SubmitServlet</servlet-class>
 </servlet>
 <servlet-mapping>
 <servlet-name>SubmitServlet</servlet-name>
 <url-pattern>/submitServlet</url-pattern>
 </servlet-mapping>

</web-app>启动tomcat访问http://127.0.0.1:8080/项目名/submit.html

在tomcat控制台看到传来的数据

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

vue axios调用接口时请求超时

很重要的9个使用技巧(附代码)

热心网友 时间:2022-05-14 22:42

首先,你可以手动拼json。然后是人ajax的方式,或者window.loacation=url的方式向服务端提交。
其次,但是不管你怎么拼,都不能发送图片等文件到服务器!
这并不是说json格式不行,而是在页面上发送信息到服务端的时候文件类的是由浏览器自动转为流的,而你在页面上的任何脚本都不能读取文件!

热心网友 时间:2022-05-15 00:00

图片和文字都可以封装成对象传送。通过jsonObject对象

热心网友 时间:2022-05-15 01:34

json就是一个字符串。

把字符串发送到服务器有很多种方式。

http 可以用ajax
tcp/udp 可以用socket

你到底是那种协议?追问麻烦您稍微讲解一下ajax 我知道那个是什么异步的 js xml 但是一直理解很不透彻,
叫我说也说不上来。。。。 虽然一直在写代码。 我用的是 HttpServlet -- java写的

追答HttpServlet 就是http协议啦

先说怎么用

$.ajax({
type: 'POST',
url:'${model}${changeClass}',//你的url
data:json,//你的json数据
dataType:"json",
cache: false,
success: function(data){
alert(data);//发送json之后,服务器的返回

}
});

详见:http://api.jquery.com/jQuery.ajax/

原理:度娘

热心网友 时间:2022-05-15 03:26

只要能转化成字符串都可以传过去,只要体会这个点就能理解很多了,图片那些也是可以转化成字符串信息得

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com