Java Servlet JSP使用Gson 输出JSON格式数据
在现代 Web 应用程序中,我们以 JSON 格式从服务器获取数据,并使用前端库或 Angular、React 等框架在 jsp 或 html 页面中显示数据。
这与移动应用程序开发类似。
在这里,我们将看到如何从 servlet 获取 JSON 响应并在 jsp 中显示。
什么是 JSON?
Java S cript Object Notation ( JSON ) 是一种用于交换数据的轻量级格式。
这些是 JSON 的特性。
JSON 可用于在不同平台之间交换数据。
由于轻量级,在不同应用程序(即基于 Web 的应用程序)之间交换信息非常快。
所以知道如何将 JSON 与 servlet 一起使用会很好
在 NetBeans 中创建 Java Web 项目
我们已经知道如何使用 netbeans 创建简单的项目,请参阅使用 maven创建项目和在 netbeans 中创建简单的 Web 项目。
我们创建了一个 Java Web 项目ServletJson
来从 Servlet JSON 获取响应
项目浏览器
在上述项目中
- 为 Studnet 创建 Pojo
- 为地址创建 Pojo
- 为主题创建 Pojo
- 创建 JsonResponse Servlet
- 创建 index.jsp
在 Netbeans 中创建类和页面
索引.Jsp
该文件包含一个点击链接,该链接将转到 url
localhost:8084/ServletJson/jsonResponse
<%@page contentType=”text/html” pageEncoding=”UTF-8′′%>
1 Get Json response from serverJsonResponse.Java
在这里,我们要从 servlet 发送 json 数据响应。
这里有一个链接在 jsp 页面上的链接单击它正在调用/jsonResponse
url,其中 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
对象以在浏览器中写入
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 响应。
标签:
相关文章
-
无相关信息