栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Servlet JSP使用Gson 输出JSON格式数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Servlet JSP使用Gson 输出JSON格式数据

在现代 Web 应用程序中,我们以 JSON 格式从服务器获取数据,并使用前端库或 Angular、React 等框架在 jsp 或 html 页面中显示数据。

这与移动应用程序开发类似。

在这里,我们将看到如何从 servlet 获取 JSON 响应并在 jsp 中显示。

什么是 JSON?

Java S cript Object Notation ( JSON ) 是一种用于交换数据的轻量级格式。

  • JSON 是一种良好的人类可读格式
  • JSON 源自 JavaScript
  • JSON 是用于表示结构化数据的基于文本的格式
  • JSON 是键值对数据
  • JSON 与语言无关

这些是 JSON 的特性。

JSON 可用于在不同平台之间交换数据。

由于轻量级,在不同应用程序(即基于 Web 的应用程序)之间交换信息非常快。

所以知道如何将 JSON 与 servlet 一起使用会很好

在 NetBeans 中创建 Java Web 项目

我们已经知道如何使用 netbeans 创建简单的项目,请参阅使用 maven创建项目和在 netbeans 中创建简单的 Web 项目。

我们创建了一个 Java Web 项目ServletJson来从 Servlet JSON 获取响应

项目浏览器

 

在上述项目中

  1. 为 Studnet 创建 Pojo
  2. 为地址创建 Pojo
  3. 为主题创建 Pojo
  4. 创建 JsonResponse Servlet
  5. 创建 index.jsp
在 Netbeans 中创建类和页面

索引.Jsp

该文件包含一个点击链接,该链接将转到 url

localhost:8084/ServletJson/https://blog.csdn.net/allway2/article/details/jsonResponse

<%@page contentType=”text/html” pageEncoding=”UTF-8′′%>

1         Get Json response from server

JsonResponse.Java

在这里,我们要从 servlet 发送 json 数据响应。
这里有一个链接在 jsp 页面上的链接单击它正在调用/https://blog.csdn.net/allway2/article/details/jsonResponseurl,其中 JsonResponse 的 doGet() 方法被调用。

如何设置 HttpServletResponse 设置正文 Json

要生成 json 响应,我们正在设置response.setContentType("application/json");用于将响应设置为application/json.

这里的响应是 的参考变量HttpServletResponse。

在 servlet 中,学生对象是使用名称性别手机号码和三个科目标记创建的。创建对象后,我们使用gson 库将对象转换为 json 。

response.setContentType("application/json");用于以 json 格式发送响应。

response.setCharacterEncoding("utf-8");是字符编码方式。

我们创建了包含学生 ID、姓名、性别、地址、手机号以及一组科目和地址的学生对象。

我们使用 Gson 对象将此数据发送到 jsp。

该方法 gson.toJson(student);是将对象转换为 json 字符串

然后我们将 json 数据传递给PrintWriter对象以在浏览器中写入

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 package ebhor.servlet;   import com.google.gson.Gson; import java.io.IOException; import java.io.PrintWriter; import java.util.HashSet; import java.util.Set; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse;   @WebServlet(urlPatterns = {"/https://blog.csdn.net/allway2/article/details/jsonResponse"}) public class JsonResponse extends HttpServlet {       @Override     protected void doGet(HttpServletRequest request, HttpServletResponse response)             throws ServletException, IOException {         response.setContentType("application/json");         response.setCharacterEncoding("utf-8");         Student student = new Student(12, "Ram Kumar", "Male", "1234565678");         Subject subject1 = new Subject(1, "Computer Fundamentals");         Subject subject2 = new Subject(2, "Computer Graphics");         Subject subject3 = new Subject(3, "Data Structures");         Set subjects = new HashSet();         subjects.add(subject1);         subjects.add(subject2);         subjects.add(subject3);         student.setSubjects(subjects);         Address address = new Address(1, "Street 23 NN West ", "Bhilai", "Chhattisgarh", "India");         student.setAddress(address);         Gson gson = new Gson();         String jsonData = gson.toJson(student);         PrintWriter out = response.getWriter();         try {             out.println(jsonData);         } finally {             out.close();         }       } }

Student.java

该类包含学生数据,如身份证、姓名、性别、地址、手机号码和多个科目标记。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 package ebhor.servlet;   import java.io.Serializable; import java.util.Set; import java.util.HashSet;   public class Student implements Serializable {       private long id;     private String name;     private String gender;     private Address address;     private Set subjects = new HashSet(0);     private String mobileNo;       public Student() {     }       public Student(long id, String name, String gender, String mobileNo) {         this.id = id;         this.name = name;         this.gender = gender;         this.mobileNo = mobileNo;     }       public long getId() {         return id;     }       public void setId(long id) {         this.id = id;     }       public String getName() {         return name;     }       public void setName(String name) {         this.name = name;     }       public String getGender() {         return gender;     }       public void setGender(String gender) {         this.gender = gender;     }       public Address getAddress() {         return address;     }       public void setAddress(Address address) {         this.address = address;     }       public Set getSubjects() {         return subjects;     }       public void setSubjects(Set subjects) {         this.subjects = subjects;     }       public String getMobileNo() {         return mobileNo;     }       public void setMobileNo(String mobileNo) {         this.mobileNo = mobileNo;     }   }

Subject.java

包含主题的 ID 和名称。

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 package ebhor.servlet;   import java.io.Serializable;   public class Subject implements Serializable {       private long id;     private String name;       public Subject() {     }       public Subject(long id, String name) {         this.id = id;         this.name = name;     }       public long getId() {         return id;     }       public void setId(long id) {         this.id = id;     }       public String getName() {         return name;     }       public void setName(String name) {         this.name = name;     }   }

地址

包含地址字段 id 、街道、城市、州和国家字段

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 package ebhor.servlet;   import java.io.Serializable;   public class Address implements Serializable{       private long id;     private String street;     private String city;     private String state;     private String country;       public Address() {     }       public Address(long id, String street, String city, String state, String country) {         this.id = id;         this.street = street;         this.city = city;         this.state = state;         this.country = country;     }       public long getId() {         return id;     }       public void setId(long id) {         this.id = id;     }       public String getStreet() {         return street;     }       public void setStreet(String street) {         this.street = street;     }       public String getCity() {         return city;     }       public void setCity(String city) {         this.city = city;     }       public String getState() {         return state;     }       public void setState(String state) {         this.state = state;     }       public String getCountry() {         return country;     }       public void setCountry(String country) {         this.country = country;     }   }

结果

这是点击链接运行项目后的 index.jsp 页面,它将在浏览器中显示 json 数据

Jsp页面生成JSON响应

来自 Servlet 的 JSP 页面中的 JSON 响应

上面的 java servlet 返回 JSON 响应。

 

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1004423.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号