免费网站制作新闻,网上店铺怎么开通,h5开发的app,长沙网站搜索引擎优化1、创建实体类#xff0c;模拟实体对象
创建一个类#xff0c;模拟数据数据库来存储数据#xff0c;这个类就叫Person。 其代码如下#xff1a;
package com.restful;public class Person {private String name;private String about;private int birthYear;public Perso…1、创建实体类模拟实体对象
创建一个类模拟数据数据库来存储数据这个类就叫Person。 其代码如下
package com.restful;public class Person {private String name;private String about;private int birthYear;public Person(String name, String about, int birthYear) {this.name name;this.about about;this.birthYear birthYear;}public String getName() {return name;}public String getAbout() {return about;}public int getBirthYear() {return birthYear;}
}2、创建数据类模型数据库存储
再创建一个类假设能够访问我们的数据库类名字就叫DataStore。 编写如下代码
package com.restful;import java.util.HashMap;
import java.util.Map;public class DataStore {//Map of names to Person instances.private MapString, Person personMap new HashMap();//this class is a singleton and should not be instantiated directly!private static DataStore instance new DataStore();public static DataStore getInstance(){return instance;}//private constructor so people know to use the getInstance() function insteadprivate DataStore(){//dummy datapersonMap.put(Ada, new Person(Ada, Ada Lovelace was the first programmer., 1815));personMap.put(Kevin, new Person(Kevin, Kevin is the author of HappyCoding.io., 1986));personMap.put(Stanley, new Person(Stanley, Stanley is Kevins cat., 2007));}public Person getPerson(String name) {return personMap.get(name);}public void putPerson(Person person) {personMap.put(person.getName(), person);}
}3、创建Servlet接收请求并访问数据对象
接下来我们创建一个Servlet类类名就叫做PersonServlet。 修改代码如下
package com.servlet;import java.io.IOException;
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 org.json.JSONObject;import com.restful.DataStore;
import com.restful.Person;
/*** Servlet implementation class PersonServlet*/
WebServlet(/PersonServlet)
public class PersonServlet extends HttpServlet {private static final long serialVersionUID 1L;/*** see HttpServlet#HttpServlet()*/public PersonServlet() {super();// TODO Auto-generated constructor stub}/*** see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)*/protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubString requestUrl request.getRequestURI();String name requestUrl.substring(requestUrl.lastIndexOf(/)1);System.out.println(name);Person person DataStore.getInstance().getPerson(name);if(person ! null){String json {\n;json \name\: \ person.getName() \ ,\n;json \about\: \ person.getAbout() \,\n;json \birthYear\: \ person.getBirthYear() \\n;json };response.getOutputStream().println(json);}else{//That person wasnt found, so return an empty JSON object. We could also return an error.response.getOutputStream().println({});}}/*** see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)*/protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {// TODO Auto-generated method stubString name request.getParameter(name);String about request.getParameter(about);int birthYear Integer.parseInt(request.getParameter(birthYear));DataStore.getInstance().putPerson(new Person(name, about, birthYear));}}上述创建的Servlet类包含了doGet函数和doPost函数。
4、配置一个Servlet映射
创建servlet后我们修改一下我们的web.xml做一个映射如下所示
?xml version1.0 encodingUTF-8?
web-app xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xmlnshttp://xmlns.jcp.org/xml/ns/javaee xsi:schemaLocationhttp://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd idWebApp_ID version4.0display-nameHelloJSP/display-namewelcome-file-listwelcome-fileindex.html/welcome-filewelcome-fileindex.jsp/welcome-filewelcome-fileindex.htm/welcome-filewelcome-filedefault.html/welcome-filewelcome-filedefault.jsp/welcome-filewelcome-filedefault.htm/welcome-file/welcome-file-listservletservlet-namePersonServlet/servlet-nameservlet-classcom.servlet.PersonServlet/servlet-class/servletservlet-mappingservlet-namePersonServlet/servlet-nameurl-pattern/people/*/url-pattern/servlet-mapping/web-app
doGet()函数从 URL 中获取一个人的姓名然后使用DataStore类来获取那个人。接着它从该人的数据中创建一个 JSON 字符串并将该 JSON 作为对请求的响应返回GET。请记住JSON 使用用引号括起来的键和值如下所示
{
name: Ada,
about: Ada Lovelace was the first programmer.,
birthYear: 1815
}
5、测试
接下来我们启动服务加载该servlet在浏览器输入如下地址localhost:8080/HelloJSP/people/Kevin
结果显示如下 今天就先把怎么写一个简单的rest api介绍到这儿后面说一下客户端怎么使用rest api访问数据。
参考资料https://blog.csdn.net/allway2/article/details/123375541
https://happycoding.io/tutorials/java-server/rest-api