问题概述:
Servelet里面的参数:HttpServletRequest request, HttpServletResponse response是怎么来的?分别代表什么?
问题解答:
因为HttpServletRequest request, HttpServletResponse response两个参数是Servelet实现类的service();方法两个参数,所以我们先来回顾一下Servelet实现类的创建过程:
我们知道,Servelet实现类的创建过程有两种:
- 访问时由Tomcat通过反射的方式创建
- 启动服务器的时候Tomcat通过反射的方式创建
两种方式在参数的创建上没有差别,所以我们通过第一种方式进行讲解:
- 当客户端通过浏览器访问服务器的时候,服务器(Tomcat)会根据访问的资源路径创建Servelet实现类对象
- 然后服务器(Tomcat)会创建request和response对象,并且request对象中会封装客户端的请求消息
- 服务器把request和response对象传递给service();方法。
- 程序员可以在service方法中通过request对象获得请求信息,再通过response对象设置响应信息
- service在调用后会自动在执行
- 服务器将response中的响应信息拿出交给浏览器
图解: