关于Servelet在Tomcat中执行的原理

问题描述:

servelet接口的实现类在在部署在Tomcat项目中,但是我们并没有创建实现类的相关具体事例为什么,实现类里面的方法会执行呢?

解决办法:

  • 当我们实现了Servelet接口,并且把类部署到web容器(Tomcat服务器)中的时候,我们还需要在web.xml的配置文件中配置Servelet实现类的相关映射:

  • 当我们访问这个资源的时候:

 我们通过上面的地址找到部署在Tomcat下的/hui项目,然后通过/serveletdemo这个资源路径会在配置文件web.xml中寻找有没有相对应的

<url-pattern>/serveletdemo</url-pattern>标签:

  •  然后Tomcat会根据这个全类名将对应的字节码文件加载进内存
  • 然后再通过Class.forName("com.yfsn.ServeletDemo")反射的方式获得类对象
  • 再获得构造器调用invoke();方法执行。
  • (Servelet3.0以后就支持注解配置资源路径的方式了)

 但是Servelet的创建时机并不只是在有用户访问时才创建这一种情况,关于Servelet的创建时机,在另一篇中讲述。

迎风少年
原文地址:https://www.cnblogs.com/ZYH-coder0927/p/13661073.html