开发者社区> 问答> 正文

JSP中include指令和include动作有什么区别?

JSP中include指令和include动作有什么区别?

展开
收起
真的很搞笑 2021-10-29 23:03:05 535 0
1 条回答
写回答
取消 提交回答
  • 1、从属性方面进行区分  include 指令通过file属性来指定被包含的页面,include指令将file属性看作一个实际存在的文件的路径。所以该属性不支持任何表达式,也不支持在struts应用中的请求模式(如*.do),若在file属性值中应用JSP表达式,会抛出异 常,如下面的代码:   Java代码 收藏代码 <% String path="login.jsp"%>
    <%@inclue file="<%=path%>"%>

    include动作标识通过page属性来指定被包含的页面,该属性支持JSP表达式和Struts 应用在的请求模式  2、从处理方式方面进行区分

      使用include指令,被包含的文件为原封不动的插入到包含页中使用该指令的位置,然后JSP编译器再对这个合成的文件进行编译,所以在一个JSP页面中使用include指令来包含另外一个JSP页面,最终编译后的文件只有一个。

      使用include 动作标识包含文件时,当该标识执行时,程序会将请求转发到(注意是转发而不是重定向)被包含的页,并将执行结果输出到浏览器中,然后返回包含页继续执行后面的代码,因为服务器执行的是两个文件。所以JSP编 译器会分别对这两个文件进行编译。  3、从包含方式方面进行区分

      使用include指令包含文件,最终服务器执行的是将两个文件合成后由JSP编译器编译成一个Class 文件,所以被包含的文件的内容是固定不变的,若改变了被包含的文件,则主文件的代码就发生了变化,因此服务器会重新编译主文件 ,include指令的这种包含称为静态包含

      使用include动作标识通常是包含那些经常需要改动的文件,此时服务器执行的是两个文件,被包含的文件改变不会影响到主文件,因此服务器不会对主文件重新编译,而只需要重新编译被包含的文件即可,而对被包含文件的编译是在执 行时才进行的,也就是说,只有当include动作被执行时,使用该标识包含的目标文件才会被编译,否则被包含的文件不会被编译,所以这种包含过程称为动态包含。 4、从被包含文件的约定方面进行区分   JSP有一些标识符例如 Java代码 收藏代码 <%@page contentType="text/html;charset=gb2312"%>

    2021-10-29 23:04:39
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载