请准确解释一下为什么客户在第一次调用jsp时速度较慢?而此后较快

解决方案 »

  1.   

    JSP在Web服务器中不是直接运行的,第一次执行时会转译成Servlet,然后运行
    以后由于Servlet驻留在内存中,不必再转译,所以快了
      

  2.   

    web应用服务器都有个缓存文件目录,JSP文件都会生成相应的class(servlet)文件,置于其中。(tomcat 默认在根目录的work\Catalina\localhost文件夹下)
    第1次访问某JSP文件的时候,WEB服务器会需要编译这个jsp文件,所以比较慢。以后可以直接访问,所以比较快
      

  3.   

    Thanks welshem(天堂客),but:可是第二个用户第一次执行某个.JSP页面时也很慢,每个用户第一次执行都很慢,如何解释?
      

  4.   

    每一个JSP文件第一次被运行都会转译成Servlet,然后运行
    所以如果不同用户打开不同JSP文件,当然"每个文件都有第一次"啊但不同的用户打开同一个文件,那只有一个用户经历"第一次"了
      

  5.   

    Thanks welshem(天堂客),but:可是第二个用户第一次执行某个.JSP页面时也很慢,每个用户第一次执行都很慢,如何解释?----------------------------------------------------------------
    这个慢和网络有关系。因为这个时候jsp已经编译成servlet.
    所以这个时候用户就是把该jsp最后生成的html代码(包含图片等文件)下载到客户端。
    在第二次在运行这个页面的时候。其中的部分文件(图片)就读取的客户端缓存。所以速度快一些
      

  6.   

    谢谢各位的回答。
    我得到结论是:不管那个用户,只要第一次执行index.jsp,都很慢。这个跟网络没有关系。同等条件下我做的测试。我有一个新的应用发布,在我所在的局域网内,10个不同的用户先后登陆首页面index.jsp,第一次都很慢,其他.jsp也是一样的。
    所以我有了这个问题。
    因为我发布应用后,我自己先做了测试。按说index.jsp等其他.jsp已经被编译成class文件了。可其他用户第一次访问时,还慢...
      

  7.   

    那这样。
    你用其他机器访问一次这个页面。再访问第二次的时候。(速度应该快了),然后你把你机器上的ie缓存删掉。。再访问一次。看看速度。这个速度应该是因为缓存的原因。
    C:\Documents and Settings\“你用的用户名”\Local Settings\Temporary Internet Files
    这个目录下面的文件全删除