使用场景:
1. 想实现自定义协议请求数据,但是还有拥有spring的 controller方便的业务处理流程和注解。
2. 想要调用对应的 controller 却不想处理自定义的 mapping。
一、首先是通过参考 spring-test 中的模拟实现的HttpServlet
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
二、参考已经实现的模拟javax.servlet.http.HttpServletRequest 和 javax.servlet.http.HttpServletResponse
在 spring-test 依赖中已经对以上两个接口实现分别是
org.springframework.mock.web.MockHttpServletRequest
org.springframework.mock.web.MockHttpServletResponse
还会依赖到 org.springframework.mock.web.HeaderValueHolder 封装的请求头
可以把这三个类复制出来进行自定义改造
三、调用Spring的HTTP请求处理程序类 org.springframework.web.servlet.DispatcherServlet
通过此类中的 protected void service(HttpServletRequest request, HttpServletResponse response) 方法。 service