1、浏览器发送请求
如下图所示:
第一步:在浏览器地址栏输入访问路径,向服务器发送请求;
第二步:服务器根据访问路径去web.xml文件中和<url-pattern>标签中的虚拟路径进行匹配,匹配成功后,找到已注册的servlet名称,即图中的DataServlet;
第三步:根据映射找到对应的servlet名,注意:<servlet-mapping>下的<servlet-name>标签和<servlet>下的<servlet-name>标签中的值必须相同;
第四步:根据servlet名找到全限定类名,即我们自己写的类。
2、服务器创建对象
服务器找到全限定类名后,通过反射调用Class对象的newInstance()方法,实例化一个DataServlet对象,注意一定要为DataServlet提供一个无参的构造方法。同时也创建了servletConfig,里面存放了一些初始化信息(注意:服务器只会创建一次DataServlet对象,所以servletConfig也只有一个)。
3、调用service方法
第一步:服务器会先创建两个对象:HttpServletRequest请求对象和HttpServletResponse响应对象,用来封装浏览器的请求数据和向浏览器的响应数据;
第二步:服务器会默认在我们自己写的类中寻找service(HttpServletRequest req, HttpServletResponse res)方法,但是DataServlet类中没有定义service方法,所以会到其父类,即HttpServlet类中寻找;
第三步:调用HttpServlet类中的service方法,然后在此方法内部进行了请求方式的判断,所以会