组成要素
- 客户端:生成报文,发送报文,接收报文,处理报文
- 服务端:接收报文,解析报文,调用服务代码
- 服务代码:处理代码、别名、注册、实现接口或者父类(保障有被调方法)
正式的API
- 客户端:浏览器、jmeter
- 服务端:tomcat
- 服务代码:Servlet规范
根据请求地址,找到调用代码
计算机做的:
- 根据IP找主机
- 根据端口找web服务器(tomcat)
tomcat做的:
- web服务器(tomcat)根据应用名到webapps下面找应用
- 根据应用下的WEB-INF下的web.xml找请求路径对应的代码
- 通过反射读取代码成Class,newInstance实例化,向上转型成HttpServlet,最后根据GET还是POST调用doGet或者doPost方法
我们写的:
- doGet或者doPost方法实现业务处理
根据代码,给我写出请求地址
- 先添加servlet的依赖包
- 写个java类
- 继承HttpServlet,根据需要选择性实现doGet或者doPost方法
- 在doGet或者doPost里面写业务代码
- 写好后,在web.xml里面,给改类取个名字,再把名字发布成uri路径
- 把应用编译、部署到tomcat的webapps下面
(mvn clean package;复制war到tomcat的webapps;bin下面的startup.bat启动)
(myeclipse添加tomcat路径,再server里面选择tomcat,add deployment编译部署到webapps,start按钮启动tomcat) - 启动tomcat
- 根据ip、tomcat的端口、应用名、url请求路径调用服务
代码
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>