tomcat加载原理

  1. tomcat启动。
    默认从webapps下读取war包并解压,读取tomcat webapps 下所有文件,获取所有项目信息
  2. 循环所有后项目文件,扫描\WEB-INF\web.xml 获取所有servlet
  3. 类加载
    默认获取项目下\WEB-INF\classes\文件夹
    URL classPath = new URL("file":+projectPath+"\\WEB-INF\\classes\\");
    URLClassLoader classLoader = new URLClassLoader(new URL[]{classPath});
    循环第二步获取到所有的servlet 加载到jvm
    Class<?> servletClazz = classLoader.loadClass(servletClass);
    Servlet servlet = servletClazz.newInstance();
  4. 启动socket
    ServerSocket serverSocket = new ServerSocket("8080")
    Socket socket = serverScket.accept();
  5. 根据url 定位要请求的servlet
  6. 调用Servlet.service(HttpServletRequest,HttpServletResponse)

tomcat-load