[RESTful] Java Servlet API Server ~3 (JSON format 與 library)

在上一篇文章中, 我們介紹了 Servlet 架構下的編譯環境,
並以範例說明如何產生一個網頁回應.
然而, 對於 RESTful API 而言, 另一個主要的需求即是作為 API 介面,
API 的全稱為: Application Programming Interface,
主要的用途就是提供一個介面, 讓不同應用程式透過網路溝通,
簡單來說, 像是一個服務的窗口, 並定義該窗口對應的功能與服務.
另一方面, JSON 則是一種資料封裝格式,
可以把資料以 key-value 的方式, 組成 JSON 物件, 進行傳送.


為了利用 Servlet 提供 JSON 的解析與回應,
我們需要章中, 我們介紹了 Servlet 架構下的編譯環境,
並以範例說明如何產生一個網頁回應.
然而, 對於 RESTful API 而言, 另一個主要的需求即是作為 API 介面,
API 的全稱為: Application Programming Interface,
主要的用途就是提供一個介面, 讓不同應用程式透過網路溝通,
簡單來說, 像是一個服務的窗口, 並定義該窗口對應的功能與服務.
另一方面, JSON 則是一種資料封裝格式,
可以把資料以 key-value 的方式, 組成 JSON 物件, 進行傳送.

為了利用 Servlet 提供 JSON 的解析與回應,
我們需要 import org.json.*; 做為參考的 library,

import java.io.BufferedReader; 
import java.io.IOException; 
import java.io.PrintWriter; 
import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

public class TestsServlet extends HttpServlet 
    private static final long serialVersionUID = 1L; 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException { 
        this.doPost(request, response); 
    } 
    public void doPost(HttpServletRequest request, HttpServletResponse response) throws
        ServletException, IOException { 
        response.setContentType("application/json"); 
        response.setCharacterEncoding("UTF-8"); 
        request.setCharacterEncoding("UTF-8"); 

        /*** 接收json ***/ 
        BufferedReader reader = request.getReader(); 
        String json = reader.readLine(); 
        System.out.println(json); 
        reader.close(); 

        /*** 返回json ***/ 
        PrintWriter out = response.getWriter(); 
        out.write("{\"name\":\"TEST\"}"); 
        out.close(); 
    } 
 }

考慮到我們加入了一個新的 library,
因此, 在編譯目錄 (/var/lib/tomcat8/webapps/ROOT/WEB-INF) 下多建一個 lib 的資料夾,
並下載 json-20200518.jar 作為編譯用的 library,
完成後, 以下列指令編譯:

sudo javac -classpath %JAVA_HOME%\lib\j2ee.jar -classpath /usr/share/tomcat8/lib/servlet-api.jar:./lib/* TestsServlet.java

至此, 就可以在 Servlet 中加入不同的 library, 豐富程式的編寫.

留言

熱門文章

LTE筆記: RSRP, RSSI and RSRQ

[WiFi] WiFi 網路的識別: BSS, ESS, SSID, ESSID, BSSID

LTE筆記: 波束成型 (beamforming) 和天線陣列