tomcat运行jsp到底是如何调用里面的jar包和class文件,主要是jar包,到底是调用WEB-INF下的lib里的包去解析还是用系统环境变量classpath下的去解析呢?

解决方案 »

  1.   

    启动Tomcat的时候,用的是系统classpath。
    Tomcat启动Web应用的时候,会加上一个应用专用的classloder,它用的是应用独立的classpath,含WEB-INF下lib目录中的jar文件。
    JSP运行时到底用的什么classpath,要看具体情形而定,因为两个classloader它都可以访问到的。
      

  2.   

    启动Tomcat的时候,用的是系统classpath。
    Tomcat启动Web应用的时候,会加上一个应用专用的classloder,它用的是应用独立的classpath,含WEB-INF下lib目录中的jar文件。
    JSP运行时到底用的什么classpath,要看具体情形而定,因为两个classloader它都可以访问到的。 
    Tomcat 将所有的代码编译成servlet,然后servlet运行产生.html
      

  3.   

    启动Tomcat的时候,用的是系统classpath。
    Tomcat启动Web应用的时候,会加上一个应用专用的classloder,它用的是应用独立的classpath,含WEB-INF下lib目录中的jar文件。
    JSP运行时到底用的什么classpath,要看具体情形而定,因为两个classloader它都可以访问到的。
      

  4.   

    Tomcat 将所有的代码编译成servlet,然后servlet运行产生.html
      

  5.   

    其实我就想问:例如这下面的代码:
    <html>
    <head>
    <title>First Page</title>
    </head>
    <body>
    <H3>Today is: h
    <%= new java.util.Date() %>
    </H3>
    </body>
    </html> 
    用了个Date的类,但是我WEB-INF文件下没有配置任何class也没有lib这个文件夹,然后为什么还是可以编译读取成功???????????
      

  6.   

    java.util.Date这个类是JRE提供的。
    JSP中定位某个类时,会从JRE、Tomcat lib/classes、Web App lib/classes等各处找这个类。
    详细参见
    http://tomcat.apache.org/tomcat-5.5-doc/class-loader-howto.html