組成要素
- 客戶端:生成報文,發(fā)送報文夭织,接收報文吭露,處理報文
- 服務(wù)端:接收報文,解析報文摔癣,調(diào)用服務(wù)代碼
- 服務(wù)代碼:處理代碼奴饮、別名、注冊择浊、實現(xiàn)接口或者父類(保障有被調(diào)方法)
正式的API
- 客戶端:瀏覽器戴卜、jmeter
- 服務(wù)端:tomcat
- 服務(wù)代碼:Servlet規(guī)范
根據(jù)請求地址,找到調(diào)用代碼
計算機做的:
- 根據(jù)IP找主機
- 根據(jù)端口找web服務(wù)器(tomcat)
tomcat做的:
- web服務(wù)器(tomcat)根據(jù)應(yīng)用名到webapps下面找應(yīng)用
- 根據(jù)應(yīng)用下的WEB-INF下的web.xml找請求路徑對應(yīng)的代碼
- 通過反射讀取代碼成Class琢岩,newInstance實例化投剥,向上轉(zhuǎn)型成HttpServlet,最后根據(jù)GET還是POST調(diào)用doGet或者doPost方法
我們寫的:
- doGet或者doPost方法實現(xiàn)業(yè)務(wù)處理
根據(jù)代碼担孔,給我寫出請求地址
- 先添加servlet的依賴包
- 寫個java類
- 繼承HttpServlet江锨,根據(jù)需要選擇性實現(xiàn)doGet或者doPost方法
- 在doGet或者doPost里面寫業(yè)務(wù)代碼
- 寫好后吃警,在web.xml里面,給改類取個名字啄育,再把名字發(fā)布成uri路徑
- 把應(yīng)用編譯酌心、部署到tomcat的webapps下面
(mvn clean package;復(fù)制war到tomcat的webapps挑豌;bin下面的startup.bat啟動)
(myeclipse添加tomcat路徑安券,再server里面選擇tomcat,add deployment編譯部署到webapps氓英,start按鈕啟動tomcat) - 啟動tomcat
- 根據(jù)ip侯勉、tomcat的端口、應(yīng)用名铝阐、url請求路徑調(diào)用服務(wù)
代碼
package com.guoyasoft.api;
import java.io.IOException;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class FirstAPI extends HttpServlet{
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("do get method success");
// super.doGet(req, resp);
resp.getWriter().write("do get method success !");
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
System.out.println("do post method success");
resp.getWriter().write("do post method success !");
}
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
<display-name>my-app</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>firstAPI</servlet-name>
<servlet-class>com.guoyasoft.api.FirstAPI</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstAPI</servlet-name>
<url-pattern>/myFirstAPI</url-pattern>
</servlet-mapping>
</web-app>