中易网

java中include动作和include指令的区别

答案:3  悬赏:30  
解决时间 2021-02-28 22:20
java中include动作和include指令的区别
最佳答案



include指令是编译阶段的指令,即include所包含的文件的内容是编译的时候插入到JSP文件中,JSP引擎在判断JSP页面未被修改,否则视为已被修改。由于被包含的文件是在编译时才插入的,因此如果只修改了include文件内容,而没有对JSP修改,得到的结构将不会改变,所以直接执行已经存在的字节码文件,而没有重新编译。因此对不经常变化的内容,用include指令是合适的,如果需要的内容是经常变化的,则需要动作元素.下面将详细区分他们之间的不同
1.include指令
include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。
语法:
2.include动作
jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。
语法:
其中参数设置可以没有,如果没有参数设置,则必须采用形式
3. 使用include动作还是include指令?
使用include指令,如果被包含的文件发生改变,那么,用到它的所有Jsp页面都需要更新。
仅当include动作不能满足要求时,我们才应该使用include指令。
有 些开发人员认为include指令生成的代码执行起来比使用include动作的代码更快。尽管原则上由可能的确如此,但性能上的差异很小,以致难以测 量,同时,include动作在维护上的优势十分巨大,当两种方法都可以使用时,include动作几乎肯定是首选的方法。
对于文件包含,应该尽可能地使用include动作。仅在所包含的文件中定义了主页面要用到的字段或方法,或所包含的文件设置了主页面的响应报头时,才应该使用include指令。
既然include指令产生难以维护的代码,为什么人们还要使用它呢?
因为include指令更为强大。include指令允许所包含的文件中含有影响主页面的Jsp代码,比如响应报头的设置和字段、方法的定义。
例子://subpage.jsp

//mainpage.jsp






当然使用include动作时这是不可能的,因为num变量未定义,主页面不能成功的转换成servlet。
全部回答
  • include指令 include可以在JSP页面转换成Servlet之前,将JSP代码插入其中。它的主要优点是功能强大,所包含的代码可以含有总体上影响主页面的JSP构造,比如属性、方法的定义和文档类型的设定。它的缺点是难于维护只要被包含的页面发生更改,就得更改主页面,这是因为主页面不会自动地查看被包含的页面是否发生更改。 语法: 2.include动作 jsp:include动作是在主页面被请求时,将次级页面的输出包含进来。尽管被包含的页面的输出中不能含有JSP,但这些页面可以是其他资源所产生的 结果。服务器按照正常的方式对指向被包含资源的URL进行解释,因而这个URL可以是Servlet或JSP页面。服务器以通常的方式运行被包含的页面, 将产生的输出放到主页面中,这种方式与RequestDispatcher类的include方法一致。它的优点是在被包含的页面发生更改时,无须对主页 面做出修改。它的缺点是所包含的是次级页面的输出,而非次级页面的实际代码,所以在被包含的页面中不能使用任何有可能在整体上影响主页面的JSP构造。 语法: 其中参数设置可以没有,如果没有参数设置,则必须采用形式
  • 有以下主要区别和一些细微差别: (一)指令include的写法如下: <%@ include file="xxxxx" %>它就是一种简单的包含以实现代码重用,jsp编译时就会包含进来,不会产生请求。 其他特点: 1)其url不支持带参数,比如<%@ include file="xxxxx?var=123" %>就是错误的。 2)写include指令的页面和被包含的页面中,代码中不能有同名变量,否则会报错。 (二)jsp include动作写法如下: 只有在运行时会产生请求,相当于执行了一段java代码产生了请求,所以会自动检查被包含内容的变化,即时更新结果。 其他特点: 1)url支持带参数,语法如下: 2)写include动作的页面和被包含的页面中,代码中可以有同名变量,因为二者之间是请求和被请求的关系,页面代码在请求之前已经编译好了。 如果以上差别不会产生影响,其实二者哪个都可以用的。
    我要举报
    如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
    大家都在看
    法语 du fait de 啥意思
    金吉酶在哪里可以买到
    阿克塔希阔坦在什么地方啊,我要过去处理事情
    分数的分读什么
    作为一名大学生,如何为江西经济建设发展做贡
    侠盗猎车手圣安地列斯怎么联机?一进去卡在沙
    《穷孩子富孩子》中张雨燕经常唱的那首歌是什
    37码半的脚应该买多大的鞋
    丁一在加油吧新郎里跳舞的歌名
    姚记早点怎么去啊,有知道地址的么
    为什么做蛋糕时器皿都要求无水无油呢?~
    太阳露出了久违的笑脸,像什么一样
    河北省邱县第一中学地址在哪,我要去那里办事
    乌鲁木齐市第十五小学地址在哪,我要去那里办
    怎么分析The police were ordered to stop dr
    推荐资讯
    led 灯里的motion sensor是什么意思
    大都府宾馆怎么去啊,有知道地址的么
    EXCEL增长率和下降率颜色变换问题!
    什么心什么学成语
    屋面雨水管雨水直接排到散水表面,是否合理,
    中国电信阿拉塔南街营业厅地址在哪,我要去那
    怎么能找到网上日结的工作,兼职,日结100就
    戴芝帝内衣好不好?
    旧板方怎么去啊,有知道地址的么
    为什么现在很多手机都不支持扩展卡
    仙台矿山机械公司地址有知道的么?有点事想过
    80年代辛酸故事(普通人的,从农村出来的年轻
    手机登qq时,显示手机磁盘不足,清理后重新登
    刺客的套装怎么选啊?