开始学习SpringMVC的源码,debug跟踪源码可以看出来,在handler开始的时候对传入的参数进行了判断,看看参数中的这几个serlvet原生参数:
/**
* 可以使用 Serlvet 原生的 API 作为目标方法的参数 具体支持以下类型
*
* HttpServletRequest
* HttpServletResponse
* HttpSession
* java.security.Principal
* Locale InputStream
* OutputStream
* Reader
* Writer
* @throws IOException
*/
@RequestMapping("/testServletAPI")
public void testServletAPI(HttpServletRequest request,
HttpServletResponse response, Writer out) throws IOException {
System.out.println("testServletAPI, " + request + ", " + response);
out.write("hello springmvc");
// return SUCCESS;
}
在system.out那一行断点,可以跟踪到以下源码:
1.先进入方法:
2.进入参数解析的方法,里面有解析注解参数和一般类型的参数两个方法:
3.进入解析一般类型的参数的方法中:
4.进入解析标准参数的方法:
5. Ctrl+T进入impl方法中:里面有很多个servlet API的参数: