zoukankan      html  css  js  c++  java
  • JSP <c:import>和<jsp:include>区别【转】

    <jsp:include page=""/> action和<c:import url=""/> jstl tag都是动态加载。但是c:import则更为灵活。jsp:include只能include当前web app下的页面,而c:import则可以从外部容器加载内容。

    动态加载和静态加载最根本的不同在于,jsp生成的servlet的不同。在tomcat下静态(include directive)和动态(include action)的_jspService()代码如下:

    Java代码  收藏代码
    1. out.write(“<html><body> ”);  
    2. <span style="font-family: webdings;">out.write(“ <html> <body> <img src=”images/Web-Services.jpg” >  
    3. <br> <em><strong>We know how to make SOAP suck less.</strong></em> <br>   
    4. </body> </html> ”);</span>  
    5.   
    6.   
    7. out.write(“ <br> <em>We can help.</em> <br><br> Contact us at: “);  
    8. out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.  
    9. proprietaryEvaluate(“${initParam.mainEmail}”, java.lang.String.class,  
    10. (PageContext)_jspx_page_context, null, false));  
    11. out.write(“ </body></html>”);  

     而动态的则是:

    Java代码  收藏代码
    1. out.write(“<html><body> ”);  
    2. <span style="font-family: webdings;">org.apache.jasper.runtime.JspRuntimeLibrary.include(request, response,  
    3. “Header.jsp”, out, false);</span>  
    4.   
    5.   
    6. out.write(“ <br> <em>We can help.</em> <br><br> Contact us at: “);  
    7. out.write((java.lang.String) org.apache.jasper.runtime.PageContextImpl.  
    8. proprietaryEvaluate(“${initParam.mainEmail}”, java.lang.String.class,  
    9. (PageContext)_jspx_page_context, null, false));  
    10. out.write(“ </body></html>”);  

    可以看到静态的是将要include的页面直接写在了servlet里面,这样当servlet生成之后,就不能修改了。动态的则不同,运行时才会导入页面。

    另外jsp:include和c:import可以分别使用jsp:param和c:param来设置参数来控制要include的页面。

  • 相关阅读:
    雅虎网站页面性能优化的34条黄金守则
    borderimage
    jQuery实现滚动加载图片效果
    mysql数据库中创建与删除数据表
    (10)一步一步开发一个简单CAD之捕捉
    apach启动失败的原因
    (12)一步一步开发一个简单CAD之观察者模式
    简单基于OPENGL的三维CAD框架(1)照相机类
    简单基于OPENGL的三维CAD框架(1)COpenGLDC
    (13)一步一步开发一个简单CAD之像皮筋类
  • 原文地址:https://www.cnblogs.com/nightsu/p/5929302.html
Copyright © 2011-2022 走看看