• JSP中动态include和静态include区别


    静态include(<%@ include file=""%>):

    静态include(静态导入)是指将一个其他文件(一个jsp/html)嵌入到本页面
    jsp的include指令是先将文件内容读入,然后把读入的内容和原有的页面融合在一起,这个过程一般是web容器干的,也就是服务器,我们写的jsp页面都是交给服务器转换成servlet(java代码),然后经过servlet处理在浏览器上显示。
    服务器将jsp页面转换成servlet(java代码)然后进行编译,这个过程称为翻译阶段。
    所以静态include<%@ include file=""%>,在服务器的work目录下只是生成了一个java文件和一个class文件,注意如果是一个java文件那么他们是共用一个request对象,两个页面是不可能定义相同的变量名,验证如下:

    定义两个jsp,分别为main.jsp和include.jsp,在main.jsp中使用include指令把include.jsp引入,分别在两个jsp中写上输出request对象的语句测试


    可以看到两个输出的对象是一个,分别在两个jsp中定义一个同名的变量i,在发起访问后报错

    include执行的时候告诉jsp引擎,翻译的时候,就把include2的内容和include1的内容合并到一个java文件中,所以翻译出来的java只有一个,include指令包含的多个jsp中不允许有同名的变量。

    动态include(<jsp:include page="" flush="true"/>):

    和静态的区别是分别把两个jsp页面翻译成java文件,进行编译,在最后执行输出的时候才把两个文件合并起来,所以还是上面的代码输出结果如下图:


    可以看到是两个request对象(因为翻译后是两个servlet),在两个页面定义相同的变量i,进行访问也不会报错。



  • 相关阅读:
    Azure 云助手主要功能
    静态dll的问题终于搞定了
    青云QingCloud黄允松:最高效的研发管理就是没有管理
    开源libco库:单机千万连接、支撑微信8亿用户的后台框架基石
    青云QingCloud宣布完成C轮融资,金额1亿美元
    NET MVC权限验证
    Fizz-Buzz-Whizz
    API访问客户端
    使用IronPython给.Net程序
    Smart Framework
  • 原文地址:https://www.cnblogs.com/duzhentong/p/8576503.html
Copyright © 2020-2023  润新知